A comprehensive fleet management solution for tracking vehicles, managing routes, and monitoring drivers in real-time.
- πΊοΈ Real-time vehicle tracking using Bing Maps
- π£οΈ Route creation and management
- π₯ Driver management system
- π Vehicle fleet management
β οΈ Real-time alerts and monitoring- π Dashboard analytics
- π Google OAuth authentication
- π Geofencing capabilities
graph TD
G[Firbase Data] -->|Sensor Data| A[Frontend - React]
A[Frontend - React] -->|API Requests| B[Backend - Node.js/Express]
B -->|Stores Data| C[(MongoDB)]
B -->|Authentication| D[Google OAuth]
B -->|Maps API| E[Bing Maps]
F[Vehicle GPS] -->|Location Updates| B
erDiagram
VEHICLE ||--o{ TRIP : has
DRIVER ||--o{ TRIP : drives
ROUTE ||--o{ TRIP : follows
USER ||--o{ VEHICLE : owns
USER ||--o{ ROUTE : manages
USER ||--o{ DRIVER : employs
VEHICLE {
string vehicleID
string userID
number max_load
array last_location
number last_location_date_time
}
ROUTE {
string userID
string name
number distance
number estimatedTime
array coords
}
DRIVER {
string userID
string name
string contact
}
-
Frontend:
- React.js
- React Router DOM
- Bing Maps API
- CSS3
-
Backend:
- Node.js
- Express.js
- MongoDB/Mongoose
- Passport.js (Google OAuth)
-
Clone the repository ```bash git clone ```
-
Install dependencies ```bash
cd Backend npm install
cd ../Frontend npm install ```
-
Environment Setup
Backend Environment (.env file in Backend directory)
MONGODB_URI=<your-mongodb-uri> MONGODB_DB_NAME=Securo GOOGLE_CLIENT_ID=<your-google-client-id> GOOGLE_CLIENT_SECRET=<your-google-client-secret> APP_URL=<your-app-url>
Frontend Environment (.env file in Frontend directory)
REACT_APP_API_URL=http://localhost:4000 REACT_APP_BINGMAP_API_KEY=<your-bing-maps-api-key>
-
Running the Project
Development Mode ```bash
cd Backend npm install npm run dev # Runs with nodemon for development
cd Frontend npm install npm start # Runs on http://localhost:3000 ```
Production Mode ```bash
cd Frontend npm run build
cd Backend npm start # Runs on port 4000 ```
Order of Operations
- Start MongoDB service on your machine
- Start the Backend server
- Start the Frontend development server
- Access the application at http://localhost:3000
Common Commands ```bash
npm install # Run in both Backend and Frontend directories
npm run dev # Backend npm start # Frontend
npm run build # Frontend npm start # Backend
npm test # Available for both Frontend and Backend ```
sequenceDiagram
participant User
participant Frontend
participant Backend
participant Database
participant Maps
User->>Frontend: Login with Google
Frontend->>Backend: Authentication Request
Backend->>User: OAuth Flow
User->>Frontend: Add New Route
Frontend->>Maps: Get Route Coordinates
Frontend->>Backend: Save Route
Backend->>Database: Store Route Data
User->>Frontend: Track Vehicle
Frontend->>Backend: Get Vehicle Location
Backend->>Database: Fetch Latest Position
Database->>Frontend: Return Location Data
Frontend->>Maps: Display Vehicle Position
-
File Structure:
/Frontend- React application files/Backend- Node.js/Express server files/Backend/models- Database schemas/Backend/routes- API routes/Backend/middleware- Custom middleware
-
Key Components:
Dashboard.js- Main tracking interfaceFleetManagement.js- Vehicle managementAddRoute.js- Route creationmonitorVehicles.js- Vehicle monitoring system
-
API Endpoints:
/auth/*- Authentication routes/routes/*- Route management/drivers/*- Driver management/vehicles/*- Vehicle management/trips/*- Trip management/simulation/*- Simulation endpoints
The system includes an automated monitoring service that:
- Checks vehicle positions every 10 seconds
- Generates alerts for any anomalies
- Tracks vehicle movements against defined routes
- Monitors geofence boundaries
- Fork the repository
- Create your feature branch (
git checkout -b feature/AmazingFeature) - Commit your changes (
git commit -m 'Add some AmazingFeature') - Push to the branch (
git push origin feature/AmazingFeature) - Open a Pull Request
This project is licensed under the MIT License - see the LICENSE file for details.