REST API powering the JoRide self-drive car-sharing platform for Jordan. Handles user accounts, JWT authentication, vehicle fleet management, trip lifecycle (book → drive → return), in-app wallet payments, OTP verification, digital car keys, push notifications, real-time GPS tracking via Traccar, and an admin dashboard.
Related: joride-frontend — Flutter mobile app
| Swagger UI | Endpoint Overview |
|---|---|
![]() |
See full API docs by running the project and visiting /swagger |
Run locally and navigate to
https://localhost:{PORT}/swaggerto explore all endpoints interactively.
| Layer | Technology |
|---|---|
| Framework | ASP.NET Core 8 |
| Language | C# |
| Database | Firebase Firestore (Admin SDK) |
| Auth | JWT Bearer |
| GPS Tracking | Traccar REST API |
| Notifications | Push + SMS/Email services |
| Docs | Swagger / OpenAPI |
- JWT Auth — register, login, OTP verification, token refresh
- Vehicle Fleet — CRUD, availability tracking, GPS position from Traccar
- Trip Lifecycle — book → start → active (live fare meter) → return
- Digital Keys — time-limited unlock tokens issued on trip start
- Wallet Payments — balance management, charge, top-up, transaction history
- Admin Dashboard — user management, fleet oversight, trip monitoring
- Real-time GPS — vehicle location polled from Traccar server
JoRideBackend/
├── Controllers/ # REST endpoints (Auth, Users, Vehicles, Trips, Wallet, Admin …)
├── Models/ # Domain entities (User, Vehicle, Trip, Wallet …)
├── Services/ # FirestoreService, JwtTokenService, TraccarService, OtpService …
├── DTOs/ # Request / response objects
├── Program.cs # DI container + JWT middleware config
└── appsettings.json # Configuration (JWT, Firebase, Traccar)
- .NET 8 SDK
- Firebase project with Firestore enabled
firebase-adminsdk.jsonservice account key
git clone https://github.com/omaralrayyan7/joride-backend.git
cd joride-backend
# Place your Firebase service account key
cp /path/to/firebase-adminsdk.json JoRideBackend/
# Update appsettings.json with your JWT secret, Firebase project ID, Traccar URL
dotnet restore
dotnet runAPI is available at https://localhost:{PORT} — Swagger UI at /swagger.
