The Ticketing System is based on Laravel 8. For deployment, system requires Docker
and Docker Compose
installed. Once the Docker and Docker compose are installed, run following commands to setup system locally.
docker-compose up -d
- Run at project root to build docker images required for system using docker-compose.yml.docker exec -u 0 app sh app-setup.sh
- Run at project root to build the project. THis command will download php dependencies, start laravel, setup database migrations and seeders. This command will run the tests and generate HTML test reports for the project.docker exec -u 0 app service cron start
- Run at project root to start CRON job within container. CRON frequency is defined with DOCKERFILE so with this command we only need to start CRON service.
Project contains following elements implemented:
- A schedule containing
create
andprocess
Artisan commands running every 1 minute and 5 minutes respectively. artisan app:tickets -A create
command to create tickets via CRONartisan app:tickets -A process
command to process ticket via CRONapi/tickets
endpoint for paginated list of all ticketsapi/tickets/processed
endpoint for paginated list of all processed ticketsapi/tickets/unprocessed
endpoint for paginated list of all unprocessed ticketsapi/tickets/from/[email]
endpoint for paginated list of all tickets by user emailapi/tickets/stats
endpoint for giving general stats about tickets in database including- Total number of tickets
- Total number of processed tickets
- Total number of unprocessed tickets
- User email with highest number of tickets
- User email with lowest number of tickets
- Time of last processed ticket
The Laravel framework is open-sourced software licensed under the MIT license.