Revolutionizing urban parking management with a seamless mobile solution
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.
- 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
- Flutter 3.x
- Dart SDK >=3.0.0
- Android Studio / VS Code
- iOS Simulator / Android Emulator
- Clone the repository:
git clone https://github.com/muhammadpadanta/parkirin-flutter.git
- Install dependencies:
cd parkirin
flutter pub get
- Set up environment variables:
cp .env.example .env
- Run the app:
flutter run
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
- 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
- Framework: Flutter
- State Management: BLoC
- Dependency Injection: GetIt
- Local Storage: Hive
- Network: Dio
- Authentication: Firebase Auth
- Testing: Flutter Test
- Vehicle management with photo upload
- Digital parking ticket viewing
- Cashless payment options
- Points reward system
- Parking history tracking
- Quick ticket generation
- Real-time payment tracking
- Offline ticket management
- Location-based operations
- Daily transaction summary
We welcome contributions! Please see our Contributing Guidelines for details.
- Fork the repository
- Create your feature branch (
git checkout -b feature/AmazingFeature
) - Commit your changes (
git commit -m 'Add some AmazingFeature'
) - Push to the branch (
git push origin feature/AmazingFeature
) - Open a Pull Request
This project is licensed under the MIT License - see the LICENSE file for details.
Made with ❤️ by the Parkirin Team