Реализация веб-сервиса "Система управления университетом" в рамках тестового задания.
Текст задания – docs/Техническое_задание.md.
PostgreSQL – СУБД.
psycopg2-binary – адаптер PostgreSQL для Python.
FastAPI – веб-фреймворк.
fastapi-pagination – библиотека для пагинации в FastAPI.
SQLAlchemy – ORM.
pydantic – библиотека для валидации данных.
uvicorn – веб-сервер.
См.: docs/Описание_структуры_БД.md.
SQL-скрипты создания таблиц, заполнения данными и 5 заданий находятся в директории scripts
.
Приложение находится в каталоге app
и содержит следующие файлы:
__init__.py
– пустой файл, указывающий, что app
– пакет python.
config.py
– конфигурация приложения.
database.py
– настройка подключения к БД и сессии.
main.py
– главный модуль приложения.
models.py
– SQLAlchemy-модели сущностей БД.
router.py
– эндпоинты API и обрабатывающие их функции.
schemas.py
– Pydantic-модели сущностей БД.
utils.py
– вспомогательные функции.
Dockerfile
– описание контейнера приложения.
entrypoint.sh
– bash-скрипт для ожидания старта PostgreSQL.
requirements.txt
– перечень необходимых зависимостей.
Для запуска приложения используются Docker
и Docker Compose
. Убедитесь, что они установлены в системе.
Клонируйте репозиторий:
git clone [email protected]:sander-raven/university-management-system.git
Перейдите в главную директорию проекта:
cd university-management-system/
Переименуйте директорию env-sample
в env
:
mv env-sample/ env/
Задайте необходимые значения переменным в файлах env/.env.app
и env/.env.db
. Например:
nano env/.env.app
Запустите контейнеры:
docker compose up -d --build
Создайте таблицы БД. (В примере: имя пользователя – university_user
, имя базы данных – university
):
docker exec -i univer-db psql -U university_user -d university < ./scripts/create_tables.sql
Заполните таблицы данными:
docker exec -i univer-db psql -U university_user -d university < ./scripts/insert_data.sql
Перейдите в браузере по адресу http://127.0.0.1:8000/docs. Перед вами откроется страница с эндпоинтами API-сервиса Системы управления университетом.
Для остановки и удаления контейнеров используйте следующую команду (флаг -v
также удалит том с базой данных):
docker compose down -v
См.: docs/Описание_API.md.
Александр Аравин - sander-raven. Email: [email protected].
Проект находится под лицензией MIT. Подробнее: смотри файл LICENSE.