Skip to content

Latest commit

 

History

3 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 

Repository files navigation

South Africa Prayer Times

A web application for looking up daily and monthly Islamic prayer (Salah) times across South African cities. Prayer times are scraped from masjids.co.za rather than computed from astronomical formulas.

Repository Layout

This is a two-project monorepo. Each project is self-contained and deploys independently to Vercel.

Project Stack Description
api/ Python, FastAPI Scrapes prayer times and serves them as a REST API
ui/ React, TypeScript, Vite Public-facing web app that consumes the API

Architecture

┌─────────────────────┐        HTTPS         ┌──────────────────────────────┐
│  ui (React/Vite)    │ ────────────────────▶│  api (FastAPI on Vercel)     │
│ salaahtimes.        │   VITE_API_URL       │  prayer-times-api-six.       │
│ vercel.app          │                      │  vercel.app                  │
└─────────────────────┘                      └──────────────┬───────────────┘
                                                            │ scrape
                                                            ▼
                                             ┌──────────────────────────────┐
                                             │  masjids.co.za/salaahtimes   │
                                             └──────────────────────────────┘

Supported Cities

Benoni, Bergville, Bloemfontein, Cape Town (default), Colesberg, Durban, East London, Johannesburg, Kimberley, King William's Town, Pietermaritzburg, Port Elizabeth, Pretoria.

Local Development

Run each project from its own directory. To develop the full stack locally, start the API first, then point the UI at it.

1. Start the API

cd api
python -m venv venv
source venv/bin/activate        # Windows: venv\Scripts\activate
pip install -r requirements.txt
uvicorn main:app --reload       # http://127.0.0.1:8000

2. Start the UI

cd ui
npm install
echo "VITE_API_URL=http://127.0.0.1:8000" > .env   # point at the local API
npm run dev                      # http://localhost:5173

If you skip creating .env, the UI falls back to the production API.

See each project's README for full details:

Deployment

Both projects deploy separately to Vercel (connect the repo for automatic deployments, or run vercel from within each directory).

About

A web application for looking up daily and monthly Islamic prayer times across South African cities

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages