Bus App

Bus Tracker

Python Version License Repo Size Last Commit Tests

Django Kivy Pytest

A full-stack transit app featuring a Django REST framework and a Multi-threaded Kivy mobile interface.

A Reliable transit apps require robust front-end logic. I built this UK Bus Tracker (v1) as a Proof of Concept to demonstrate a mobile-ready UI (Kivy) capable of processing transit data. To ensure a consistent demo experience without API rate-limiting, v1 utilizes a mocked data engine that simulates real-world bus arrivals.


πŸ“± App Gallery

Alert Screen Login Screen Maps Screen Prediction Screen Routes Screen Stops Screen

πŸš€ Features


πŸ“¦ Installation

  1. Clone the repository and install:
git clone https://github.com/reory/bus_app.git
cd bus_app
pip install -r requirements.txt
python manage.py migrate

Usage

This project requires both the backend and frontend to be running simultaneously.

  1. Start the backend:

     python manage.py runserver 
    
    
  2. Start the frontend:

    python main.py
    

Project Structure

bus_app/
β”œβ”€β”€ api/                  # Main API Gateway & GTFS Imports
β”œβ”€β”€ bus_backend/          # Project Core
β”‚   β”œβ”€β”€ apps/             # Modular Business Logic
β”‚   β”‚   β”œβ”€β”€ notifications/# User alerts & notifications
β”‚   β”‚   β”œβ”€β”€ realtime/     # Live bus tracking data
β”‚   β”‚   β”œβ”€β”€ routes/       # GTFS route & stop management
β”‚   β”‚   └── users/        # Custom user models & auth
β”‚   └── settings.py       # Global configuration
β”œβ”€β”€ frontend/             # Kivy Mobile Application
β”œβ”€β”€ tests/                # 17 Unit tests (Backend & Frontend)
β”œβ”€β”€ manage.py             # Django management script
└── main.py               # Kivy entry point

Testing🚦

The project includes a comprehensive suite of 17 tests covering models, serializers, and the Kivy UI logic.

To run the tests:

pytest

Technologies Used


Notes

Built By Roy Peters Click here for contact details 😁