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. Приложения

[Схемы, диаграммы, если нужны]