UniCharge is a comprehensive Smart Parking & EV Charging Management Platform built with Flutter. It streamlines the process of finding, booking, and managing parking spots and EV charging stations.
- Smart Booking System: Reserve parking spots and EV charging stations in advance.
- Secure QR Verification:
- User: Generates a secure, time-limited QR token upon booking.
- Admin: Built-in QR scanner to verify bookings and activate sessions.
- Real-time Map Integration: Locate stations easily using Google Maps.
- Interactive UI: Smooth animations and transitions using Rive.
- Role-Based Access: distinct flows for Users and Admins.
Use the following credentials to explore the app:
- Email:
demouser@gmail.com - Password:
demouser123
- Framework: Flutter (SDK >=3.0.0 <4.0.0)
- State Management: Riverpod (w/ Code Generation)
- Backend & Auth: Firebase (Auth, Firestore)
- Maps: Google Maps Flutter
- Scanning:
qr_flutter&mobile_scanner - Navigation:
go_router - Network:
dio
Follow these steps to set up the project locally.
- Flutter SDK: Ensure you have Flutter installed (
flutter doctor). - Firebase Project: You need a Firebase project configured for this app.
-
Clone the repository:
git clone https://github.com/your-username/unicharge.git cd unicharge -
Install dependencies:
flutter pub get
-
Environment Configuration:
- Create a
.envfile in the root directory (refer toenv.exampleif available). - Add necessary API keys (Google Maps, etc.).
- Create a
-
Run Code Generation: This project uses
freezedandriverpod_generator. Run the builder to generate necessary files:dart run build_runner build -d
-
Run the App:
flutter run
To access the Admin features (like the QR Scanner):
- Navigate to the Profile screen.
- Go to the Admin Access section.
- Select Scan Booking QR Code.


