Skip to content

y4-systems/ev-station-booking-system-android

Repository files navigation

Electric Vehicle Station Booking System Android App Overview

A modern Android application for electric vehicle charging station booking system, built with native Android development using Kotlin, Jetpack Compose and Material Design 3.

🚗 Features

For EV Owners

  • 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

For Station Operators

  • 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

🛠 Tech Stack

  • 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

🏗 Architecture

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

🚀 Getting Started

Prerequisites

  • Android Studio
  • Android SDK Tools
  • Kotlin 1.9+
  • JDK 11+

Installation

  1. Clone the repository

    git clone https://github.com/y4-systems/ev-station-booking-system-android.git
    cd ev-station-booking-system-android
  2. Open in Android Studio

    • Open Android Studio
    • Select "Open an existing project"
    • Navigate to the project directory
  3. Configure Backend URL

    BACKEND_URL=https://your-backend-api-url.com
  4. Build and Run

    • Sync the project with Gradle files
    • Run the app on an emulator or physical device

🔧 Configuration

Backend Integration

The app connects to a REST API backend. Configure the API endpoint.

BACKEND_URL=https://your-api-endpoint.com

Database

The app uses Room database for local data storage:

  • User authentication tokens
  • Cached booking data
  • Station information
  • Offline support

📖 API Integration

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

🎨 UI Components

Key Screens

  1. Home Screen: Dashboard with featured stations and quick actions
  2. Station List: Browse and filter charging stations
  3. Station Detail: View station information and availability
  4. Booking Screen: Manage personal bookings
  5. Profile Screen: User account management
  6. Operator Dashboard: Real-time station monitoring

Design Features

  • 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

🔒 Security

  • 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

🧪 Testing

Run tests using:

./gradlew test                 # Unit tests

📝 Contributing

  1. Fork the repository
  2. Create a feature branch (git checkout -b feature/amazing-feature)
  3. Commit your changes (git commit -m 'Add amazing feature')
  4. Push to the branch (git push origin feature/amazing-feature)
  5. Open a Pull Request

About

ev-station-booking-system-android

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages