Please read each note very carefully! Feel free to add/change project structure to a clean architecture to your view.
Create a simple CRUD application with Laravel that implements the below model:
Customer {
Firstname
Lastname
DateOfBirth
PhoneNumber
Email
BankAccountNumber
}
- TDD
- DDD
- BDD
- Clean architecture
- Clean git commits that shows your work progress.
- Use latest PHP only
- Swagger
-
During Create; validate the phone number to be a valid mobile number only (Please use Google LibPhoneNumber to validate number at the backend).
-
A Valid email and a valid bank account number must be checked before submitting the form.
-
Customers must be unique in database: By
Firstname
,Lastname
andDateOfBirth
. -
Email must be unique in the database.
- Store the phone number in a database with minimized space storage (choose
varchar
/string
, orbigInt unsigned
whichever store less space).
- Please clone this repository in a new github repository in private mode and share with ID:
mason-chase
in private mode on github.com, make sure you do not erase my commits and then create a pull request (code review). - Docker-compose project that loads database service automatically with
docker-compose up
- Web UI.
- CQRS pattern (Event sourcing).