Skip to content

sander-raven/university-management-system

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

10 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

University Management System

Реализация веб-сервиса "Система управления университетом" в рамках тестового задания.

Тестовое задание

Текст задания – docs/Техническое_задание.md.

Используемые технологии

PostgreSQL – СУБД.

psycopg2-binary – адаптер PostgreSQL для Python.

FastAPI – веб-фреймворк.

fastapi-pagination – библиотека для пагинации в FastAPI.

SQLAlchemy – ORM.

pydantic – библиотека для валидации данных.

uvicorn – веб-сервер.

Описание структуры БД

См.: docs/Описание_структуры_БД.md.

SQL-скрипты создания таблиц, заполнения данными и 5 заданий находятся в директории scripts.

Описание структуры приложения FastAPI

Приложение находится в каталоге 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 git@github.com: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

Использование API

См.: docs/Описание_API.md.

Автор

Александр Аравин - sander-raven. Email: sander-raven@yandex.ru.

Лицензия

Проект находится под лицензией MIT. Подробнее: смотри файл LICENSE.

About

Система управления университетом.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published