Repository navigation
Home
Единая система учёта колледжа: электронный журнал, расписание, рабочие программы, отчётность, личные кабинеты студента и преподавателя, админ-панель.
Проект разрабатывается студентами 3 курса в рамках дисциплины «Разработка программных модулей». Цель — на практике пройти весь цикл командной разработки: от ТЗ и Git-воркфлоу до рабочего API и интерфейса поверх него.
Технически это одно веб-приложение на Python (backend, FastAPI) с обычными HTML/CSS/JS-страницами (frontend), которые ходят в backend через HTTP API. Все данные хранятся в одной базе (SQLite).
Приложение разбито на 7 функциональных модулей:
| Модуль | Что делает |
|---|---|
| 📒 Gradebook (Электронный журнал) | Оценки и посещаемость |
| 📚 Curriculum (Рабочие программы) | Управление программами курсов |
| 📅 Schedule (Расписание) | Расписание пар |
| 📊 Reports (Отчёты) | Табели и статистика |
| 👨🎓 Student Portal (Кабинет студента) | Личный кабинет студента |
| 👨🏫 Teacher Portal (Кабинет преподавателя) | Личный кабинет преподавателя |
| ⚙️ Admin Panel (Админ-панель) | Управление системой |
На каждый модуль — две отдельные команды: backend-команда пишет API модуля на Python, frontend-команда — страницы на HTML/CSS/JS поверх этого API. Итого 14 команд работают в одном репозитории параллельно. Общее для всех — только «ядро» (core/): подключение к БД, аутентификация, базовые модели.
| Группа | Студентов | Роль |
|---|---|---|
| ОИ31-09 | 15 | 🎨 Frontend: будущие дизайнеры, все идут во frontend |
| ОИ32-09 | 21 | На выбор: 🐍 Backend или 🎨 Frontend |
| ОИ33-09 | 19 | На выбор: 🐍 Backend или 🎨 Frontend |
| ОИ21-09 | 7 | На выбор: 🐍 Backend или 🎨 Frontend |
- 🎨 Frontend делает макеты и страницы на HTML/CSS/JS поверх API модуля.
- 🐍 Backend пишет API модуля на Python (FastAPI).
Студенты ОИ32-09, ОИ33-09 и ОИ21-09 сами решают, в какую команду пойти. Во frontend можно, пока там есть свободные места (см. ниже).
Всего 62 студента и 14 команд: 7 frontend и 7 backend, по одной каждого типа на модуль.
| Тип команды | Команд | Размер команды | Максимум | Всего мест |
|---|---|---|---|---|
| 🎨 Frontend | 7 | 3–4 человека | 4 человека | 21–28 |
| 🐍 Backend | 7 | 5–6 человек | 6 человек | 34–41 (все остальные) |
Как считается:
- Во frontend 15 мест сразу занимает ОИ31-09. Остаётся от 6 до 13 мест для студентов других групп.
- Все, кто не пошёл во frontend, идут в backend: от 34 до 41 человека на 7 команд, то есть по 5–6 человек. Если frontend заполнится полностью (28 человек), в backend останется 34, и одна backend-команда будет из 4 человек.
Если в команде выбранного модуля уже набран максимум, выберите другой модуль. Ни один модуль не должен остаться без команды: во frontend-команде минимум 3 человека, в backend-команде минимум 5 (одна команда может быть из 4, если frontend заполнен полностью).
Коротко: клонируете репозиторий → выбираете модуль и роль (backend/frontend) через Issues → настраиваете окружение → пишете код в своей ветке → открываете Pull Request → CI проверяет → мердж в main.
Подробно — по шагам, в порядке, в котором это реально нужно делать:
- 🚀 Начало работы — что уже готово в репозитории, как выбрать модуль и роль, как оформить команду и написать ТЗ.
- 📥 Установка и настройка — Python, виртуальное окружение, зависимости, база данных, переменные окружения.
-
🔧 Работа с Git и GitHub — модель веток (
<модуль>-backend/.../<модуль>-frontend/...), коммиты, Pull Request, CI, разрешение конфликтов. - 🔌 API-контракт — что должен задокументировать backend, что нужно frontend'у и когда, с примером — обязательно, если вы никогда раньше не работали с API.
- 📊 Система оценивания — как оценивается работа.
- ❓ FAQ — частые проблемы при установке и работе.
Архитектура приложения (слои, как модуль подключается к API, как раздаётся frontend) подробно описана в репозитории: docs/architecture.md. Рабочий пример модуля целиком (backend + frontend вместе) — в docs/examples/example_module/ и frontend/_example/: запустите проект и откройте http://127.0.0.1:8000/frontend/_example/, чтобы увидеть весь путь от страницы до базы данных.
Каждый модуль — это две страницы ТЗ (design и backend), которые заполняет соответствующая команда по шаблону из Getting Started:
| Модуль | ТЗ на дизайн | ТЗ на бэкенд |
|---|---|---|
| Gradebook | Design | Backend |
| Curriculum | Design | Backend |
| Schedule | Design | Backend |
| Reports | Design | Backend |
| Student Portal | Design | Backend |
| Teacher Portal | Design | Backend |
| Admin Panel | Design | Backend |
Сейчас это страницы-заглушки — их наполняет своим содержанием команда, которая взяла модуль.
Преподаватель: Моисеева Александра — popova00alex@mail.ru — tg @molixany