Skip to content

Repository files navigation

Третье задание. CMS для управления контентом для экранов.

Идея

Приложение: клиент продает на конференции экраны. Он хочет создать CMS для управления контентом для экранов. Необходимо создать RESTful API с авторизацией для организатора конференций.

Сущности

  • пользователь
  • ивент
  • экран
  • плейлист

Один пользователь может иметь множество ивентов. Один ивент может иметь множество экранов, один экран может иметь один плейлист, один плейлист может иметь множество контента. Контент может быть видео/аудио/картинка/html. Контент можно переиспользовать между плейлистами. Порядок контента в плейлисте можно менять. Длительность воспроизведения контента в плейлисте можно менять. Контент может быть использован во множестве плейлистов.

Требования

  1. Спроектировать структуру БД при помощи dbdiagram.io.
  2. Создать авторизацию пользователя через Auth0 (email + password/sms/google).
  3. Подключаем базу данных PostgreSQL.
  4. Создать модели и реляционные связи между ними.
  5. Создать CRUD.
  6. Интеграция AWS S3 сервиса. Файл с клиента должен быть загружен в aws s3 bucket. Ссылка полученная от aws должна быть сохранена у нас в контенте. При удалении контента с клиента, должны так же удалять файл на S3 bucket-e.
  7. Должны валидировать все данные которые отправляет нам пользователь. Валидация на емейл, строку, число, количество символов и т.д.
  8. Если API метод возвращает данные, то это обязательно должен быть json объект или массив, а не просто строка или просто цифра.
  9. Должны проверять имеет ли право пользователь менять/удалять сущности (является ли владельцем этой сущности). Используем gem cancancan.
  10. Для эмуляции запросов с клиента использовать postman.
  11. Создаем seeds для наполнения БД тестовыми данными.
  12. Собираем все через Docker.

About

No description, website, or topics provided.

Resources

Stars

0 stars

Watchers

1 watching

Forks

Releases

Packages

Contributors

Languages