Taxi App - أجره

Taxi App - أجره

Overview

A production-grade, enterprise-scale ride-sharing platform connecting riders, drivers, and fleet companies in a multi-stakeholder marketplace. The system covers the full ride-hailing lifecycle—from real-time booking and dynamic pricing to driver settlements and corporate fleet management—serving the Saudi/MENA market with full Arabic/English localization.

Key Features

• Real-Time Trip Management — Live trip tracking, driver assignment, scheduled rides, and a state machine–driven trip lifecycle (request → assign → in-progress → complete) powered by Firebase Firestore for instant mobile sync.

• Dynamic Pricing Engine — Fare calculation using Haversine distance, per-km rates by vehicle category, speed-based waiting fees, city-to-city premiums, and region-based surge pricing.

• Multi-Method Payment Processing — Integrated with Paytabs, STC Pay, wallets, cash, and corporate cards. Includes encrypted card storage, webhook/IPN handling, and tip management.

• Driver & Fleet Management — KYC onboarding, document verification, vehicle assignment, performance tracking, earnings dashboards, and cash withdrawal processing.

• Company & Partner Portal (Multi-Tenant) — Fleet-company isolation with separate operations, commission structures, bulk Excel imports, and partner-specific configurations.

• Comprehensive Admin Dashboard — 68+ modules covering users, trips, payments, settlements, coupons, geofencing, reporting, content management, and operational analytics.

• Notifications & Communications — AWS SNS + Firebase Cloud Messaging for push notifications, plus SMS delivery, email with PDF bill generation, and number masking for caller privacy.

Architecture Highlights

• Clean Architecture with strict dependency flow: Domain → Data → IoC → Presentation

• CQRS using dual DbContexts (read/write separation) for optimized query performance

• Repository Pattern: 88 repository interfaces with implementations across business domains

• MediatR for decoupled, event-driven communication

• API Versioning (v1/v2) with 100+ REST endpoints and Swagger documentation

• Layered Security Middleware: Rate limiting → JWT/Cookie auth → Client validation → User status checks

• Scale of Codebase: 444 domain models, 605+ database migrations, and ~2,500+ classes across 6 projects

Scale & Impact

• 100+ versioned API endpoints serving mobile clients

• 68+ admin modules supporting operations teams

• Arabic + English localization for the Saudi/MENA market

• Real-time trip tracking across thousands of concurrent sessions

• Automated CI/CD deploying 3 independent applications



2) Technical Stack


Category

Technology

Backend

.NET 7.0, ASP.NET Core Web API & MVC

Database

PostgreSQL (Npgsql), Entity Framework Core 7.0

Real-Time

Firebase Firestore, Firebase Cloud Messaging

Cloud

AWS S3, SNS, CodeDeploy

Payments

Paytabs, STC Pay

Background Jobs

Hangfire with PostgreSQL storage

CI/CD

Azure Pipelines → AWS CodeDeploy

Image Processing

Imageflow with S3 caching



3) Architecture Diagram

Layer /Stage

Mobile App (API Client)

Admin Panel (MVC)

Web Frontend (MVC)

Flow

Cross-cutting

IoC (Dependency Injection)

IoC (Dependency Injection)

IoC (Dependency Injection)

Application/Data Layer

Data Layer (Services + Repos): Services; Repos (88); AutoMapper / MediatR

Data Layer (Services + Repos): Services; Repos (88); AutoMapper / MediatR

Data Layer (Services + Repos): Services; Repos (88); AutoMapper / MediatR

Domain Layer

Domain (444 Models/Entities)

Domain (444 Models/Entities)

Domain (444 Models/Entities)

Persistence / Integrations

PostgreSQL (Read/Write CQRS)

Firebase / Firestore

AWS S3 / SNS + Paytabs / STC

Clients
Rassan Company
Timeframe
22 Months
Year
2023 - 2025
Technologies
.NET 7.0 , ASP.NET Core , Entity Framework Core , PostgreSQL , Firebase/Firestore , AWS (S3 , SNS , CodeDeploy) , Hangfire , AutoMapper , MediatR , Imageflow , Paytabs , MaxMind GeoIP2 , jQuery DataTables , Bootstrap , Swagger/OpenAPI
Platform
Web (API + Admin Panel + User Portal),Mobile APP IOS and Android (Rider - Driver)