A modern Android application for electric vehicle charging station booking system, built with native Android development using Kotlin, Jetpack Compose and Material Design 3.
- Station Discovery: Browse and search for nearby EV charging stations
- Real-time Booking: Book charging slots with real-time availability
- QR Code Integration: Scan QR codes for quick booking access
- Booking Management: View, update, and cancel your reservations
- User Profiles: Manage personal information and vehicle details
- Responsive UI: Modern Material Design 3 interface with animations
- Operator Dashboard: Real-time monitoring of station bookings and availability
- Booking Management: View and manage station bookings
- QR Code Scanning: Scan customer booking QR codes for booking confirmation
- Analytics: Track station usage and booking statistics
- Language: Kotlin
- UI Framework: Jetpack Compose
- Design System: Material Design 3
- Architecture: MVVM (Model-View-ViewModel)
- Navigation: Compose Navigation
- State Management: StateFlow, Compose
- Local Storage: SQLite
- Networking: Retrofit, OkHttp
- Camera: CameraX (for QR code scanning)
- QR Code: ML Kit Barcode Scanning
The app follows MVVM architecture pattern with:
- UI Layer: Composable functions with ViewModels
- Domain Layer: Use cases and business logic
- Data Layer: Repositories, API services, and local database
- Models: Data classes for API responses and local entities
- Android Studio
- Android SDK Tools
- Kotlin 1.9+
- JDK 11+
-
Clone the repository
git clone https://github.com/y4-systems/ev-station-booking-system-android.git cd ev-station-booking-system-android -
Open in Android Studio
- Open Android Studio
- Select "Open an existing project"
- Navigate to the project directory
-
Configure Backend URL
BACKEND_URL=https://your-backend-api-url.com -
Build and Run
- Sync the project with Gradle files
- Run the app on an emulator or physical device
The app connects to a REST API backend. Configure the API endpoint.
BACKEND_URL=https://your-api-endpoint.comThe app uses Room database for local data storage:
- User authentication tokens
- Cached booking data
- Station information
- Offline support
The app integrates with the following API endpoints:
- Authentication:
/api/auth/login,/api/auth/register - Stations:
/api/stations,/api/stations/{id} - Bookings:
/api/bookings,/api/bookings/{id} - Operator:
/api/operator/dashboard,/api/operator/bookings
- Home Screen: Dashboard with featured stations and quick actions
- Station List: Browse and filter charging stations
- Station Detail: View station information and availability
- Booking Screen: Manage personal bookings
- Profile Screen: User account management
- Operator Dashboard: Real-time station monitoring
- Material Design 3: Latest design system with dynamic theming
- Animations: Smooth transitions and micro-interactions
- Responsive: Adapts to different screen sizes
- Accessibility: Full accessibility support
- Authentication: JWT token-based authentication
- Local Storage: Encrypted sensitive data storage
- API Security: HTTPS communication with backend
- Input Validation: Client-side and server-side validation
Run tests using:
./gradlew test # Unit tests- Fork the repository
- Create a feature branch (
git checkout -b feature/amazing-feature) - Commit your changes (
git commit -m 'Add amazing feature') - Push to the branch (
git push origin feature/amazing-feature) - Open a Pull Request