Простой генератор школьного расписания с учётом доступности преподавателей и равномерного распределения нагрузки.
Этот проект — попытка сделать что-то полезное и одновременно понятное, чтобы быстро собрать расписание по классам и предметам, без лишнего перфекционизма.
- CRUD для преподавателей, предметов, классов и назначений
- Управление доступностью преподавателей через список дней недели (одним полем)
- Генерация официального расписания с равномерной нагрузкой и без повторов предметов в один день
- Генерация рабочего расписания с учётом доступности преподавателей
- Экспорт расписания в Excel (EPPlus)
- UI на WPF — ничего лишнего, чтобы было удобно и быстро
- C# и .NET 8 (WPF)
- SQLite + Dapper для простого и быстрого хранения
- EPPlus для экспорта в Excel
- Минимальный MVVM — не переусложнял, но с базовой структурой
git clone https://github.com/ClonerNotFound/school-scheduler.git
cd school-scheduler
dotnet build
dotnet runПри первом запуске автоматически создаётся база shedule.db с необходимыми таблицами (если их нет).
Далее через UI можно добавить данные: преподавателей, предметы, классы и назначения.
- Через вкладки добавляйте преподавателей, предметы, классы, назначайте предметы с нагрузкой и преподавателями
- Указывайте доступность преподавателей — просто выбираете дни недели, когда они доступны
- Вкладка расписания — генерируете официальное или рабочее расписание с учётом всех данных
- Экспортируете расписание в Excel, чтобы показать или распечатать
MIT License — делайте с этим что хотите, но без коммерческого использования (буду признателен, если сообщите).
Автор: ClonerNotFound
GitHub: https://github.com/ClonerNotFound
Email: [email protected]
Если что-то не работает или есть идеи — создавайте issue или пишите на почту.
Любые улучшения и форки приветствуются!
Спасибо, что посмотрели!
Если проект пригодился — звёздочку не забудьте <3
Если свяжитесь со мной по поводу вопросов или идей для улучшения - я с радостью это приму!
Буду готовить к релизу, может сделаю установщик, добавлю дизайн и расширю функционал, отправил программу на тестирование в одну маленькую школу, если им понравится - начну полномасштабную разработку