# Panga Safari API π
A comprehensive Django REST API for the Panga Safari transportation system, featuring user authentication, trip planning, route management, and real-time transport information for Tanzania's public transportation network.
---
## π Table of Contents
- Overview
- Project Structure
- Quick Start
- Base URLs
- API Documentation
- Frontend Integration Guide
- Architecture
- Apps Overview
- Security Features
- Authentication & Permissions
---
## π― Overview
Panga Safari API is a complete backend solution for managing Tanzania's public transportation system. It provides:
- β
**User Authentication** - JWT-based auth with email verification
- β
**Trip Planning** - Advanced route finding with pathfinding algorithms
- β
**Rate Limiting** - 10 free trip plans per IP, unlimited for authenticated users
- β
**Admin Protection** - Admin-only endpoints for data management
- β
**Stop & Route Management** - Complete CRUD operations for transportation network
- β
**Fare Calculation** - Automatic fare calculation based on distance and vehicle type
- β
**Photo Management** - Upload photos for stops, routes, and transfer hubs
- β
**Search History** - Analytics and search tracking
---
## π Project Structure
```
panga-safari-api/
βββ apps/
β βββ accounts/ # User authentication & profile management
β β βββ README.md # Accounts API documentation
β β βββ models.py # User model
β β βββ views.py # Authentication views
β β βββ urls.py # Account endpoints
β β βββ services.py # Email services
β β
β βββ Trip/ # Transportation & route planning
β βββ README.md # Trip API documentation
β βββ models.py # Transport models (Stop, Route, etc.)
β βββ views.py # Trip planning views
β βββ urls.py # Trip endpoints
β βββ services/
β βββ pathfinder.py # Route finding algorithm
β
βββ config/ # Django configuration
β βββ settings.p β¦