# 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 …