EcoRide is a Flutter-based mobile dashboard and carpooling interface designed for the University of Malaya campus community. It enables students and staff to coordinate rides, track their environmental impact, and build a verified carpool network.
This repository serves as the frontend implementation of the EcoRide platform, featuring a clean, responsive, and tailored user interface with Material Design 3 and interactive charts.
Note: This is the frontend UI implementation. Backend services and database integrations are mocked or to be connected.
- Secure Community Authentication: Role-based login and registration (Student vs. Staff) verified through the University domain.
- Dynamic Dashboard: Activity statistics using interactive charts (
fl_chart). - Driver & Passenger Flows: Dedicated pages for offering rides and finding rides.
- Profile Management: User profile customization and ride history tracking.
- Real-Time Password Strength: Custom security meter during registration.
- Modern UI/UX: Built with custom theming, engaging micro-interactions, and responsive layout scaling.
- Framework: Flutter (SDK ^3.10.0)
- Language: Dart
- UI & Visualization:
fl_chart,cupertino_icons, Material Design 3 - Utilities:
intl(date/time formatting),awesome_snackbar_content
lib/
├── main.dart # App entry point, theming, and Authentication UI
├── homepage.dart # Main Dashboard view with statistics and charts
├── passenger_page.dart # Interface for users looking for rides
├── driver_page.dart # Interface for users offering rides
└── profile_page.dart # User profile and account settings
- Flutter SDK (^3.10.0 or higher)
- A preferred IDE (VS Code, Android Studio, IntelliJ)
-
Clone the repository
git clone https://github.com/yourusername/EcoRide.git cd EcoRide -
Fetch dependencies
flutter pub get
-
Run the app
flutter run
This project includes standard Flutter widget test scaffolding. Once backend integration is complete, tests can be run via:
flutter test(Add screenshots of your application here once published - e.g., Login Screen, Dashboard, Ride Booking)
- Backend Integration: Currently relies on mocked API delays and logic. Needs connection to a live backend (e.g., Firebase, Node.js + PostgreSQL).
- State Management: As features grow, a dedicated state management solution (like Provider, Riverpod, or BLoC) should be adopted instead of relying solely on
setState. - Maps API: Route generation requires Google Maps API or Mapbox integration.
Developed for the Universiti Malaya community. -Jason Xu Jiachen
This project is open-source and available under the terms of the MIT License.