Skip to content

foxweb/greenatom-test

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

5 Commits
 
 

Repository files navigation

Тестовое задание на вакансию Middle/Senior Ruby developer

Добрый день!

Спасибо за интерес к вакансии Ruby-разработчика. В рамках тестового задания вам предлагается разработать небольшой микросервис на Ruby с использованием любого фреймворка, такого как Rails, Hanami, Sinatra, Rack или Roda.

Напишите API-микросервис, который будет принимать данные в формате JSON и сохранять данные от пользователей. Это может быть что угодно: ФИО, емейлы, паспортные данные, документы. Микросервис должен иметь возможность обрабатывать и сохранять несколько записей.

Вам предлагается следующая детализация задания:

  1. Необходимо создать эндпоинт для POST-запроса, который будет принимать запросы с данными в формате JSON.
  2. Входящий запрос должен содержать информацию о пользователе. Структура данных может быть определена вами, но она должна соответствовать формату JSON.
  3. Микросервис должен валидировать полученные данные и сохранять их в базу данных. Вы можете выбрать любую базу данных, с которой предпочитаете работать.
  4. В случае успешного сохранения данных, микросервис должен вернуть статус 201 Created и URL на сохраненные данные.
  5. Для возможности вывода собранных данных, следует создать эндпоинт GET-запроса, который будет возвращать список сохраненных записей.
  6. Для обеспечения безопасности, вы можете добавить аутентификацию и авторизацию к микросервису (опционально).
  7. Опционально можно оформить приложение в Docker или Docker Compose контейнер. В таком случае проверяющий должен без проблем запустить проект у себя на системе.
  8. В файле README.md опишите минимальные действия для запуска.
  9. Результат показать на GitHub.

Пример простейшего приложения в подобном стиле — https://github.com/foxweb/qr-logger. Можно взять прямо этот же код за основу и улучшить его.

Особое внимание уделите минимализму вашего кода. Чем меньше строк, классов, файлов и гемов — тем лучше. Можете добавить минимальные тесты, Rubocop – что угодно, что вы привыкли использовать. Учтите, что это лишь примерное задание, и вы можете изменять и дорабатывать его по своему усмотрению. Главное, чтобы ваше решение демонстрировало вашу способность разрабатывать API-микросервисы на Ruby и использовать выбранный вами фреймворк. Приветствуются любые ваши оригинальные идеи и решения. Сделайте этот проект украшением и гордостью вашего GitHub-профиля :)

Удачи в выполнении задания, ожидаем вашего результата!

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors