Skip to content

Parkirin Mobile is a modern parking app solution designed to introduce Cashless Parking System in Batam City.

Notifications You must be signed in to change notification settings

muhammadpadanta/parkirin-flutter

Repository files navigation

🚗 Parkirin

Parkirin Logo

Flutter Version License PRs Welcome

Revolutionizing urban parking management with a seamless mobile solution

FeaturesGetting StartedArchitectureContributing

🌟 Overview

Parkirin is a modern parking management application built with Flutter that connects drivers with parking attendants. It streamlines the parking experience through digital ticketing, automated payments, and a reward system.

🎯 Key Features

  • Dual User Roles: Separate interfaces for drivers and parking attendants
  • Smart Authentication: Phone number/OTP-based login with Google Sign-In option
  • Digital Ticketing: Paperless parking ticket management
  • Reward System: Points-based rewards for regular users
  • Offline Support: Core functionality available without internet
  • Bilingual: Full support for Indonesian and English
  • Theme Options: Light and dark mode support

🚀 Getting Started

Prerequisites

  • Flutter 3.x
  • Dart SDK >=3.0.0
  • Android Studio / VS Code
  • iOS Simulator / Android Emulator

Installation

  1. Clone the repository:
git clone https://github.com/muhammadpadanta/parkirin-flutter.git
  1. Install dependencies:
cd parkirin
flutter pub get
  1. Set up environment variables:
cp .env.example .env
  1. Run the app:
flutter run

🏗️ Architecture

Parkirin follows Clean Architecture principles with a feature-first approach:

lib/
├── core/          # Core utilities and services
├── features/      # Feature modules
│   ├── authentication/
│   ├── vehicle_management/
│   ├── ticket_management/
│   └── ...
├── data/          # Data layer implementations
├── domain/        # Business logic and entities
└── presentation/  # UI components

Design Principles

  • SOLID Principles: Strict adherence to SOLID principles
  • Clean Architecture: Clear separation of concerns
  • Feature-First: Modular feature organization
  • Dependency Injection: Loose coupling between components
  • Repository Pattern: Abstract data sources
  • BLoC Pattern: State management

🛠️ Tech Stack

  • Framework: Flutter
  • State Management: BLoC
  • Dependency Injection: GetIt
  • Local Storage: Hive
  • Network: Dio
  • Authentication: Firebase Auth
  • Testing: Flutter Test

🔍 Core Features

For Drivers

  • Vehicle management with photo upload
  • Digital parking ticket viewing
  • Cashless payment options
  • Points reward system
  • Parking history tracking

For Parking Attendants

  • Quick ticket generation
  • Real-time payment tracking
  • Offline ticket management
  • Location-based operations
  • Daily transaction summary

🤝 Contributing

We welcome contributions! Please see our Contributing Guidelines for details.

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

📝 License

This project is licensed under the MIT License - see the LICENSE file for details.

📱 Screenshots

Login Driver Login Parking Attendant MORE coming soon...
Screen 1 Screen 2 Screen 3

Made with ❤️ by the Parkirin Team

About

Parkirin Mobile is a modern parking app solution designed to introduce Cashless Parking System in Batam City.

Topics

Resources

Stars

Watchers

Forks

Packages

No packages published

Languages