Assistance with Laravel 10 and React project

Job ID: 36957066

Budget: $30 – $250 USD

Laravel 10 & React
Use PHPUnit or Pest for Tests
- You must implement the solution using Laravel 10 Framework, MySQL and a Front-End framework (preferably React);
- Write unit tests using PHPUnit or Pest;
- Ensure your testing coverage is above 80%;
- Including Unit and Integration tests.
- Generate dummy data using model factories.
- Build the frontend components as per the task in the frontend section.
Backend
● Create a console command that generates a ticket with dummy data every minute. A ticket should have the following fields:
○ Subject
○ Content
○ User ID of the user who created the ticket
○ Status of the ticket (boolean) - Set to false by default to indicate that the ticket is
not processed.
○ Timestamps
● You may use the default migration for users as we only need the name and email of the user who submitted the ticket.
● Create another console command that processes a single ticket every five minutes. Tickets should be processed in chronological order. Changing the status value to true would be considered as processing of the ticket.
● Create the following api endpoints:
○ /tickets/open - Returns a paginated list of all unprocessed tickets i.e. all tickets with status set to false, with their parent user (only their name and email address shouldbe visible via this endpoint).
○ /tickets/closed - Returns a paginated list of all processed tickets i.e. all tickets with status set to true, with their parent user (only their name and email address should be visible via this endpoint).
○ /users/{email}/tickets - Returns a paginated list of all tickets that belong to the user with the corresponding email address.
○ /stats - Returns the following stats:
■ total number of tickets in the database;
■ total number of unprocessed tickets in the database;
■ Name and email of the user who submitted the highest number of tickets;
and
■ the time when the last processing of a ticket was done.
Please assume we are structuring the codebase for a larger project and eventually we may not pull all the data directly from the database.
Frontend
● Build a frontend view (preferably in react) which hits the tickets endpoint and displays it in a table with pagination
○ Allow a selection (I.e a button or link) to only display the open or closed tickets based on the selection
○ Implement pagination and set the pagination to only display 3 tickets at a time
○ Allow for a column to be clicked and route to the user tickets view
○ Ensure that when the console command is ran, the table updates live with the
new ticket. Tickets should be ordered in descending order (from most recent to
oldest)
a User Tickets view which hits the users/{email}/tickets endpoint and displays a
● Build
table with the tickets for the user with the provided email.
Related categories: PHP JavaScript MySQL Laravel React.js