You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
A production-grade FoodTech Flutter application — the customer-facing layer of the Paprika restaurant platform.
Built for the Middle East market with full Arabic/English RTL support, real-time courier tracking,
Firebase-powered live data streams, table reservations, food delivery & pickup ordering,
and a unique in-restaurant QR experience — all in a single cross-platform app.
📱 App Preview
Home & Discovery
Restaurant & Map
Orders & Tracking
Featured & nearby restaurants with smart filters
Google Maps integration & restaurant locator
Real-time courier tracking & order management
✨ Key Features
🛵 Real-Time Courier Tracking
Live courier location streaming on an embedded Google Map
Real-time delivery status updates via Firebase Realtime Database
Geolocation-aware nearest restaurant & delivery zone detection
Background location handling with device permission management
🍽️ Restaurant Discovery
Browse featured and nearby restaurants powered by live geolocation
Paprika follows a feature-first layered architecture with clear separation between data, business logic, and UI — co-designed with the backend team around a Swagger-documented REST API and real-time Firebase data streams.
flowchart TD
A["`**main.dart**
App bootstrap & Firebase init`"] --> B
B["`**app.dart**
Routes · Theme · Locale · RTL/LTR`"] --> C & D
C["`**Pages**
Tab hosts`"] --> E
D["`**Screens**
Full views`"] --> E
E["`**Widgets**
Cards · Lists · Maps · UI`"] --> F
F["`**Utils**
API Client · Firebase · Location
Maps · Format · SharedPrefs`"] --> G
G["`**Models**
Dart data classes / DTOs`"] --> H
H["`**paprica_dart_client**
Auto-generated Swagger REST Client
40+ API namespaces · Full DTO models`"] --> I
I["`**Backend Services**
REST API · Firebase Realtime DB
Courier tracking · Live geo streams`"]
style A fill:#E53935,color:#fff,stroke:none
style B fill:#C62828,color:#fff,stroke:none
style C fill:#1565C0,color:#fff,stroke:none
style D fill:#1565C0,color:#fff,stroke:none
style E fill:#283593,color:#fff,stroke:none
style F fill:#283593,color:#fff,stroke:none
style G fill:#283593,color:#fff,stroke:none
style H fill:#1B5E20,color:#fff,stroke:none
style I fill:#1B5E20,color:#fff,stroke:none
Loading
Module Structure
Module
Type
Description
paprika (root)
Main App
Full customer-facing Flutter application
paprika_inside
Flutter Module
In-restaurant QR experience (embedded)
paprica_dart_client
Dart Package
Auto-generated Swagger/OpenAPI REST client
Real-Time Courier Tracking Flow
flowchart TD
A["`**Firebase Realtime Database**
Location stream`"] --> B
B["`**Stream<LocationData>**`"] --> C
C["`**google_maps_flutter**
Live marker updates
on map_screen.dart`"] --> D
D["`**Customer sees courier
moving in real time 🛵**`"]
style A fill:#F57F17,color:#fff,stroke:none
style B fill:#E65100,color:#fff,stroke:none
style C fill:#1565C0,color:#fff,stroke:none
style D fill:#1B5E20,color:#fff,stroke:none
Loading
🚀 Getting Started
Prerequisites
# Flutter SDK (stable channel, 2.x)
flutter --version
# Dart SDK (≥ 2.1.0)
dart --version
# Android Studio with SDK platform & emulator configured# OR a physical Android device with USB debugging enabled# macOS only — for iOS builds
xcode-select --version
pod --version # CocoaPods ≥ 1.10
1. Clone the Repository
git clone https://github.com/alihaidar0/paprika-flutter.git
cd paprika-flutter
2. Install All Dependencies
# Root customer app
flutter pub get
# In-restaurant embedded modulecd paprika_inside && flutter pub get &&cd ..
# Auto-generated Swagger API clientcd paprica_dart_client && flutter pub get &&cd ..
3. Firebase Setup
⚠️Required — the app will not launch without valid Firebase config files.