/koinz

Primary LanguagePHP

Koinz Book Recommendation Task

What do you need to get the project up and running ?

  • Run cp .env.example .env to create the .env file
  • You must have composer, if not please refer here to install it Install Composer.
  • Run composer install to create the vendor directory
  • Run ./vendor/bin/sail up -d to run the dockerized project based on Laravel Sail
  • If you reached this step with no errors Congrats you can visit http://localhost to double check that the project is up and running.

Technologies used in this project

  • Laravel 11 (latest)
  • Laravel sail
  • Docker based on laravel sail
  • PHP version 8.2
  • PHPUnit for unit test
  • MySQL as a DBMS
  • AWS (Free Tier) as a hosting platform

About the architecture which i used

  • I used service oriented architecture to make it easy for everyone who maintains this code
  • I used events and listeners to separate the logic of sending SMS from the application logic itself
  • I applied factory design pattern to have multiple SMS provider and make it easy to add a new provider (just two modifications to add a new provider)
  • Made some unit tests to showcase how a unit test could be implemented

Postman Documentation

For testing with postman you can use the following user (all the passwords are password)

Please note that the SMS API that you provided is getting 503 Service Unavailable So i used another mocking API