Ruby on Rails Blog

Необходимо построить API приложение с использование Ruby On Rails для чтения и написания статей в блог. Приложение НЕ должно рендерить html, а только получать запросы и отвечать в формате JSON. Рекомендую ознакомиться с Rails Api Mode

Версия ruby не ниже 2.7, версия Rails - не ниже 6.0. Гемы можно использовать любые. Код приложения должен храниться в git репозитории.

Должна быть возможность зарегистрироваться, войти в систему, создать статью, оставить комментарий под статьей, получить список статей, просмотреть конкретную статью, получить комментарии определенной статьи.

Вход/регистрация

Должна быть возможность регистрации, набор полей: email, password.

  • Должна быть валидация на формат email’а и такой имейл не должен уже быть зарегистрирован в системе, пароль - не менее 6 символов.

  • Вход осуществляется по email + password.

Статьи

Должны содержать поля: заголовок, тело статьи, категория, дата публикации.

  • Заголовок не должен быть пустым и не может быть длиннее 100 символов. Тело статьи не может быть пустым. API не должно позволять незарегистрированным пользователям создавать статьи.

  • Должна быть возможность получить список всех статей отсортированный по дате (от новых к старым), а также возможность просмотреть все статьи определенного автора или с определенной категорией аналогично отсортированных по дате.

  • При получении списка статей API должно возвращать полный заголовок и первые 500 символов статьи, категорию статьи, дату публикации, количество комментариев. Если статья длиннее - после 500 символов должны возвращаться ‘...’

  • Должна быть возможность запросить конкретную статью - в таком случае возвращается заголовок, полное тело, категория, дата публикации.

  • Должна быть возможность удалить статью и позволять это делать только автору.

Комментарии

  • API должно позволять зарегистрированную пользователю оставить комментарий к статье. Комментарий не должен быть пустым и не должен превышать 1000 символов.

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

  • API должно иметь возможность позволить удалить комментарий его автору.