/graduate_work

Репозиторий для дипломного проекта

Primary LanguagePython

Проектная работа: диплом

Тема дипломной работы "Бронирование билетов" совместно с Биллингом )

Ссылка на репозиторий

https://github.com/AlexanderPank/graduate_work/

Цель проекта

Cоздать сервис по совместному просмотру фильма позволяющий:

  • создавать мероприятия (приватные и публичные), по инициативе пользователя-хоста. Информация о мероприятии должна содержать: дату, время, кол-во мест, место сбора
  • пользователям-гостям просматривать существующие мероприятия
  • пользователь-хост может приглашать в мероприятия рассылая ссылку содержащую id мероприятия
  • пользователям-гостям бронировать билеты по выбранному мероприятию
  • пользователям-гостям оставлять отзывы о мероприятиях и о пользователе-хосте
  • пользователю-хоста оставлять отзывы о мероприятиях и о пользователях-гостях

Стек технологий

  • NGINX - шлюз внешних запросов
  • FastAPI - разработка API
  • PostgreSQL - хранение информации о бронировании
  • Redis - для работы с кэшем

Требования

  • наличие CI/CD, workflow
  • наличие функциональных и юнит тестов
  • наличие логирования сервиса(ов)
  • докеризация сервисов
  • масштабирование
  • наличие изящной деградации

Сервисы с которыми происходит взаимодействие

  • notification - отправка уведомлений пользователям

схема взаимодействия сервисов

Структура базы данных

Структура базы данных

Сценарии использования сервиса по бронированию билетов

сценарий пользователя-хоста

  • инициализирует мероприятие, выбрав: фильм дату время, место и максимальное количество гостей
  • изменяет параметры мероприятия (на почту гостям которые уже зарегистрированы приходит информация о новых условиях)
  • отменяет мероприятие (на почту гостям которые уже зарегистрированы приходит информация об отмене)
  • за сутки и за час до начала мероприятия получает на почту сообщение-напоминание о старте мероприятия
  • после создания и до начала мероприятия может просматривать информацию о зарегистрированных гостях (имя или ник) и их рейтинг из ранее сохраненных оценок
  • оставить отзыв о мероприятие только если оно было проведено
  • оставить отзыв о пользователе-гость если он был участником проведенного мероприятия
  • выставить статус мероприятие проведено по его окончании
  • изменять и отменять мероприятие может только пользователь создавший его
  • пользователь-хост не может бронировать билеты на собственное мероприятие

сценарий пользователя-гость

  • просмотреть список доступных мероприятий с использованием фильтров
  • просмотреть рейтинг из ранее сохраненных оценок пользователя-хоста
  • просмотреть перечень? и средний рейтинг ранее проведенных мероприятий пользователем-хостом
  • забронировать билет на выбранное мероприятие
  • получить письмо-напоминание за сутки и за час до начала мероприятия
  • получить письмо-информационное об изменении или отмене мероприятия
  • оставить отзыв о мероприятие только если оно было проведено
  • оставить отзыв о пользователе-хост