Skip to content
George edited this page Sep 21, 2026 · 7 revisions

🎓 College Management System

Единая система учёта колледжа: электронный журнал, расписание, рабочие программы, отчётность, личные кабинеты студента и преподавателя, админ-панель.

Проект разрабатывается студентами 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.

Подробно — по шагам, в порядке, в котором это реально нужно делать:

  1. 🚀 Начало работы — что уже готово в репозитории, как выбрать модуль и роль, как оформить команду и написать ТЗ.
  2. 📥 Установка и настройка — Python, виртуальное окружение, зависимости, база данных, переменные окружения.
  3. 🔧 Работа с Git и GitHub — модель веток (<модуль>-backend/... / <модуль>-frontend/...), коммиты, Pull Request, CI, разрешение конфликтов.
  4. 🔌 API-контракт — что должен задокументировать backend, что нужно frontend'у и когда, с примером — обязательно, если вы никогда раньше не работали с API.
  5. 📊 Система оценивания — как оценивается работа.
  6. ❓ 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

Clone this wiki locally