✅ JWT Authentication: Secure login & token-based authentication
✅ Protected API Routes: Auth middleware restricts access to authenticated users
✅ Role & Permission Management: Implemented using Laravel Spatie with permission-based route protection
✅ Task & Employee APIs: Complete CRUD functionality for managing tasks and employees
✅ Data Filtering & Sorting: APIs for searching, filtering, and sorting table data
✅ Analytics APIs: APIs for calculating task progress, employee performance, and workload distribution with support for time-based parameters (month, date, year)
✅ Optimized for Charts: Provides analytical data formatted for frontend visualizations
Follow these steps to set up the project on your local machine:
Ensure you have the following installed on your machine:
- PHP (version 8.1 or higher)
- Composer
- Node.js (version 16 or higher) and npm
- MySQL or any other database server supported by Laravel
- Git
- A compatible web server (e.g., Apache or Nginx)
- Open a terminal and navigate to the directory where you want to clone the project.
- Run the following command:
- Navigate to the project directory:
Install PHP dependencies::
- Copy the .env.example file to create your .env file:
- Open the .env file in a text editor and update the following values:
APP_NAME=YourAppName
APP_URL=http://localhost
DB_CONNECTION=mysql
DB_HOST=127.0.0.1
DB_PORT=3306
DB_DATABASE=your_database_name
DB_USERNAME=your_database_username
DB_PASSWORD=your_database_password
- Create a new database in MySQL under your_database_name
- Run the migrations and seed the database:
This will:
- Create all necessary database tables.
- Seed the database with an admin and employee user.
Run the following command to generate a unique application key:
Since we're using JWT for authentication, generate a secret key:
Start the Laravel development server:
The application will be accessible at http://localhost:8000 by default.