Skip to content

Nick-star/universityapi

Repository files navigation

universityapi

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

Данный проект представляет собой университетскую систему, которая включает в себя базу данных для хранения информации о студентах, преподавателях, курсах, группах, оценках и других сущностях, а также предоставляет API для взаимодействия с этими данными.

База данных

В рамках этой части проекта необходимо создать схему базы данных, состоящую из 15 сущностей. Ниже представлена ER-диаграмма, описывающая связи между сущностями: image

Скрипт для установки схемы в базу данных: https://github.com/Nick-star/universityapi/blob/master/sql/02_schema.sql

Краткое описание каждой сущности:

  • Студент: информация о студенте, включая имя, фамилию и группу.
  • Преподаватель: информация о преподавателе, включая имя и фамилию.
  • Курс: информация о курсе, включая название и преподавателя, который ведет данный курс.
  • Группа: информация о группе студентов.
  • Отделение: информация об отделении университета.
  • Оценка: информация об оценке студента по определенному курсу.
  • Расписание: информация о расписании занятий.
  • Здание: информация о здании, в котором проводятся занятия.
  • Аудитория: информация об аудитории в здании.
  • Семестр: информация о семестре учебного года.
  • Факультет: информация о факультете университета.
  • Экзамен: информация о экзамене по определенному курсу.
  • Задание для самостоятельной работы: информация о задании, которое студент должен выполнить самостоятельно.
  • Программа курса: информация о программе определенного курса.
  • Учебный план: информация о учебном плане для группы студентов.

SQL запросы

Необходимо было реализовать следующие SQL запросы:

  1. Выбрать всех студентов, обучающихся на курсе "Математика".
  2. Обновить оценку студента по курсу.
  3. Выбрать всех преподавателей, которые преподают в здании №3.
  4. Удалить задание для самостоятельной работы, которое было создано более года назад.
  5. Добавить новый семестр в учебный год.

Скрипт с запросами: https://github.com/Nick-star/universityapi/blob/master/sql/tasks.sql

FastAPI

API должно предоставлять следующие точки входа:

  • POST /students - создание нового студента.
  • GET /students/{student_id} - получение информации о студенте по его id.
  • PUT /students/{student_id} - обновление информации о студенте по его id.
  • DELETE /students/{student_id} - удаление студента по его id.
  • GET /teachers - получение списка всех преподавателей.
  • POST /courses - создание нового курса.
  • GET /courses/{course_id} - получение информации о курсе по его id.
  • GET /courses/{course_id}/students - получение списка всех студентов на курсе.
  • POST /grades - создание новой оценки для студента по курсу.
  • PUT /grades/{grade_id} - обновление оценки студента по курсу.

Установка

Docker

  1. Откройте терминал на вашей системе.
  2. Перейдите в папку, в которую вы хотите склонировать репозиторий.
  3. Выполните следующую команду для клонирования репозитория:
git clone https://github.com/Nick-star/universityapi.git 
  1. Перейдите в папку проекта, введя следующую команду:
cd universityapi
  1. В папке проекта откройте файл docker-compose.yaml и убедитесь, что все настройки контейнера, такие как порты и переменные окружения, настроены правильно.
  2. Выполните следующую команду для сборки и запуска контейнера Docker:
docker-compose up -d
  1. Приложение теперь доступно по порту http://0.0.0.0:8000/

Ручная установка

Требования:

  • PostgreSQL
  • Python (версии 3.x)
  • pip
  1. Откройте терминал.
  2. Перейдите в папку, в которую вы хотите склонировать репозиторий.
  3. Выполните следующую команду для клонирования репозитория:
git clone https://github.com/Nick-star/universityapi.git 
  1. Перейдите в папку проекта, введя следующую команду:
cd universityapi
  1. Выполните следующую команду для создания виртуального окружения:
python3 -m venv venv
  1. Активируйте виртуальное окружение:
  • Для Windows:
venv\Scripts\activate
  • Для MacOS и Linus:
source venv/bin/activate
  1. Установите зависимости, выполнив следующую команду:
pip install -r requirements.txt
  1. Создайте базу данных 'university' в вашей PostgreSQL и запустите скрипты sql/02_schema.sql и 03_initial_data.sql.
  2. Запустите приложение, выполнив следующую команду:
uvicorn main:app --host 0.0.0.0 --port 8000
  1. Приложение теперь доступно по URL-адресу http://localhost:8000.

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published