A comprehensive full-stack application for managing electric vehicle fleets, built with Spring Boot 3.5.x and React 19.x.
- EV Management: CRUD operations for electric vehicles with battery monitoring
- Charger Management: Track charging station status and availability
- Driver Management: Manage driver profiles and assignments
- Real-time Telemetry: IoT data ingestion for vehicle status updates
- Fleet Dashboard: Live monitoring with status cards and analytics
- Fleet Health Overview: Real-time status of all vehicles and chargers
- At-Risk Vehicle Alerts: Low battery vehicles with upcoming trips
- Today's Trip Schedule: Current day trip planning and status
- Battery Monitoring: Visual battery level indicators with color coding
- Location Tracking: GPS coordinates for vehicle positioning
- Java 21 with modern Spring features
- PostgreSQL database with JPA/Hibernate
- REST APIs for all CRUD operations
- Telemetry ingestion endpoint for IoT data
- MapStruct for entity-DTO mapping
- Comprehensive testing with JUnit 5 and MockMVC
- Modern React with hooks and functional components
- TypeScript for type safety
- Tailwind CSS for styling
- React Router for navigation
- Axios for API communication
- Lucide React for icons
- Responsive design for mobile and desktop
- Docker Compose for local development
- PostgreSQL 15 database
- Nginx reverse proxy for frontend
- Telemetry simulator for realistic IoT data
- Docker and Docker Compose
- Java 21 (for local development)
- Node.js 18+ (for local development)
-
Clone the repository
git clone <repository-url> cd EVision-Fleet-Console
-
Start all services
docker-compose up -d
-
Access the application
- Frontend: http://localhost:3000
- Backend API: http://localhost:8080
- Database: localhost:5432
-
Initialize sample data (optional) The telemetry simulator will automatically create sample EVs and start sending data.
cd backend
./mvnw spring-boot:runcd frontend
npm install
npm startcd telemetry-simulator
npm install
npm startGET /api/evs- List all EVsGET /api/evs/{id}- Get EV by IDPOST /api/evs- Create new EVPUT /api/evs/{id}- Update EVDELETE /api/evs/{id}- Delete EV
GET /api/chargers- List all chargersPOST /api/chargers- Create new chargerPUT /api/chargers/{id}- Update chargerDELETE /api/chargers/{id}- Delete charger
GET /api/drivers- List all driversPOST /api/drivers- Create new driverPUT /api/drivers/{id}- Update driverDELETE /api/drivers/{id}- Delete driver
POST /api/telemetry- Submit telemetry data
GET /api/dashboard/summary- Fleet summary statisticsGET /api/dashboard/at-risk- At-risk vehiclesGET /api/dashboard/trips/today- Today's trips
SPRING_DATASOURCE_URL- Database URLSPRING_DATASOURCE_USERNAME- Database usernameSPRING_DATASOURCE_PASSWORD- Database password
REACT_APP_API_URL- Backend API URL
API_URL- Backend API URLINTERVAL- Telemetry send interval (ms)EV_COUNT- Number of EVs to simulate
cd backend
./mvnw testcd backend
./mvnw test -Dtest=*IntegrationTestcd frontend
npm testEVision-Fleet-Console/
βββ backend/ # Spring Boot application
β βββ src/main/java/
β β βββ com/evops/fleetconsole/
β β βββ controller/ # REST controllers
β β βββ service/ # Business logic
β β βββ entity/ # JPA entities
β β βββ repository/ # Data repositories
β β βββ dto/ # Data transfer objects
β β βββ mapper/ # MapStruct mappers
β βββ src/test/ # Unit and integration tests
βββ frontend/ # React application
β βββ src/
β β βββ components/ # Reusable components
β β βββ pages/ # Page components
β β βββ api/ # API client
β β βββ types/ # TypeScript types
β βββ public/
βββ telemetry-simulator/ # IoT data simulator
βββ docker-compose.yml # Container orchestration
{
"evId": "uuid",
"batteryPercent": 85,
"state": "DRIVING",
"odometerKm": 12543.7,
"latitude": 12.9715987,
"longitude": 77.5945627,
"timestamp": "2025-12-10T10:23:00Z"
}β Complete CRUD Operations for EVs, Chargers, and Drivers β Real-time Telemetry Ingestion with automatic EV status updates β Interactive Dashboard with live fleet monitoring β At-risk Vehicle Detection for low battery alerts β Responsive UI with modern design β Docker Containerization for easy deployment β Comprehensive Testing with unit and integration tests β Realistic IoT Simulation with intelligent state transitions β Database Schema optimized for fleet operations β RESTful API Design following best practices
- Backend: Java 21, Spring Boot 3.5.x, Spring Data JPA, PostgreSQL
- Frontend: React 19.x, TypeScript 5.7.x, Tailwind CSS, Vite
- Testing: JUnit 5, MockMVC, Jest, React Testing Library
- DevOps: Docker, Docker Compose, Nginx
- Tools: MapStruct, Axios, Lucide React, React Router
- Real-time WebSocket updates for live dashboard
- Advanced analytics and reporting
- Route optimization for trip planning
- Mobile app for drivers
- Integration with real IoT devices
- Machine learning for predictive maintenance
- Multi-tenant support for fleet operators
- Fork the repository
- Create a feature branch
- Commit your changes
- Push to the branch
- Create a Pull Request
This project is licensed under the MIT License - see the LICENSE file for details.