Разработать API сервер, используя возможности Ruby On Rails
Для этой задачи мы хотим получить бекенд для построения различных приложений: веб или мобильных.
В приложении есть пользователи и партнерские программы. В приложении можно создавать новых пользователей. Пользователи могу подписываться на партнеские программы. Один пользователь может быть подписан на много программ.
Схема исходных данных
Пользователь(
id
email
name
)
Программа(
id
title
description
)
Пример данных для программ
https://github.com/KosyanMedia/travelpayouts_RoR_test/blob/master/data.json
Нужно реализовать API методы, которые позволят
- создавать новых пользователей
- получить информацию по одному пользователю
- показать список всех имеющихся программ
- метод, который создает подписку пользователя на программу
- показать список программ на которые подписан пользователь
- Метод автокомплита популярных программ. На вход метода приходит строка term. Метод возвращает программы, в которых term является подстрокой title программы. Метод возвращает список программ отсортированных по популярности. От большей популярности, к меньшей. Популярность определяется так: чем больше пользователей подписано на программу, тем она популярней
- Ruby MRI 2.5+
- Ruby On Rails > 5.0
- ActiveRecord
- Docker
На выходе должен получиться проект на Github.com с инструкцией по запуску. Приложение должно запускаться в Docker
Эти задания не оцениваются в первую очередь, но будут иметь вес при прочих равных
- Реализовать логику и API метод создания бана(блокировки) подписки пользователя на программу. Если пользователь заблокирован в программе, то в списке программ именно этого пользователя она не будет выводиться
- Покрыть функциональность API сервера тестами
- Ты использовал какие-то дополнительные библиотеки? Если да, то зачем?
- Сколько примерно времени заняло выполнение тестового?
- Если бы нужно было вывести этот проект в продакшен, что бы ты улучшил?
- Как тебе наше тестовое задание? Мы будем рады любому фидбеку