# School Table [![Python](https://img.shields.io/badge/Python-3.7+-blue.svg)](https://www.python.org/downloads/) [![PyQt5](https://img.shields.io/badge/PyQt5-5.15+-green.svg)](https://pypi.org/project/PyQt5/) [![SQLite](https://img.shields.io/badge/SQLite-3+-orange.svg)](https://sqlite.org/) [![License](https://img.shields.io/badge/License-MIT-yellow.svg)](LICENSE) **Многофункциональное desktop-приложение для управления школьным расписанием и ведения персональных заметок.** ## 📋 Описание School Table представляет собой комплексное решение для организации учебного процесса, объединяющее систему управления расписанием с функциональностью персонального планировщика. Приложение обеспечивает интуитивно понятный интерфейс для создания, редактирования и контроля академических задач. ## ✨ Основные возможности ### 📅 Управление расписанием - **Интерактивная сетка расписания** — визуализация учебной недели с возможностью быстрого редактирования - **Динамическое управление предметами** — добавление, изменение и удаление дисциплин - **Система выделения** — цветовая индикация для быстрой навигации по предметам - **Гибкая настройка** — поддержка до 8 учебных периодов в день ### 📝 Система заметок - **Временные метки** — привязка заметок к конкретным датам и времени - **Фильтрация по периодам** — просмотр задач за день, неделю, месяц - **Статусы выполнения** — отслеживание прогресса выполнения задач - **Редактирование в реальном времени** — мгновенное обновление данных ### 🔧 Дополнительный функционал - **Кроссплатформенность** — работа на Windows, macOS, Linux - **Локальное хранение данных** — автономная работа без интернета - **Резервное копирование** — защита данных пользователя ## 🛠 Технический стек | Компонент | Технология | Версия | |-----------|------------|---------| | **Backend** | Python | 3.7+ | | **GUI Framework** | PyQt5 | 5.15+ | | **Database** | SQLite | 3+ | | **Architecture** | MVC Pattern | - | ## 📦 Установка и запуск ### Системные требования - Python 3.7 или выше - Операционная система: Windows 7+, macOS 10.12+, Linux ### Инструкция по установке 1. **Клонирование репозитория** ```bash git clone https://github.com/DeevEV/school_table.git cd school_table ``` 2. **Установка зависимостей** ```bash pip install PyQt5 sqlite3 ``` 3. **Запуск приложения** ```bash python main.py ``` ### Альтернативный способ установки ```bash # Создание виртуального окружения python -m venv venv source venv/bin/activate # Linux/macOS # или venv\Scripts\activate # Windows # Установка зависимостей pip install PyQt5 sqlite3 ``` ## 🎯 Использование ### Быстрый старт 1. **Настройка расписания** - Перейдите на вкладку "Расписание" - Выберите день недели и номер урока - Добавьте новый предмет или выберите существующий 2. **Создание заметки** - Откройте вкладку "Заметки" → "Добавить" - Установите дату и время - Введите текст заметки и сохраните 3. **Управление задачами** - Используйте фильтры для просмотра заметок за определенный период - Отмечайте выполненные задачи в разделе "Сделать" ## 📁 Структура проекта ``` school_table/ ├── main.py # Точка входа в приложение ├── rasp.ui # Описание интерфейса Qt Designer ├── table.db # База данных SQLite (создается автоматически) ├── image.ico # Иконка приложения └── README.md # Документация ``` ## 🗄 Схема базы данных ### Таблица `timetable` ```sql CREATE TABLE timetable ( id INTEGER PRIMARY KEY, day TEXT, less_1 INTEGER, less_2 INTEGER, ..., less_8 INTEGER, FOREIGN KEY (less_*) REFERENCES lessons(id) ); ``` ### Таблица `lessons` ```sql CREATE TABLE lessons ( id INTEGER PRIMARY KEY AUTOINCREMENT, name TEXT UNIQUE NOT NULL ); ``` ### Таблица `notes` ```sql CREATE TABLE notes ( id INTEGER PRIMARY KEY AUTOINCREMENT, date TEXT NOT NULL, day INTEGER, note TEXT NOT NULL ); ``` ## 📄 Лицензия Этот проект распространяется под лицензией MIT. ## 👨‍💻 Автор **Деев Егор Викторович** - GitHub: [@EDeev](https://github.com/EDeev) - Email: egor@deev.space - Telegram: [@Egor_Deev](https://t.me/Egor_Deev) ---
Создано с ❤️ от вашего дорогого - deev.space ©