Задание
- Спроектировать БД.
- Реализовать API согласно ТЗ.
- Реализовать аутентификацию в АПИ (регистрацию можно не делать).
- Подготовить тестовые данные (дамп базы, скрипт для генерации тестового набора данных).
- Покрыть код тестами.
- Выложить код в репозиторий на GitHub.
Формат маршрутов для доступа к методам, а также формат ответа и запросов можете выбрать и реализовать сами.
Условия
Новость Представляет собой объект новости и должен содержать следующую информацию:
- заголовок;
- анонс;
- текст;
- статус (опубликована, не опубликована).
Пользователь Содержит в себе как минимум информацию о конкретном пользователе, а именно:
- логин;
- пароль;
- ФИО;
- подпись.
Функции:
- может создавать новость;
- может обновлять/удалять свою новость;
- может добавлять новость в избранное.
Функции каталога Взаимодействие с пользователем происходит посредством HTTP-запросов к API серверу. Все ответы представляют собой JSON объекты.
Сервер реализует следующие методы
- только аутентифицированный пользователь может создавать/обновлять новости;
- выдача всех новостей конкретного автора;
- выдача списка авторов;
- выдача списка новостей;
- показывать запрошенную новость;
- выдача всех непрочитанных пользователем новостей.
Используемые технологии
При выполнении задания используйте следующие технологии:
- Ruby не ниже 2.5;
- Rails 5;
- RSpec;
- БД Postgres;