Rentify

Rentify - Vehicle Rental Application A production-ready Flutter application for renting Bikes, Scooties, and Cars with clean architecture and modern UI. Features User Features Phone authentication with OTP (Firebase) Location-based vehicle search Browse vehicles by category (Bike/Scooty/Car) Vehicle details with images and specifications Date and time-based booking Driving license upload Payment integration (Razorpay) Booking management User profile

Description

Rentify - Vehicle Rental Application

A production-ready Flutter application for renting Bikes, Scooties, and Cars with clean architecture and modern UI.

Features

User Features

  • Phone authentication with OTP (Firebase)

  • Location-based vehicle search

  • Browse vehicles by category (Bike/Scooty/Car)

  • Vehicle details with images and specifications

  • Date and time-based booking

  • Driving license upload

  • Payment integration (Razorpay)

  • Booking management

  • User profile

Dealer Features

  • Dealer dashboard with statistics

  • Vehicle management (Add/Edit/Delete)

  • Booking approval/rejection

  • Earnings tracking

  • Active bookings view

Admin Features

  • Dashboard statistics (read-only)

  • Reports view

Tech Stack

  • Framework: Flutter (latest stable)

  • State Management: Riverpod

  • Navigation: GoRouter

  • Backend: Node.js + MongoDB (REST APIs)

  • Authentication: Firebase Phone Auth

  • Maps: Google Maps

  • Payments: Razorpay

  • Image Upload: Cloudinary

Project Structure

lib/
├── core/
│   ├── constants/      # App constants
│   ├── theme/          # App theme and colors
│   ├── utils/          # Utility functions
│   └── services/       # Core services (API, Storage, Location)
├── features/
│   ├── auth/           # Authentication screens
│   ├── home/           # Home screen
│   ├── vehicles/       # Vehicle listing and details
│   ├── booking/        # Booking flow
│   ├── payments/       # Payment integration
│   ├── profile/        # User profile
│   └── dealer/         # Dealer module
├── shared/
│   ├── widgets/        # Reusable widgets
│   └── models/         # Data models
├── routes/             # App routing
└── main.dart           # App entry point

Setup Instructions

Prerequisites

  • Flutter SDK (3.0.0 or higher)

  • Android Studio / VS Code

  • Firebase account

  • Google Maps API key

  • Razorpay account

Installation

  1. Clone the repository

git clone <repository-url>
cd rentify
  1. Install dependencies

flutter pub get
  1. Configure Firebase

  • Create a Firebase project

  • Add Android/iOS apps

  • Download and add google-services.json (Android) and GoogleService-Info.plist (iOS)

  • Enable Phone Authentication

  1. Configure API Keys

  • Update lib/core/constants/app_constants.dart with your API keys:

    • Google Maps API Key

    • Razorpay Keys

    • Cloudinary credentials

    • Backend API URL

  1. Update Android Manifest

  • Add your Google Maps API key in android/app/src/main/AndroidManifest.xml

  1. Run the app

flutter run

Configuration

Backend API

Update the base URL in lib/core/constants/app_constants.dart:

static const String baseUrl = 'http://your-api-url.com/api';

Firebase

  1. Enable Phone Authentication in Firebase Console

  2. Add SHA-1 and SHA-256 fingerprints for Android

Google Maps

  1. Enable Maps SDK for Android/iOS

  2. Enable Places API

  3. Add API key to constants and manifest

Razorpay

  1. Get API keys from Razorpay Dashboard

  2. Update keys in constants file

Building for Production

Android

flutter build apk --release
# or
flutter build appbundle --release

iOS

flutter build ios --release

Features Implementation Status

  • Splash Screen

  • Phone Login with OTP

  • Home Screen with Categories

  • Vehicle Listing with Filters

  • Vehicle Details

  • Booking Flow

  • Booking Confirmation

  • My Bookings

  • User Profile

  • Dealer Dashboard

  • Dealer Vehicle Management

  • Payment Integration (Mock)

  • Driving License Upload

  • Google Maps Integration

  • Real-time Location Tracking

  • Push Notifications

API Endpoints (Expected)

POST   /api/auth/send-otp
POST   /api/auth/verify-otp
GET    /api/vehicles
GET    /api/vehicles/:id
POST   /api/bookings
GET    /api/bookings/user/:userId
POST   /api/dealer/vehicles
PUT    /api/dealer/vehicles/:id
DELETE /api/dealer/vehicles/:id
GET    /api/dealer/bookings
PUT    /api/dealer/bookings/:id/status

Design Guidelines

  • Material 3 Design

  • Primary Color: Blue (#2196F3)

  • Secondary Color: Green (#4CAF50)

  • Font: Poppins

  • Rounded corners (12-16px)

  • Consistent spacing (8, 12, 16, 24px)

  • Proper loading and error states

Contributing

  1. Fork the repository

  2. Create your feature branch

  3. Commit your changes

  4. Push to the branch

  5. Create a Pull Request

License

This project is licensed under the MIT License.

Support

For support, email support@rentify.com or create an issue in the repository.

Issues & Pull Requests Thread
No issues or pull requests added.