Skip to content

Бэкенд приложения “Фильмотека”

License

Notifications You must be signed in to change notification settings

shuklarituparn/Filmoteka

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

56 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

🎬 Фильмотека API

ezgif-5-625c0202df

Использование и установка


Обзор

Этот API позволяет вам выполнить следующую задачу

Актеры

  • добавить информацию об актёре (имя, пол, дата рождения),
  • измененить информацию об актёре.
  • Есть возможность изменит любую информацию об актёре, как частично, так и полностью
  • удаление информации об актёре

Фильми

  • добавить информацию о Фильме (имя, пол, дата рождения),
  • измененить информацию о фильме.
  • получение списка фильмов с возможностью сортировки по названию, по рейтингу, по дате выпуска. По умолчанию используется сортировка по рейтингу (по убыванию),
  • Есть возможность изменит любую информацию о фильме, как частично, так и полностью
  • поиск фильма по фрагменту названия, по фрагменту имени актёра
  • получение списка актёров, для каждого актёра выдаётся также список фильмов с его участием,

Пользователи

  • АПИ поддерживает две роли пользователей

  • обычный пользователь и администратор.

  • Обычный пользователь имеет доступ только на получение данных и поиск,

  • администратор - на все действия. можно считать, что соответствие пользователей и ролей задаётся вручную (например, напрямую через БД).

Развертывание


Особенности

  • Мониторинг: Сервис использует prometheus/grafana для сбора метрик из различных эндпойнты
  • OpenAPI/Swagger: Сервис использует спецификацию OpenAPI/Swagger для лучшего тестирования и документирования
  • Интеграционный/Юнит тест: Сервис использует CUTE для упрощения создания тестов
  • Allure reports: Сервис использует отчеты Allure для упрощения просмотра отчетов.

Технологический стек

  • Бэкенд: Go (net/http)
  • Базы данных: GORM с PostgreSQL (локальная)
  • Интеграционный тест: CUTE
  • Юнит тесты: httptest
  • Электронная почта: resend для отправки alerts из grafana
  • Генерация метрики: Prometheus
  • Мониторинг: Grafana для визуализации
  • Allure: для визуализации отчетов об испытаниях
  • Аутентификация пользователей: Использовал Jwt
  • Git Хуки: Использовал husky
  • Linting: Использовал golang-ci-lint
  • Hot-Reload- Использовал air
  • Makefile - Добавил возможность установки сервиса с помощью makefile вместе с docker
  • Коллекции- Добавил коллекции для Postman и thunderclient
  • Deployment: Docker, Docker-compose
  • CI/CD: Github Actions, Gitlab

Измерение и отображение метрик

Screenshot from 2024-03-18 13-25-37

image

При запросе сервера prometheus в grafana добавьте https://prometheus:9090


Тесты (CUTE и Allure-Reports)

Убедитесь, что в вашей системе установлен allure

Руководство по установке allure

https://allurereport.org/docs/gettingstarted-installation/

  • Чтобы запустить тесты сделайте go test ./test/...
  • Чтобы генерирует allure report, сделайте allure generate
  • Чтобы увидет allure report, запустите allure serve в директории test

Screenshot from 2024-03-23 16-55-17 Screenshot from 2024-03-18 22-16-43


About

Бэкенд приложения “Фильмотека”

Resources

License

Code of conduct

Security policy

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published