# rajeshmuddada123/ev-prediction architecture

> Architecture diagram of the GitHub repository rajeshmuddada123/ev-prediction, generated by GitDiagram from its file tree, README and a sample of source files (last updated 2026-11-14). It is an AI-made overview: check details against the source.

- Interactive diagram: https://gitdiagram.com/rajeshmuddada123/ev-prediction
- Repository: https://github.com/rajeshmuddada123/ev-prediction

## Overview

SMART EV is an anonymous-device EV dashboard for vehicle setup, range estimation, charger discovery and booking, charging-session tracking, solar-aware charging, weather, security, and history. Users enter through the React app; views use the API client to reach Spring REST services, which apply domain logic and persist data. The README documents the broader product capabilities, while sampled source confirms selected booking, station, session, solar, and frontend wiring. Some unsampled feature links are therefore shown only where documented.

Main entry points: [`frontend/src/App.jsx`](https://github.com/rajeshmuddada123/ev-prediction/blob/main/frontend/src/App.jsx) (Dashboard Shell), [`frontend/src/api/client.js`](https://github.com/rajeshmuddada123/ev-prediction/blob/main/frontend/src/api/client.js) (REST Client), [`backend/src/main/java/com/smartev/service/BookingService.java`](https://github.com/rajeshmuddada123/ev-prediction/blob/main/backend/src/main/java/com/smartev/service/BookingService.java) (Booking Logic), [`backend/src/main/java/com/smartev/controller/HistoryController.java`](https://github.com/rajeshmuddada123/ev-prediction/blob/main/backend/src/main/java/com/smartev/controller/HistoryController.java) (History Analytics API)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_frontend["Dashboard"]
  node_app["Dashboard Shell<br/>[App.jsx]"]
  node_api["REST Client<br/>[client.js]"]
  node_battery_view["Battery Setup<br/>[BatteryView.jsx]"]
  node_home_view["Home Overview<br/>[HomeView.jsx]"]
  node_booking_view["Booking Wizard<br/>[BookingView.jsx]"]
  node_stations_view["Station Finder<br/>[StationsView.jsx]"]
  node_range_view["Range View"]
  node_tracking_view["Live Tracking<br/>[TrackingView.jsx]"]
  node_solar_view["Solar Monitor<br/>[SolarView.jsx]"]
  node_weather_view["Weather View<br/>[WeatherView.jsx]"]
  node_security_view["Security View<br/>[SecurityView.jsx]"]
  node_history_view["History Analytics<br/>[HistoryView.jsx]"]
end

subgraph group_evops["EV Operations"]
  node_booking_service["Booking Logic"]
  node_station_service["Station Directory"]
  node_session_service["Charging Sessions"]
end

subgraph group_insights["Energy Insights"]
  node_range_service["Range Model"]
  node_solar_service["Solar Forecast<br/>[SolarService.java]"]
  node_weather_service["Weather Data"]
end

subgraph group_platform["Backend Platform"]
  node_security_service["Security Monitoring"]
  node_security_filter["Request Inspection"]
  node_notification_service["Notifications"]
  node_history_controller["History Analytics API"]
  node_booking_controller["Booking API"]
  node_station_controller["Station API"]
  node_session_controller["Session API"]
  node_station_store[("Station Records")]
  node_booking_store[("Booking Records")]
  node_session_store[("Session Records")]
  node_solar_store[("Solar Config Store")]
end

node_driver(("EV Driver"))
node_osm["OpenStreetMap"]
node_osrm["OSRM Routing"]
node_open_meteo["Open-Meteo"]

node_driver -->|"uses"| node_app
node_app -->|"renders"| node_home_view
node_app -->|"renders"| node_battery_view
node_app -->|"renders"| node_booking_view
node_app -->|"renders"| node_stations_view
node_app -->|"renders"| node_range_view
node_app -->|"renders"| node_tracking_view
node_app -->|"renders"| node_solar_view
node_app -->|"renders"| node_weather_view
node_app -->|"renders"| node_security_view
node_app -->|"renders"| node_history_view
node_booking_view -->|"requests"| node_api
node_range_view -->|"requests"| node_api
node_solar_view -->|"requests"| node_api
node_api -->|"posts bookings"| node_booking_controller
node_booking_controller -->|"delegates"| node_booking_service
node_booking_service -->|"looks up station"| node_station_store
node_booking_service -->|"persists booking"| node_booking_store
node_booking_service -->|"notifies"| node_notification_service
node_api -->|"requests stations"| node_station_controller
node_station_controller -->|"delegates"| node_station_service
node_station_service -->|"queries"| node_station_store
node_station_service -->|"fetches charger data"| node_osm
node_api -->|"fetches route"| node_osrm
node_api -->|"starts sessions"| node_session_controller
node_session_controller -->|"delegates"| node_session_service
node_session_service -->|"saves sessions"| node_session_store
node_session_service -->|"notifies"| node_notification_service
node_range_view -->|"requests prediction"| node_range_service
node_range_service -->|"uses station data"| node_station_service
node_solar_view -->|"requests forecast"| node_solar_service
node_solar_service -->|"reads config"| node_solar_store
node_solar_service -->|"uses weather"| node_weather_service
node_weather_service -->|"fetches telemetry"| node_open_meteo
node_security_view -->|"uses monitoring"| node_security_service
node_security_filter -.->|"inspects requests"| node_security_service
node_history_view -->|"requests analytics"| node_history_controller
node_history_controller -->|"reads bookings"| node_booking_store
node_history_controller -->|"reads sessions"| node_session_store
node_history_controller -->|"reads solar records"| node_solar_store

click node_app "https://github.com/rajeshmuddada123/ev-prediction/blob/main/frontend/src/App.jsx"
click node_api "https://github.com/rajeshmuddada123/ev-prediction/blob/main/frontend/src/api/client.js"
click node_battery_view "https://github.com/rajeshmuddada123/ev-prediction/blob/main/frontend/src/views/BatteryView.jsx"
click node_home_view "https://github.com/rajeshmuddada123/ev-prediction/blob/main/frontend/src/views/HomeView.jsx"
click node_booking_view "https://github.com/rajeshmuddada123/ev-prediction/blob/main/frontend/src/views/BookingView.jsx"
click node_stations_view "https://github.com/rajeshmuddada123/ev-prediction/blob/main/frontend/src/views/StationsView.jsx"
click node_range_view "https://github.com/rajeshmuddada123/ev-prediction/blob/main/frontend/src/views/RangePredictionView.jsx"
click node_tracking_view "https://github.com/rajeshmuddada123/ev-prediction/blob/main/frontend/src/views/TrackingView.jsx"
click node_solar_view "https://github.com/rajeshmuddada123/ev-prediction/blob/main/frontend/src/views/SolarView.jsx"
click node_weather_view "https://github.com/rajeshmuddada123/ev-prediction/blob/main/frontend/src/views/WeatherView.jsx"
click node_security_view "https://github.com/rajeshmuddada123/ev-prediction/blob/main/frontend/src/views/SecurityView.jsx"
click node_history_view "https://github.com/rajeshmuddada123/ev-prediction/blob/main/frontend/src/views/HistoryView.jsx"
click node_booking_service "https://github.com/rajeshmuddada123/ev-prediction/blob/main/backend/src/main/java/com/smartev/service/BookingService.java"
click node_station_service "https://github.com/rajeshmuddada123/ev-prediction/blob/main/backend/src/main/java/com/smartev/service/StationService.java"
click node_session_service "https://github.com/rajeshmuddada123/ev-prediction/blob/main/backend/src/main/java/com/smartev/service/ChargingSessionService.java"
click node_range_service "https://github.com/rajeshmuddada123/ev-prediction/blob/main/backend/src/main/java/com/smartev/service/RangePredictionService.java"
click node_solar_service "https://github.com/rajeshmuddada123/ev-prediction/blob/main/backend/src/main/java/com/smartev/service/SolarService.java"
click node_weather_service "https://github.com/rajeshmuddada123/ev-prediction/blob/main/backend/src/main/java/com/smartev/service/WeatherService.java"
click node_security_service "https://github.com/rajeshmuddada123/ev-prediction/blob/main/backend/src/main/java/com/smartev/service/SecurityMonitoringService.java"
click node_security_filter "https://github.com/rajeshmuddada123/ev-prediction/blob/main/backend/src/main/java/com/smartev/security/SecurityFilter.java"
click node_notification_service "https://github.com/rajeshmuddada123/ev-prediction/blob/main/backend/src/main/java/com/smartev/service/NotificationService.java"
click node_history_controller "https://github.com/rajeshmuddada123/ev-prediction/blob/main/backend/src/main/java/com/smartev/controller/HistoryController.java"
click node_booking_controller "https://github.com/rajeshmuddada123/ev-prediction/blob/main/backend/src/main/java/com/smartev/controller/BookingController.java"
click node_station_controller "https://github.com/rajeshmuddada123/ev-prediction/blob/main/backend/src/main/java/com/smartev/controller/StationController.java"
click node_session_controller "https://github.com/rajeshmuddada123/ev-prediction/blob/main/backend/src/main/java/com/smartev/controller/ChargingSessionController.java"
click node_station_store "https://github.com/rajeshmuddada123/ev-prediction/blob/main/backend/src/main/java/com/smartev/repository/ChargingStationRepository.java"
click node_booking_store "https://github.com/rajeshmuddada123/ev-prediction/blob/main/backend/src/main/java/com/smartev/repository/BookingRepository.java"
click node_session_store "https://github.com/rajeshmuddada123/ev-prediction/blob/main/backend/src/main/java/com/smartev/repository/ChargingSessionRepository.java"
click node_solar_store "https://github.com/rajeshmuddada123/ev-prediction/blob/main/backend/src/main/java/com/smartev/repository/SolarSystemConfigRepository.java"

classDef toneNeutral fill:#f8fafc,stroke:#334155,stroke-width:1.5px,color:#0f172a
classDef toneBlue fill:#dbeafe,stroke:#2563eb,stroke-width:1.5px,color:#172554
classDef toneAmber fill:#fef3c7,stroke:#d97706,stroke-width:1.5px,color:#78350f
classDef toneMint fill:#dcfce7,stroke:#16a34a,stroke-width:1.5px,color:#14532d
classDef toneRose fill:#ffe4e6,stroke:#e11d48,stroke-width:1.5px,color:#881337
classDef toneIndigo fill:#e0e7ff,stroke:#4f46e5,stroke-width:1.5px,color:#312e81
classDef toneTeal fill:#ccfbf1,stroke:#0f766e,stroke-width:1.5px,color:#134e4a
class node_app,node_api,node_battery_view,node_home_view,node_booking_view,node_stations_view,node_range_view,node_tracking_view,node_solar_view,node_weather_view,node_security_view,node_history_view toneBlue
class node_booking_service,node_station_service,node_session_service toneAmber
class node_range_service,node_solar_service,node_weather_service toneMint
class node_security_service,node_security_filter,node_notification_service,node_history_controller,node_booking_controller,node_station_controller,node_session_controller,node_station_store,node_booking_store,node_session_store,node_solar_store toneRose
class node_driver,node_osm,node_osrm,node_open_meteo toneIndigo
```

## Components

### Dashboard

- [Dashboard Shell](https://github.com/rajeshmuddada123/ev-prediction/blob/main/frontend/src/App.jsx): `frontend/src/App.jsx`
- [REST Client](https://github.com/rajeshmuddada123/ev-prediction/blob/main/frontend/src/api/client.js): `frontend/src/api/client.js`
- [Battery Setup](https://github.com/rajeshmuddada123/ev-prediction/blob/main/frontend/src/views/BatteryView.jsx): `frontend/src/views/BatteryView.jsx`
- [Home Overview](https://github.com/rajeshmuddada123/ev-prediction/blob/main/frontend/src/views/HomeView.jsx): `frontend/src/views/HomeView.jsx`
- [Booking Wizard](https://github.com/rajeshmuddada123/ev-prediction/blob/main/frontend/src/views/BookingView.jsx): `frontend/src/views/BookingView.jsx`
- [Station Finder](https://github.com/rajeshmuddada123/ev-prediction/blob/main/frontend/src/views/StationsView.jsx): `frontend/src/views/StationsView.jsx`
- [Range View](https://github.com/rajeshmuddada123/ev-prediction/blob/main/frontend/src/views/RangePredictionView.jsx): `frontend/src/views/RangePredictionView.jsx`
- [Live Tracking](https://github.com/rajeshmuddada123/ev-prediction/blob/main/frontend/src/views/TrackingView.jsx): `frontend/src/views/TrackingView.jsx`
- [Solar Monitor](https://github.com/rajeshmuddada123/ev-prediction/blob/main/frontend/src/views/SolarView.jsx): `frontend/src/views/SolarView.jsx`
- [Weather View](https://github.com/rajeshmuddada123/ev-prediction/blob/main/frontend/src/views/WeatherView.jsx): `frontend/src/views/WeatherView.jsx`
- [Security View](https://github.com/rajeshmuddada123/ev-prediction/blob/main/frontend/src/views/SecurityView.jsx): `frontend/src/views/SecurityView.jsx`
- [History Analytics](https://github.com/rajeshmuddada123/ev-prediction/blob/main/frontend/src/views/HistoryView.jsx): `frontend/src/views/HistoryView.jsx`

### EV Operations

- [Booking Logic](https://github.com/rajeshmuddada123/ev-prediction/blob/main/backend/src/main/java/com/smartev/service/BookingService.java): `backend/src/main/java/com/smartev/service/BookingService.java`
- [Station Directory](https://github.com/rajeshmuddada123/ev-prediction/blob/main/backend/src/main/java/com/smartev/service/StationService.java): `backend/src/main/java/com/smartev/service/StationService.java`
- [Charging Sessions](https://github.com/rajeshmuddada123/ev-prediction/blob/main/backend/src/main/java/com/smartev/service/ChargingSessionService.java): `backend/src/main/java/com/smartev/service/ChargingSessionService.java`

### Energy Insights

- [Range Model](https://github.com/rajeshmuddada123/ev-prediction/blob/main/backend/src/main/java/com/smartev/service/RangePredictionService.java): `backend/src/main/java/com/smartev/service/RangePredictionService.java`
- [Solar Forecast](https://github.com/rajeshmuddada123/ev-prediction/blob/main/backend/src/main/java/com/smartev/service/SolarService.java): `backend/src/main/java/com/smartev/service/SolarService.java`
- [Weather Data](https://github.com/rajeshmuddada123/ev-prediction/blob/main/backend/src/main/java/com/smartev/service/WeatherService.java): `backend/src/main/java/com/smartev/service/WeatherService.java`

### Backend Platform

- [Security Monitoring](https://github.com/rajeshmuddada123/ev-prediction/blob/main/backend/src/main/java/com/smartev/service/SecurityMonitoringService.java): `backend/src/main/java/com/smartev/service/SecurityMonitoringService.java`
- [Request Inspection](https://github.com/rajeshmuddada123/ev-prediction/blob/main/backend/src/main/java/com/smartev/security/SecurityFilter.java): `backend/src/main/java/com/smartev/security/SecurityFilter.java`
- [Notifications](https://github.com/rajeshmuddada123/ev-prediction/blob/main/backend/src/main/java/com/smartev/service/NotificationService.java): `backend/src/main/java/com/smartev/service/NotificationService.java`
- [History Analytics API](https://github.com/rajeshmuddada123/ev-prediction/blob/main/backend/src/main/java/com/smartev/controller/HistoryController.java): `backend/src/main/java/com/smartev/controller/HistoryController.java`
- [Booking API](https://github.com/rajeshmuddada123/ev-prediction/blob/main/backend/src/main/java/com/smartev/controller/BookingController.java): `backend/src/main/java/com/smartev/controller/BookingController.java`
- [Station API](https://github.com/rajeshmuddada123/ev-prediction/blob/main/backend/src/main/java/com/smartev/controller/StationController.java): `backend/src/main/java/com/smartev/controller/StationController.java`
- [Session API](https://github.com/rajeshmuddada123/ev-prediction/blob/main/backend/src/main/java/com/smartev/controller/ChargingSessionController.java): `backend/src/main/java/com/smartev/controller/ChargingSessionController.java`
- [Station Records](https://github.com/rajeshmuddada123/ev-prediction/blob/main/backend/src/main/java/com/smartev/repository/ChargingStationRepository.java): `backend/src/main/java/com/smartev/repository/ChargingStationRepository.java`
- [Booking Records](https://github.com/rajeshmuddada123/ev-prediction/blob/main/backend/src/main/java/com/smartev/repository/BookingRepository.java): `backend/src/main/java/com/smartev/repository/BookingRepository.java`
- [Session Records](https://github.com/rajeshmuddada123/ev-prediction/blob/main/backend/src/main/java/com/smartev/repository/ChargingSessionRepository.java): `backend/src/main/java/com/smartev/repository/ChargingSessionRepository.java`
- [Solar Config Store](https://github.com/rajeshmuddada123/ev-prediction/blob/main/backend/src/main/java/com/smartev/repository/SolarSystemConfigRepository.java): `backend/src/main/java/com/smartev/repository/SolarSystemConfigRepository.java`

### Other components

- **EV Driver**
- **OpenStreetMap**
- **OSRM Routing**
- **Open-Meteo**

## Connections

- EV Driver → Dashboard Shell: uses (evidence: `README.md`)
- Dashboard Shell → Home Overview: renders (evidence: `frontend/src/App.jsx`)
- Dashboard Shell → Battery Setup: renders (evidence: `frontend/src/App.jsx`)
- Dashboard Shell → Booking Wizard: renders (evidence: `frontend/src/App.jsx`)
- Dashboard Shell → Station Finder: renders (evidence: `frontend/src/App.jsx`)
- Dashboard Shell → Range View: renders (evidence: `frontend/src/App.jsx`)
- Dashboard Shell → Live Tracking: renders (evidence: `README.md`)
- Dashboard Shell → Solar Monitor: renders (evidence: `frontend/src/App.jsx`)
- Dashboard Shell → Weather View: renders (evidence: `README.md`)
- Dashboard Shell → Security View: renders (evidence: `frontend/src/App.jsx`)
- Dashboard Shell → History Analytics: renders (evidence: `frontend/src/App.jsx`)
- Booking Wizard → REST Client: requests (evidence: `frontend/src/views/BookingView.jsx`)
- Range View → REST Client: requests (evidence: `frontend/src/views/RangePredictionView.jsx`)
- Solar Monitor → REST Client: requests (evidence: `frontend/src/views/SolarView.jsx`)
- REST Client → Booking API: posts bookings (evidence: `frontend/src/api/client.js`)
- Booking API → Booking Logic: delegates (evidence: `backend/src/main/java/com/smartev/controller/BookingController.java`)
- Booking Logic → Station Records: looks up station (evidence: `backend/src/main/java/com/smartev/service/BookingService.java`)
- Booking Logic → Booking Records: persists booking (evidence: `backend/src/main/java/com/smartev/service/BookingService.java`)
- Booking Logic → Notifications: notifies (evidence: `backend/src/main/java/com/smartev/service/BookingService.java`)
- REST Client → Station API: requests stations (evidence: `frontend/src/api/client.js`)
- Station API → Station Directory: delegates (evidence: `backend/src/main/java/com/smartev/controller/StationController.java`)
- Station Directory → Station Records: queries (evidence: `backend/src/main/java/com/smartev/service/StationService.java`)
- Station Directory → OpenStreetMap: fetches charger data (evidence: `backend/src/main/java/com/smartev/service/StationService.java`)
- REST Client → OSRM Routing: fetches route (evidence: `frontend/src/api/client.js`)
- REST Client → Session API: starts sessions (evidence: `frontend/src/api/client.js`)
- Session API → Charging Sessions: delegates (evidence: `backend/src/main/java/com/smartev/controller/ChargingSessionController.java`)
- Charging Sessions → Session Records: saves sessions (evidence: `backend/src/main/java/com/smartev/service/ChargingSessionService.java`)
- Charging Sessions → Notifications: notifies (evidence: `backend/src/main/java/com/smartev/service/ChargingSessionService.java`)
- Range View → Range Model: requests prediction (evidence: `README.md`)
- Range Model → Station Directory: uses station data (evidence: `backend/src/main/java/com/smartev/service/RangePredictionService.java`)
- Solar Monitor → Solar Forecast: requests forecast (evidence: `README.md`)
- Solar Forecast → Solar Config Store: reads config (evidence: `backend/src/main/java/com/smartev/service/SolarService.java`)
- Solar Forecast → Weather Data: uses weather (evidence: `backend/src/main/java/com/smartev/service/SolarService.java`)
- Weather Data → Open-Meteo: fetches telemetry (evidence: `README.md`)
- Security View → Security Monitoring: uses monitoring (evidence: `README.md`)
- Request Inspection → Security Monitoring: inspects requests
- History Analytics → History Analytics API: requests analytics (evidence: `README.md`)
- History Analytics API → Booking Records: reads bookings (evidence: `backend/src/main/java/com/smartev/controller/HistoryController.java`)
- History Analytics API → Session Records: reads sessions (evidence: `backend/src/main/java/com/smartev/controller/HistoryController.java`)
- History Analytics API → Solar Config Store: reads solar records (evidence: `backend/src/main/java/com/smartev/controller/HistoryController.java`)
