Skip to content

Getting Started

College CMS Fix edited this page Sep 18, 2026 · 8 revisions

🚀 Начало работы с проектом

Добро пожаловать в проект 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/ Управление системой 🟡 В разработке

✅ Первые шаги

Шаг 1: Выберите модуль для разработки

  1. Откройте Issues в репозитории
  2. Найдите задачу с названием модуля (например, «Module: Gradebook»)
  3. Назначьте себя на задачу (Assign yourself)
  4. Напишите в комментариях название вашей команды

ИЛИ:

  1. Создайте новый Issue с названием: Команда [Название] — Модуль [Название]
  2. В описании укажите:
    • Название команды
    • Список участников
    • Выбранный модуль

Шаг 2: Заполните данные команды

Создайте файл 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: [Дата]
- Финальная защита: [Дата]

## 📝 Заметки

[Дополнительная информация]

Шаг 3: Создайте Техническое Задание (ТЗ)

Создайте файл 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. Приложения

[Скриншоты, схемы, диаграммы]

Шаг 4: Настройте локальное окружение

Следуйте инструкции на странице 📥 Установка и настройка.


🧪 Как подключить свой модуль к API — пример

Прежде чем писать роутер с нуля, посмотрите готовый рабочий пример: docs/examples/example_module/ в репозитории. Это не один из 7 модулей и не готовое решение за вас — просто образец структуры (модель + Pydantic-схемы + роутер + тесты на TestClient), который можно скопировать в modules/<ваш_модуль>/ и адаптировать под свою сущность (оценки, расписание и т.д.). Всё подробно расписано в README.md рядом с примером, а общая механика — в docs/architecture.md.


📞 Контакты и помощь

  • Преподаватель: Моисеева Александра — popova00alex@mail.ru - tg @molixany

📚 Полезные ссылки

Clone this wiki locally