- Docker
- GIT
- Run docker-compose up
- Enter container
make enter-app
- cd into public
cd public
/ inside container - run migrations
php artisan migrate
/ inside container - install dependencies run
composer install
/ inside container
make tests
- Server: http://localhost:25000
- Form for signup: http://localhost:25000/signup
Here is a simplified UML class diagram to show the main classes I used to design the backend. Please note that this is only a simplified representation. Many other classes are used in the real implementation.
- I am using 3 retries when calling the payment endpoint. If the endpoint is slow or for split second not reachable the user has to wait.
- Frontend performance can be increased with a proper framework. I am using raw js, jquery and including libraries via CDNs.
- I am not validating the data in the backend. When you place a direct CURL request there could be a failure.
- I can definetly improve the frontend. Using a frontend framework and splitting up the application would be more professional.
- I could have implemented a better exception handling solution. Currently throwing a custom exception and handling this exception directly inside the controller.