Hoping to create a public transport web app which can be used in Rwanda
# Public Transport Route Finder
A full-stack web application for finding and comparing public transport routes between two locations. Built with Node.js + Express backend and vanilla HTML/CSS/JavaScript frontend.
## Features
- 🗺️ **Route Search**: Find multiple routes between origin and destination coordinates
- ⏱️ **Duration & Distance**: View travel time and distance for each route
- 🔄 **Sorting & Filtering**: Sort routes by duration or distance
- 🎯 **Real-time Results**: Get instant route results with detailed instructions
- 🔒 **API Key Protection**: Backend proxy keeps external API keys secure
- 📱 **Responsive Design**: Works on desktop, tablet, and mobile devices
- ⚖️ **Load Balanced**: Deployable across multiple web servers with load balancing
## Project Structure
```
Public_Transport_Route_Finder/
├── backend/
│ ├── app.js # Express server
│ ├── package.json # Dependencies
│ ├── .env.example # Environment template
│ └── .env # (Local only, not committed)
├── frontend/
│ ├── index.html # Main UI
│ ├── style.css # Styling
│ └── script.js # Client logic
├── .gitignore
├── README.md
└── deployment/ # (Added during deployment phase)
├── nginx.conf
├── systemd-service.conf
└── lb-config.conf
```
## Prerequisites
- Node.js 14+ and npm
- External transit API key (e.g., OpenRouteService, Google Maps, etc.)
- Git
## Local Setup
### 1. Clone the repository
```bash
git clone
github.com
cd Public_Transport_Route_Finder
```
### 2. Backend Setup
```bash
cd backend
npm install
cp .env.example .env
```
Edit `.env` and add your transit API key:
```
PORT=5000
TRANSIT_API_KEY=your_actual_api_key_here
TRANSIT_API_URL=
api.openrouteservice.org
NODE_ENV=development
```
Start the backend:
```bash
npm start
# Or with nodemon for development:
npm run dev
```
The backen …