Skip to content

KlimSemikin/screenscms

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

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages