Skip to content
This repository has been archived by the owner on Sep 10, 2024. It is now read-only.

Тестовое задание Software Engineer(Ruby On Rails)

Notifications You must be signed in to change notification settings

KosyanMedia/travelpayouts_RoR_test

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

4 Commits
 
 
 
 

Repository files navigation

Тестовое задание Software Engineer(Ruby On Rails)

Цель

Разработать 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 сервера тестами

После выполнения

  • Ты использовал какие-то дополнительные библиотеки? Если да, то зачем?
  • Сколько примерно времени заняло выполнение тестового?
  • Если бы нужно было вывести этот проект в продакшен, что бы ты улучшил?
  • Как тебе наше тестовое задание? Мы будем рады любому фидбеку

About

Тестовое задание Software Engineer(Ruby On Rails)

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published