Skip to content

Latest commit

 

History

History
66 lines (50 loc) · 4.23 KB

Техническое_задание.md

File metadata and controls

66 lines (50 loc) · 4.23 KB

Задание для кандидата на должность Junior Python Developer

Целью этого задания является разработка структуры базы данных и реализация API для "Системы управления университетом". Это система, где учитываются студенты, преподаватели, курсы, группы, отделения университета, оценки и другие соответствующие данные.

Часть 1: База данных

Сначала вам необходимо создать схему базы данных, состоящую из 15 сущностей:

  1. Студент
  2. Преподаватель
  3. Курс
  4. Группа
  5. Отделение
  6. Оценка
  7. Расписание
  8. Здание
  9. Аудитория
  10. Семестр
  11. Факультет
  12. Экзамен
  13. Задание для самостоятельной работы
  14. Программа курса
  15. Учебный план

Ваша задача - создать ER-диаграмму (схему связей между сущностями) и определить свойства каждой из этих сущностей. Затем напишите SQL запросы для создания соответствующих таблиц, включающих все необходимые поля и связи между ними. Мы ждём от вас:

  1. ER-диаграмму, которая описывает все сущности и связи между ними.
  2. SQL скрипт, который создаёт все таблицы с полями, их типами данных, ключами и связями.
  3. Краткое описание каждой сущности и её свойств.

Часть 2: SQL запросы

Пожалуйста, реализуйте следующие SQL запросы:

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

Часть 3: FastAPI

Мы бы хотели увидеть следующие точки входа API:

  1. POST /students - создать нового студента.
  2. GET /students/{student_id} - получить информацию о студенте по его id.
  3. PUT /students/{student_id} - обновить информацию о студенте по его id.
  4. DELETE /students/{student_id} - удалить студента по его id.
  5. GET /teachers - получить список всех преподавателей.
  6. POST /courses - создать новый курс.
  7. GET /courses/{course_id} - получить информацию о курсе по его id.
  8. GET /courses/{course_id}/students - получить список всех студентов на курсе.
  9. POST /grades - создать новую оценку для студента по курсу.
  10. PUT /grades/{grade_id} - обновить оценку студента по курсу.

Ожидается реализация этих точек входа API с использованием FastAPI, включая входные и выходные модели Pydantic для каждого маршрута.

Часть 4: Публикация и документация

Загрузите свой код в публичный репозиторий на GitHub и предоставьте ссылку на него. Включите в README файл:

  1. Описание проекта.
  2. Инструкции по установке и запуску вашего приложения.
  3. Инструкции по использованию API.

Успехов в выполнении задания!