/bo-bank

Solution for test task from inxy.io

Primary LanguagePHP

BO Bank

Описание тестового задания от компании INXY.IO:

Требуется простая версия АПИ сервиса, для управления пользователями и переводами средств между их аккаунтами. “БО Банк” должен включать в себя методы:

  • Обновления пользователя (name, email, age)
  • Пополнение баланса пользователя. Отрицательный баланс не может существовать
  • Перевода средств между пользователями

Для работы использовать:

  • DB Postgres
  • Laravel framework

Постарайтесь использовать лучшие методологии и практики, о которых Вы знаете и предусмотреть нюансы при работе с балансом.

Описание решения

Реализованы минимально необходимые методы api:

  • PUT /api/users/:userId - обновление пользователя
  • POST /api/users/:userId/deposit - пополнение баланса пользователя
  • POST /api/users/:userFromId/transfer/:userToId - перевод между пользователями

Реализованы дополнительно возможности по созданию пользователя через web ui:

  • GET /users/create - страница создания пользователя
  • POST /users - создание пользователя

Дополнительно есть возможность получения баланса пользователя:

  • GET /api/users/:userId/balance - получение баланса пользователя

Для локальной разработки я использовал Laravel Herd (Pro); Laravel 11, PHP 8.3, PostgreSQL 16.