How almousleckdev/zellacharging works
Zella is an EV-charging customer platform: mobile customers discover stations, fund a wallet, and start or stop charging; administrators operate the platform through a Next.js console and backend. The Spring backend also supports partner session feeds, coupons, and notifications. README documents the principal integrations and storage; sampled service excerpts show charging orchestration, station lookup, withdrawal review, and session feeds. Some subsystems are represented by their exact enclosing directories because their implementations were not sampled; links to them rely on README-level architecture descriptions.
Main entry points: Application.java Customer Backend · SessionService.java Charging Sessions · CatalogService.java Station Catalog · wallet Wallet and Ledger
Components 20
Customer and Admin Clients
- Flutter App
mobile - Admin Console
dashboard
Accounts and Notifications
- Accounts
backend/src/main/java/com/evcharge/customer/account - Notifications
backend/src/main/java/com/evcharge/customer/notification
Station and Charging
- Station Catalog
backend/src/main/java/com/evcharge/customer/catalog/application/CatalogService.java - Charging Sessions
backend/src/main/java/com/evcharge/customer/charging/application/SessionService.java - Session Quotes
backend/src/main/java/com/evcharge/customer/charging/application/SessionQuoteService.java
Wallet and Payments
- Wallet and Ledger
backend/src/main/java/com/evcharge/customer/wallet - Withdrawal Review
backend/src/main/java/com/evcharge/customer/wallet/application/WithdrawalReviewService.java - Coupons
backend/src/main/java/com/evcharge/customer/coupon
Operations and Integrations
- Customer Backend
backend/src/main/java/com/evcharge/customer/Application.java - Partner Feeds
backend/src/main/java/com/evcharge/customer/partner/application/SessionFeedService.java - Admin Operations
backend/src/main/java/com/evcharge/customer/admin - PostgreSQL
- PVit Payments
- OCPP Platform
- Firebase Messaging
- SMTP
Other components
- Customer
- Admin
Connections 26
- Customer → Flutter App: uses
README.md - Flutter App → Customer Backend: calls API
README.md - Admin → Admin Console: uses
README.md - Admin Console → Customer Backend: BFF requests
README.md - Customer Backend → Accounts: serves
- Customer Backend → Station Catalog: serves
- Customer Backend → Charging Sessions: serves
- Customer Backend → Wallet and Ledger: serves
- Customer Backend → Notifications: serves
- Customer Backend → Admin Operations: serves
- Customer Backend → Partner Feeds: serves
- Customer Backend → Coupons: serves
- Station Catalog → OCPP Platform: station data
- Charging Sessions → OCPP Platform: charge commands
README.md - Charging Sessions → Wallet and Ledger: reserves funds
backend/src/main/java/com/evcharge/customer/charging/application/SessionService.java - Session Quotes → Wallet and Ledger: checks balance
backend/src/main/java/com/evcharge/customer/charging/application/SessionQuoteService.java - Session Quotes → Station Catalog: validates connector
backend/src/main/java/com/evcharge/customer/charging/application/SessionQuoteService.java - Withdrawal Review → PVit Payments: payout status
- Wallet and Ledger → PVit Payments: top-up payments
README.md - Notifications → Firebase Messaging: sends push
README.md - Accounts → SMTP: sends codes
README.md - Customer Backend → PostgreSQL: persists data
README.md - Admin Operations → Charging Sessions: queries sessions
backend/src/main/java/com/evcharge/customer/admin/application/AdminSessionService.java - Partner Feeds → Charging Sessions: reads charge feed
backend/src/main/java/com/evcharge/customer/partner/application/SessionFeedService.java - Station Catalog → Charging Sessions: reads occupancy
backend/src/main/java/com/evcharge/customer/catalog/application/CatalogService.java - Admin Operations → Withdrawal Review: reviews withdrawals