API for Participant Registration: Endpoint to register participants with fields for name, email, skill level, and availability. Implement validation for input data. Store participant information in the database. API for Match Scheduling: Endpoint to create matches, automatically pairing participants based on skill level and availability. Each match should have a scheduled time and participants assigned. Ensure no participant is scheduled for overlapping matches.
Participant Registration Form: Create a form to submit participant details (name, email, skill level, availability). Implement frontend validation before sending data to the backend. Match Scheduling View: Display scheduled matches in a list or calendar view. Include participant names, skill levels, and match times. Implement a simple filter to view matches by skill level or participant.
Design a simple schema to support participant details and match scheduling. Include tables for participants, matches, and any necessary relationship tables. Ensure the schema supports querying for matches without performance issues. Evaluation Criteria:
Functionality: The application works as described without errors. Code Quality: Clean, readable, and well-structured code. Database Design: Efficient and normalized database schema. Problem Solving: Effective solutions for match scheduling logic and data validation. Best Practices: Use of Laravel and React.js best practices. Submission Instructions:
Provide a GitHub repository link with the complete project code. Include a README file with setup instructions and any assumptions made during development.
To Run this project in your localhost machine after cloning the repo Firstly you must have installed composer, NodeJs ,Xampp in your machine as dependencies
1-installing composer required files , open terminal on your project Folder and Run :
composer install
2- installing node-js required files
npm install
3- rename .env.example to .env
4- create Database called laravel-rest-api
5- Seeding Data , Run :
php artisan migrate:fresh --seed
6- Run server
php artisan serve
7- Run node auto build
npm run start
php 8.0.28 , laravel 9 , Reactjs 18, MysqlDB 7