A fleet management system designed to support the operational needs of our organization. The system handles multiple entities, including:
- Drivers
- 🚗 Vehicles
- 🗺️ Places
- 👶 Kids
...and more!
Before setting up the project, ensure you have the following tools installed:
To better understand how the system works, we recommend reviewing the documentation for the following key libraries/packages used in the project:
- Laravel Breeze (React): Laravel Breeze Docs
- React.js: React Documentation
- Leaflet.js (Map Library): Leaflet Documentation
- Material-UI (MUI): MUI Documentation
- OSRM Backend: OSRM Documentation
Follow these steps to set up the project locally:
-
Clone the Repository
Open a terminal and run:git clone https://github.com/t0m4s79/DREFleet.git cd DREFleet
-
Environment setup
- Add composer, nodejs and php to your system's environment variables.
- Copy the
.env.example
file to.env
- Fill in your database credentials in the newly created
.env
file. - Generate the Laravel application key with:
php artisan key:generate
-
Install Dependencies
Navigate to the Laravel directory and install backend and frontend dependencies:
cd laravel composer install npm install
-
Run Database Migrations
Apply the database migrations:
php artisan migrate
-
Start the Servers
If possible, to make things easier, open two terminals. One will run the backend server and the other one will run the frontend. Then, run the following commands:
- Backend
php artisan serve
- Frontend
npm run dev
- Backend
If you're on Windows and want to automate recurring tasks, such as scheduling database backups, check out this guide: Windows Task Scheduler Guide
For our project, we created a separate instance of the Open Source Routing Machine (OSRM) to calculate optimal routes for vehicles. If you want to set up your own OSRM server, follow the official OSRM backend guide on Github:
GitHub Repository: OSRM-backend
Below is the most up-to-date entity relationship diagram for this project:
Highlighting the key features of this fleet management system:
- Driver and Vehicle Management: Track and manage driver and vehicle information.
- Interactive Maps: Plan and optimize routes using Leaflet.js and OSRM.
- Dynamic DataTables: Present data with custom columns and filters using MUI DataGrid.
- Drag-and-Drop: Rearrange lists and orders interactively.