Repository navigation
Getting Started
Добро пожаловать в проект College Management System! Эта страница поможет вам начать разработку.
На данный момент в репозитории подготовлена базовая структура:
-
Ядро системы (
core/) — конфигурация, подключение к БД, модели данных, аутентификация, общее FastAPI-приложение (core/api.py) -
Структура модулей (
modules/) — 7 модулей для разработки -
Пример модуля (
docs/examples/example_module/) — рабочий образец того, как модуль подключается к API (модель + схемы + роутер + тесты); подробности в README рядом -
Скрипты (
scripts/) — инициализация БД и тестовые данные -
Документация (
docs/) — архитектура и шаблоны -
Настройки —
.gitignore,requirements.txt,pytest.ini,.flake8 -
CI — на каждый push/PR в
mainавтоматически прогоняютсяpytestиflake8
| Модуль | Папка | Описание | Статус |
|---|---|---|---|
| 📒 Электронный журнал | modules/gradebook/ |
Оценки и посещаемость | 🟡 В разработке |
| 📚 Рабочие программы | modules/curriculum/ |
Управление программами | 🟡 В разработке |
| 📅 Расписание | modules/schedule/ |
Расписание пар | 🟡 В разработке |
| 📊 Отчёты | modules/reports/ |
Табели и статистика | 🟡 В разработке |
| 👨🎓 Кабинет студента | modules/student_portal/ |
Личный кабинет студента | 🟡 В разработке |
| 👨🏫 Кабинет преподавателя | modules/teacher_portal/ |
Личный кабинет преподавателя | 🟡 В разработке |
| ⚙️ Админ-панель | modules/admin_panel/ |
Управление системой | 🟡 В разработке |
- Откройте Issues в репозитории
- Найдите задачу с названием модуля (например, «Module: Gradebook»)
- Назначьте себя на задачу (Assign yourself)
- Напишите в комментариях название вашей команды
ИЛИ:
- Создайте новый Issue с названием:
Команда [Название] — Модуль [Название] - В описании укажите:
- Название команды
- Список участников
- Выбранный модуль
Создайте файл docs/modules/[module-name]/team.md и заполните:
# Команда: [Название команды]
## 👥 Участники
| ФИО | Роль | GitHub | Email |
|-----|------|--------|-------|
| Иванов Иван | Team Lead | [@username](https://github.com/username) | email@example.com or tg_username |
| Петров Пётр | Developer | [@username](https://github.com/username) | email@example.com or tg_username |
| Сидорова Анна | Developer | [@username](https://github.com/username) | email@example.com or tg_username |
## 🎯 Модуль
**Название:** [Например, Gradebook — Электронный журнал]
**Описание:** [Краткое описание функционала модуля]
## 📅 Дедлайны
- Контрольная точка 1: [Дата]
- Контрольная точка 2: [Дата]
- Финальная защита: [Дата]
## 📝 Заметки
[Дополнительная информация]Создайте файл docs/modules/[module-name]/specification.md:
# Техническое задание: [Название модуля]
## 1. Назначение модуля
[Описание того, что делает модуль и зачем он нужен]
## 2. Функциональные требования
### 2.1. Основные функции
- [Функция 1]
- [Функция 2]
- [Функция 3]
### 2.2. Пользовательские сценарии
**Сценарий 1:** [Описание сценария использования]
1. Пользователь открывает...
2. Система показывает...
3. Пользователь вводит...
4. Система сохраняет...
## 3. Нефункциональные требования
- Производительность: [Требования]
- Безопасность: [Требования]
- Совместимость: [Требования]
## 4. Интерфейсы
### 4.1. API Endpoints
| Метод | Endpoint | Описание |
|-------|----------|----------|
| GET | `/api/v1/[module]/...` | [Описание] |
| POST | `/api/v1/[module]/...` | [Описание] |
### 4.2. Взаимодействие с другими модулями
- [Модуль 1]: [Описание взаимодействия]
- [Модуль 2]: [Описание взаимодействия]
## 5. Структура базы данных
### 5.1. Таблицы
**Таблица:** `[table_name]`
| Поле | Тип | Описание |
|------|-----|----------|
| id | Integer | Первичный ключ |
| field_name | Type | Описание поля |
## 6. Критерии приёмки
- [ ] Все функции реализованы
- [ ] Тесты написаны и проходят
- [ ] Документация заполнена
- [ ] Код соответствует PEP 8
- [ ] Pull Request создан и принят
## 7. Приложения
[Скриншоты, схемы, диаграммы]Следуйте инструкции на странице 📥 Установка и настройка.
Прежде чем писать роутер с нуля, посмотрите готовый рабочий пример:
docs/examples/example_module/ в репозитории. Это не один из 7 модулей
и не готовое решение за вас — просто образец структуры (модель +
Pydantic-схемы + роутер + тесты на TestClient), который можно
скопировать в modules/<ваш_модуль>/ и адаптировать под свою сущность
(оценки, расписание и т.д.). Всё подробно расписано в README.md рядом
с примером, а общая механика — в docs/architecture.md.
- Преподаватель: Моисеева Александра — popova00alex@mail.ru - tg @molixany