diff --git a/README.en.md b/README.en.md new file mode 100644 index 0000000..01cff68 --- /dev/null +++ b/README.en.md @@ -0,0 +1,58 @@ +# School Table + +[Русский](README.md) · **English** + +[![CI](https://github.com/EDeev/school_table/actions/workflows/ci.yml/badge.svg)](https://github.com/EDeev/school_table/actions/workflows/ci.yml) +[![Release](https://img.shields.io/github/v/release/EDeev/school_table)](https://github.com/EDeev/school_table/releases) + +A desktop student planner on PyQt5: a weekly timetable and dated notes that show up under the right day +on their own. The interface is in Russian. + +**Status:** coursework (2021), completed + +![Timetable tab](docs/screenshots/timetable.png) + +**Stack:** Python 3 · PyQt5 · SQLite + +## Features + +- A grid of six school days, up to eight lessons a day +- Subject list: add, rename, delete (the subject also disappears from the timetable), clear a lesson +- Highlighting a chosen subject across the whole week +- Notes with date and time: shown under the timetable by weekday, and on the Notes tab as one list for + all time, the coming month or the coming week +- Editing a note and marking it done (a done note is deleted) +- Everything is stored locally in `table.db` + +## Running + +A ready-made Windows build is `SchoolTable-windows.zip` in the +[releases](https://github.com/EDeev/school_table/releases): unpack it and run `SchoolTable.exe` (keep +`table.db` next to it). + +From source: + +```bash +git clone https://github.com/EDeev/school_table.git && cd school_table +pip install -r requirements.txt +python main.py +``` + +## Screenshots + +![Notes tab](docs/screenshots/notes.png) + +## License + +Coursework (2021). The code is open for study; there is no separate license. + +## Author + +**Egor Deev** — [GitHub](https://github.com/EDeev) · [Telegram](https://t.me/DeevEgor) · [egor@deev.space](mailto:egor@deev.space) + +--- + +
+ ⭐ If you find this project useful, give it a star on GitHub! +

Made with ❤️ — deev.space

+
diff --git a/README.md b/README.md index 0dfaaf8..42869b8 100644 --- a/README.md +++ b/README.md @@ -1,152 +1,66 @@ # 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) +**Русский** · [English](README.en.md) -**Многофункциональное desktop-приложение для управления школьным расписанием и ведения персональных заметок.** +[![CI](https://github.com/EDeev/school_table/actions/workflows/ci.yml/badge.svg)](https://github.com/EDeev/school_table/actions/workflows/ci.yml) +[![Release](https://img.shields.io/github/v/release/EDeev/school_table)](https://github.com/EDeev/school_table/releases) -## 📋 Описание +Десктопный дневник школьника на PyQt5: расписание на неделю и заметки с датами, которые сами +появляются под нужным днём. -School Table представляет собой комплексное решение для организации учебного процесса, объединяющее систему управления расписанием с функциональностью персонального планировщика. Приложение обеспечивает интуитивно понятный интерфейс для создания, редактирования и контроля академических задач. +**Статус:** учебный проект (2021), завершён -## ✨ Основные возможности +![Вкладка «Расписание»](docs/screenshots/timetable.png) -### 📅 Управление расписанием -- **Интерактивная сетка расписания** — визуализация учебной недели с возможностью быстрого редактирования -- **Динамическое управление предметами** — добавление, изменение и удаление дисциплин -- **Система выделения** — цветовая индикация для быстрой навигации по предметам -- **Гибкая настройка** — поддержка до 8 учебных периодов в день +**Стек:** Python 3 · PyQt5 · SQLite -### 📝 Система заметок -- **Временные метки** — привязка заметок к конкретным датам и времени -- **Фильтрация по периодам** — просмотр задач за день, неделю, месяц -- **Статусы выполнения** — отслеживание прогресса выполнения задач -- **Редактирование в реальном времени** — мгновенное обновление данных +## Возможности -### 🔧 Дополнительный функционал -- **Кроссплатформенность** — работа на Windows, macOS, Linux -- **Локальное хранение данных** — автономная работа без интернета -- **Резервное копирование** — защита данных пользователя +- Сетка на шесть учебных дней, до восьми уроков в день +- Список предметов: добавить, переименовать, удалить (предмет пропадает и из расписания), очистить урок +- Подсветка выбранного предмета во всей неделе +- Заметки с датой и временем: под расписанием показываются по дню недели, на вкладке «Заметки» — + общим списком за всё время, ближайший месяц или неделю +- Правка заметки и отметка «сделано» (выполненная заметка удаляется) +- Всё хранится локально в `table.db` -## 🛠 Технический стек +## Запуск -| Компонент | Технология | Версия | -|-----------|------------|---------| -| **Backend** | Python | 3.7+ | -| **GUI Framework** | PyQt5 | 5.15+ | -| **Database** | SQLite | 3+ | -| **Architecture** | MVC Pattern | - | +Готовая сборка для Windows — `SchoolTable-windows.zip` в [релизах](https://github.com/EDeev/school_table/releases): +распакуйте и запустите `SchoolTable.exe` (база `table.db` должна лежать рядом). -## 📦 Установка и запуск +Из исходников: -### Системные требования -- 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 +git clone https://github.com/EDeev/school_table.git && cd school_table +pip install -r requirements.txt python main.py ``` -### Альтернативный способ установки -```bash -# Создание виртуального окружения -python -m venv venv -source venv/bin/activate # Linux/macOS -# или -venv\Scripts\activate # Windows +## Как выглядит -# Установка зависимостей -pip install PyQt5 sqlite3 -``` +![Вкладка «Заметки»](docs/screenshots/notes.png) -## 🎯 Использование - -### Быстрый старт - -1. **Настройка расписания** - - Перейдите на вкладку "Расписание" - - Выберите день недели и номер урока - - Добавьте новый предмет или выберите существующий - -2. **Создание заметки** - - Откройте вкладку "Заметки" → "Добавить" - - Установите дату и время - - Введите текст заметки и сохраните - -3. **Управление задачами** - - Используйте фильтры для просмотра заметок за определенный период - - Отмечайте выполненные задачи в разделе "Сделать" - -## 📁 Структура проекта +## Структура ``` -school_table/ -├── main.py # Точка входа в приложение -├── rasp.ui # Описание интерфейса Qt Designer -├── table.db # База данных SQLite (создается автоматически) -├── image.ico # Иконка приложения -└── README.md # Документация +main.py приложение: интерфейс (сгенерирован из rasp.ui) и вся логика +rasp.ui макет окна для Qt Designer +table.db пустая база: предметы, расписание по дням, заметки +image.ico иконка ``` -## 🗄 Схема базы данных +## Лицензия -### Таблица `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) -); -``` +Учебный проект (2021). Код открыт для изучения, отдельной лицензии нет. -### Таблица `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) +**Деев Егор Викторович** — [GitHub](https://github.com/EDeev) · [Telegram](https://t.me/DeevEgor) · [egor@deev.space](mailto:egor@deev.space) ---
- Создано с ❤️ от вашего дорогого - deev.space © + ⭐ Если проект оказался полезным, поставьте звёздочку на GitHub! +

Сделано с ❤️ — deev.space

diff --git a/docs/screenshots/notes.png b/docs/screenshots/notes.png new file mode 100644 index 0000000..43ae056 Binary files /dev/null and b/docs/screenshots/notes.png differ diff --git a/docs/screenshots/timetable.png b/docs/screenshots/timetable.png new file mode 100644 index 0000000..3f45a2b Binary files /dev/null and b/docs/screenshots/timetable.png differ