The objective of this test is to assess the ability to implement a Laravel application with user roles, event management, and scheduling constraints while leveraging Laravel Material dashboard for the admin panel and React for the frontend.
- Navigate in your Laravel API project folder:
cd your-laravel-json-api-project - Install project dependencies:
composer install - Create a new .env file:
cp .env.example .env - Add your own database credentials in the .env file in DB_DATABASE, DB_USERNAME, DB_PASSWORD
- Create users table:
php artisan migrate --seed - Generate application key:
php artisan key:generate - Install Laravel Passport:
php artisan passport:installand set in the .env file the CLIENT_ID and CLIENT_SECRET that you receive - Add your own mailtrap.io credentials in MAIL_USERNAME and MAIL_PASSWORD in the .env file
- Set up your api for the project
- Download and Install NodeJs LTS version from NodeJs Official Page.
- Navigate to the root ./ directory of the product and run
yarn installornpm installto install our local dependencies. - Add in your projeact an .env file with the variables
REACT_APP_URL=your-react-projectREACT_APP_API_URL=the-path-of-the-apiREACT_APP_IS_DEMO=falseif you don't want any restrications and true in case you want to add restrictions
- Admin: Can view all events (draft and published).
- User: Can view only published events.
Each event has the following attributes:
- Name
- Date & Time
- Duration
- Location
- Capacity
- Waitlist Capacity
- Live/Draft Status
- User registration functionality.

- Users can join one or more events.

- Confirmation email upon successful event registration.

- Reminder notification on the day of the event.
- Users cannot join the same event twice.

- Users cannot join overlapping events on the same day.

- Capacity handling using middleware (cannot join full events).

- Waitlist functionality when an event is full.

- Admin sees all events (draft and published).

- Users see only published events in a calendar view.

- Events the user has joined are highlighted in green background.

- For any issues, please reach out via mostefa.boudjema.dev@gmail.com.


