This is a sample code project. Made according to the task given. Some extra features have not been made due to time constraints.
This is the code test sent to applicants for back-end developer roles. Using PHP (preferably OOP and an MVC structure), MySQL and HTML, create a simple application that will allow the user to display a list of events from a database table with three columns - id, event title and event date. Also enable the user to add, edit and delete events. The code will be judged on structure, readability and security. Using Jquery calendar http://fullcalendar.io/ (or something similar) display these events in a calendar underneath the list of events created above.
We are looking for a representation of good code to fulfill the mission. How you choose to approach this and in what detail is up to you. We do not however want you spending a ridiculous amount of time on this so if there is something you would have done but would time-consuminging then you can simply note this alongside the code.
- Clone the project.
- Open project folder with terminal.
- Edit .env file with your credentials.
- Run "sh run.sh" command or start manually. (it's a shell script for everything)
- Go to localhost:8000 with your browser.
Base requirements
- PHP 7+
- MySQL
- NPM / Yarn
- Composer
Start manually composer install; npm install; php artisan migrate; php artisan db:seed; vendor/bin/phpunit --debug; npm run production; php artisan serve;
Just run server
php artisan serve
- Laravel 5.8 ✅
- OOP & Eloquent ORM ✅
- API Resources (Collections, Resource models) ✅
- Restful API ✅
- JWT & Bearer Auth ✅
- Modern Frontend (VueJS) ✅
- Shell Script for Installation ✅
- PHPUnit & Testcases ✅
- Security Checks (Throttle ✅, JWT ✅)
- PSR Standarts ✅
- Eloquent Relationships ✅
- Eloquent mutators ✅
- Migration Files ✅
- Factories ✅
- DB Seeds ✅
- Insomnia Rest Client Support ✅
- Cached queries with Redis ✅
- Queued calendar event jobs with Horizon 🚫
- Auto generated documentation with PHPDocs ✅
- Notification system 🚫
- Scheduled commands 🚫
If desired, I can make the missing parts.
Insomnia export is in the project root directory. (Insomnia.json) You can import your insomnia client.