Skip to content

Latest commit

 

History

6 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Students API

FastAPI-приложение для управления студентами и группами студентов.

Возможности

  • создание студентов;
  • создание групп;
  • получение студента по id;
  • получение группы по id;
  • получение списка студентов;
  • получение списка групп;
  • удаление студентов;
  • удаление групп;
  • добавление студента в группу;
  • удаление студента из группы;
  • получение всех студентов группы;
  • перевод студента из одной группы в другую.

Технологии

  • Python
  • FastAPI
  • SQLModel
  • PostgreSQL
  • Docker Compose
  • Uvicorn

Структура проекта

app/
├── api/            # API endpoints
├── db/             # подключение к базе данных
├── models/         # ORM-модели
├── repositories/   # работа с БД
├── schemas/        # схемы запросов и ответов
├── services/       # бизнес-логика
├── config.py
└── main.py

Переменные окружения

Пример .env:

POSTGRES_DB=students_db
POSTGRES_USER=postgres
POSTGRES_PASSWORD=postgres
POSTGRES_HOST=localhost
POSTGRES_PORT=5432

В репозитории находится файл .env.example.

Запуск

Запустить базу данных:

docker compose up -d

Создать и активировать виртуальное окружение:

python3 -m venv venv
source venv/bin/activate

Установить зависимости:

pip install -r requirements.txt

Запустить приложение:

uvicorn app.main:app --reload

Если приложение запускается на виртуальной машине:

uvicorn app.main:app --reload --host 0.0.0.0

Swagger

http://127.0.0.1:8000/docs

Для виртуальной машины:

http://<IP_ВМ>:8000/docs

Endpoints

Students

Метод Endpoint Описание
POST /students Создать студента
GET /students Получить список студентов
GET /students/{student_id} Получить студента по id
DELETE /students/{student_id} Удалить студента
POST /students/{student_id}/transfer Перевести студента в другую группу

Groups

Метод Endpoint Описание
POST /groups Создать группу
GET /groups Получить список групп
GET /groups/{group_id} Получить группу по id
DELETE /groups/{group_id} Удалить группу
POST /groups/{group_id}/students/{student_id} Добавить студента в группу
DELETE /groups/{group_id}/students/{student_id} Удалить студента из группы
GET /groups/{group_id}/students Получить студентов группы

Остановка

docker compose down

About

No description, website, or topics provided.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages