REST API для управления студентами и секциями с системой ролей и JWT авторизацией.
- Python 3.13
- FastAPI
- SQLAlchemy 2.0 + asyncpg
- PostgreSQL
- Alembic
- JWT (python-jose)
- pytest
Клонируйте репозиторий:
git clone https://github.com/SaPer663/student-sections-api.git
cd student-sections-apiСоздайте .env файл:
cp .env.example .envОтредактируйте переменные окружения при необходимости.
Запустите через Docker Compose:
docker-compose up --buildAPI будет доступен по адресу http://localhost:8000
После старта контейнеров автоматически:
- Применятся миграции базы данных
- Создадутся роли
adminиuser - Будет создан первый администратор
Учетные данные администратора:
- Email:
admin@example.com - Пароль:
admin123
Для тестирования API в окружении development загрузятся тестовые данные:
- 7 секций (Python, Math, Physics и т.д.)
- 15 студентов
- ~20 записей в секции
После запуска доступна интерактивная документация:
- Swagger UI:
http://localhost:8000/docs - ReDoc:
http://localhost:8000/redoc
Получить токен:
curl -X POST http://localhost:8000/api/v1/auth/login \
-H "Content-Type: application/json" \
-d '{"email":"admin@example.com","password":"admin123"}'Получить список студентов:
curl http://localhost:8000/api/v1/students \
-H "Authorization: Bearer YOUR_TOKEN"Проект использует слоистую архитектуру:
- API Layer - FastAPI endpoints
- Service Layer - бизнес-логика
- Repository Layer - работа с БД
- Models - SQLAlchemy модели
Применены паттерны: Repository, Service Layer, Dependency Injection, DTO (Pydantic).
curl http://localhost:8000/healthdocker-compose downДля удаления данных:
docker-compose down -v