How sriniket-d/smart-ev-charging-reservation works
Smart EV Charging Station Reservation is a Next.js application for customer vehicle and charging-reservation workflows, with administrator station management and activity auditing. The main path is account authentication, loading owned EVs and available charging options, creating or cancelling reservations, and recording selected events. MySQL owns relational booking and account data; MongoDB stores activity documents. The README documents additional payment, locking, validation, and admin capabilities. Some UI-to-route wiring and unsampled routes are not shown, so those links are omitted or marked unverified.
Main entry points: page.tsx Main screen · db.ts MySQL access · server-auth.ts Account authorization · route.ts Reservations
Components 21
Web experience
- Main screen
app/page.tsx - Login screen
app/login/page.tsx - Reservations screen
app/reservations/page.tsx
API workflows
- EV management
app/api/evs/route.ts - Booking options
app/api/booking-options/route.ts - Reservations
app/api/reservations/route.ts - Station listings
app/api/stations/route.ts - Station administration
app/api/admin/stations/route.ts - Activity retrieval
app/api/activity-logs/route.ts
Identity
- Auth routes
app/api/auth/login/route.ts - Registration
app/api/auth/register/route.ts - Session check
app/api/auth/session/route.ts - Sign out
app/api/auth/logout/route.ts - Session tokens
lib/auth.ts - Account authorization
lib/server-auth.ts
Data stores
- MySQL access
lib/db.ts - Relational database
db/schema.sql - MongoDB access
lib/mongodb.ts - Activity documents
lib/mongodb.ts
Other components
- Customer
- Administrator
Connections 34
- Customer → Login screen: signs in
README.md - Customer → Main screen: uses
README.md - Administrator → Main screen: uses
- Login screen → Auth routes: submits credentials
- Main screen → EV management: manages EVs
README.md - Main screen → Booking options: loads options
README.md - Main screen → Reservations: books or cancels
README.md - Main screen → Station listings: views stations
README.md - Main screen → Station administration: manages stations
README.md - Main screen → Activity retrieval: views activity
README.md - Reservations screen → Reservations: views history
README.md - Auth routes → MySQL access: reads account
app/api/auth/login/route.ts - Auth routes → Session tokens: creates session
app/api/auth/login/route.ts - Auth routes → MongoDB access: logs login
app/api/auth/login/route.ts - Registration → MySQL access: creates account
app/api/auth/register/route.ts - Session check → Account authorization: checks account
lib/server-auth.ts - Sign out → Customer: clears session
- Account authorization → Session tokens: verifies token
lib/server-auth.ts - Account authorization → MySQL access: checks role
lib/server-auth.ts - EV management → Account authorization: authenticates
app/api/evs/route.ts - EV management → MySQL access: reads and writes
app/api/evs/route.ts - Booking options → Account authorization: authenticates
app/api/booking-options/route.ts - Booking options → MySQL access: reads options
app/api/booking-options/route.ts - Reservations → Account authorization: authenticates
app/api/reservations/route.ts - Reservations → MySQL access: reads and writes
app/api/reservations/route.ts - Reservations → MongoDB access: logs events
app/api/reservations/route.ts - Station listings → MySQL access: reads summaries
app/api/stations/route.ts - Station administration → Account authorization: checks admin
app/api/admin/stations/route.ts - Station administration → MySQL access: manages stations
app/api/admin/stations/route.ts - Station administration → MongoDB access: logs changes
app/api/admin/stations/route.ts - Activity retrieval → Account authorization: authenticates
app/api/activity-logs/route.ts - Activity retrieval → MongoDB access: queries events
app/api/activity-logs/route.ts - MySQL access → Relational database: queries
- MongoDB access → Activity documents: reads and writes
lib/mongodb.ts