Tech Spec Backend Student portal - moiaa/College_Management_System GitHub Wiki
Техническое задание на разработку бэкенда модуля "Кабинет студента"
Ниже — структура ТЗ (общий шаблон, см. также Getting Started). Команда заполняет каждый раздел своим содержанием; текст в квадратных скобках — подсказка, что писать, а не готовый ответ.
1. Назначение модуля
Модуль «Кабинет студента» — это личная страница студента на сайте колледжа. Здесь он в одном месте находит всё, что нужно для учёбы, и ему не приходится ходить за этим к преподавателям или в деканат. Что студент может делать: войти в кабинет по своему логину и паролю; посмотреть расписание на неделю; узнать свои оценки по каждому предмету и увидеть, где есть задолженность; проверить, сколько занятий он посетил, а сколько пропустил; заказать справку в деканате и следить, готова она или нет; загрузить свою работу (курсовую, лабораторную) и посмотреть, приняли её или нужно доработать. Откуда берутся данные. Оценки, расписание и посещаемость вносят преподаватели и администраторы через другие модули (электронный журнал, расписание). Кабинет эти данные только показывает. Самому кабинету принадлежат три вещи: список курсов студента, заявки на справки и загруженные работы. Кто что видит. Каждый студент видит только свои данные. Чужие оценки, пропуски и заявки ему недоступны.
2. Функциональные требования
2.1. Основные функции
[Функция 1]
[Функция 2]
[Функция 3]
2.2. Пользовательские сценарии
Сценарий 1: [Название сценария]
[Действие пользователя / другого модуля]
[Что делает backend]
[Что происходит с данными]
3. Нефункциональные требования
Производительность: [требования, если есть]
Безопасность: [кто и как может обращаться к эндпоинтам модуля]
Совместимость: [зависимости от общих компонентов core/]
4. Интерфейсы
4.1. API Endpoints
Согласовывается с frontend-командой этого же модуля до начала Модуля 2 — что это значит и как оформлять, см. 🔌 API-контракт.
| Метод | Endpoint | Описание | Успешный ответ | Ошибки |
|---|---|---|---|---|
| GET | /api/v1/student_portal/... |
[...] | [...] | [...] |
| POST | /api/v1/student_portal/... |
[...] | [...] | [...] |
4.2. Взаимодействие с другими модулями
- [Модуль]: [что именно нужно от другого модуля или ядра
core/]
5. Структура базы данных
5.1. Таблицы
Таблица: [table_name]
| Поле | Тип | Описание |
|---|---|---|
| id | Integer | Первичный ключ |
| ... | ... | ... |
6. Критерии приёмки
- Все функции реализованы
- Тесты написаны и проходят (
pytest) - CI зелёный (
pytest+flake8) - Раздел 4.1 согласован с
specification-frontend.mdэтого модуля (см. чек-лист в 🔌 API-контракт) - Pull Request создан и принят
7. Приложения
[Схемы, диаграммы, если нужны]