Русский | English
Данный проект представляет собой API для университетской системы управления, которая позволяет выполнять операции с данными о студентах, преподавателях, курсах и оценках студентов.
git clone https://github.com/MashkaCoder/university_management_systems.git
cd university_management_systems
Создайте виртуальное окружение и установите необходимые библиотеки
pip install -r requirements.txt
- Проверьте, что PostgreSQL сервер установлен и запущен на вашем компьютере.
- Создайте базу данных с именем
university
в pgAdmim. - Укажите соответствующие значения хоста, порта, имени пользователя и имени бд для подключения к базе данных в файле
api_point.py
или замените соответвующие данные на ваши. - Установите соедение с созданной базой данных
university
удобным вам способом и запустите скрипт для создания таблицcreate_db.sql
и заполнения базы данныхinsert_values_to_db.sql
.
- Запустите API-сервер с помощью команды:
uvicorn api_point:app --reload
- Приложение будет доступно по адресу
http://localhost:8000
.
После запуска приложения, вы можете просмотреть и протестировать доступные точки входа, перейдя по адресу http://localhost:8000/docs
. В документации API вы найдете подробные описания и примеры запросов для каждой точки входа.
Студент (Student)
- id (int): Уникальный идентификатор студента
- first_name (varchar(50)): Имя студента
- middle_name (varchar(50)): Отчество студента
- last_name (varchar(50)): Фамилия студента
- gender (varchar(10)): Пол студента
- birthday (date): Дата рождения студента
- email (varchar(100)): Email студента
- phone (varchar(11)): Телефонный номер студента
- group_id (int): Идентификатор группы, в которой состоит студент
Преподаватель (Teacher)
- id (int): Уникальный идентификатор преподавателя
- first_name (varchar(50)): Имя преподавателя
- middle_name (varchar(50)): Отчество преподавателя
- last_name (varchar(50)): Фамилия преподавателя
- gender (varchar(10)): Пол преподавателя
- birthday (date): Дата рождения преподавателя
- email (varchar(100)): Email преподавателя
- phone (varchar(11)): Телефонный номер преподавателя
- grade (varchar(30)): Ученая степень преподавателя
- salary (int): Зарплата преподавателя
Курс (Course)
- id (int): Уникальный идентификатор курса
- name (varchar(50)): Название курса
Группа (Group)
- id (int): Уникальный идентификатор группы
- name (varchar(50)): Название группы
- faculty_id (int): Идентификатор факультета, к которому принадлежит группа
- syllabus_id (int): Идентификатор учебного плана, связанного с группо
Отделение (Department)
- id (int): Уникальный идентификатор отделения
- name (varchar(50)): Название отделения
- faculty_id (int): Идентификатор факультета, к которому относится отделение
Оценка (Mark)
- id (int): Уникальный идентификатор оценки
- mark (int): Оценка
- course_id (int): Идентификатор курса
- semester_id (str): Идентификатор семестра
- student_id (int): Идентификатор студента
Расписание (Schedule)
- id (int): Уникальный идентификатор расписания
- day_of_the_week (varchar(15)): День недели, на который составлено расписание
- time_start (time): Время начала занятия
- time_end (time): Время окончания занятия
- teacher_id (int): Идентификатор преподавателя, который ведет занятие
- group_id (int): Идентификатор группы, для которой составлено расписание
- audience_id (int): Идентификатор аудитории в которой проходит занятие
Расписание курса (ScheduleCourse)
- id (int): Уникальный идентификатор записи расписания курса
- schedule_id (int): Идентификатор расписания
- course_id (int): Идентификатор курса, связанного с расписанием
Здание (Building)
- id (int): Уникальный идентификатор здания
- name (varchar(200)): Название здания
- address (varchar(250)): Адрес здания
Аудитория (Audience)
- id (int): Уникальный идентификатор аудитории
- name (varchar(50)): Название аудитории
- building (int): Идентификатор здания
Семестр (Semester)
- id (int): Уникальный идентификатор семестра
- name (varchar(30)): Название семестра
- date_start (date): Дата начала семестра
- date_end (date): Дата окончания семестра
Факультет (Faculty)
- id (int): Уникальный идентификатор факультета
- name (varchar(100)): Название факультета
Экзамен (Exam)
- id (int): Уникальный идентификатор экзамена
- name (varchar(50)): Название экзамена
- task (varchar(1000)): Задание экзамена
Задание для самостоятельной работы (IndependentWork)
- id (int): Уникальный идентификатор самостоятельной работы
- task_name (varchar(50)): Название самостоятельной работы
- submission_date (date): Срок сдачи самостоятельной работы
- student_id (int): Идентификатор студента, сдавшего работу
- task (varchar(1000)): Задание самостоятельной работы
Программа курса самостоятельной работы (CourseProgramIndependentWork)
- id (int): Уникальный идентификатор программы курса самостоятельной работы
- course_program_id (int): Идентификатор программы курса, к которой относится самостоятельная работа
- ind_work_id (int): Идентификатор самостоятельной работы, включенной в программу курса
Программа курса (CourseProgram)
- id (int): Уникальный идентификатор программы курса
- description (varchar(500)): Описание программы курса
- course_id (int): Идентификатор курса, к которому относится программа
- exam_id (int) : Идентификатор экзамена, относящийся к программа
Учебный план (Syllabus)
- id (int): Уникальный идентификатор учебного плана
- course_id (int): Идентификатор курса
- semester_id (int): Идентификатор семестра
- description (varchar(500)): Описание учебного плана
api_point.py
- основной файл приложения FastAPI, содержащий точки входа APImodels.py
- определение моделей Pydantic для машрутовindex.html
- файл стартовой страницы приложения, содержащий описание доступных точек входаcreate_db.sql
- скрипт для создания таблиц бдinsert_values_to_db.sql
- скрипт для заполнения таблиц бдquery_db.sql
- некоторые SQL запросы к бдrequirements.txt
- список зависимостей проекта.