Реализация веб-сервиса "Система управления университетом" в рамках тестового задания.
Текст задания – 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.