Application Reference#

capetowndata.com is composed of 17 Django apps organised into four functional layers.

Architecture Overview#

graph TB subgraph Public["Public-facing"] HOUSING[housing] PRODUCTS[products] THINGS[things_to_do] QUIZ[travel_quiz] EBOOK[ebook] REPORTS[reports] end subgraph Data["Data Pipeline"] DATAPORTAL[dataportal] LOADSHEDDING[loadshedding] SAFETY[safety] end subgraph Commerce["Commerce & Identity"] PAYMENTS[payments] COMMENTS[comments] COOKIE[cookieconsent] SENDEMAIL[sendemail] end subgraph Core["Core / Glue"] ERALUMA[eraluma] DASHBOARD[dashboard] ABOUT[about] HIKING[hiking] end HOUSING -->|safety data| SAFETY REPORTS -->|crime data| SAFETY DATAPORTAL -->|live feeds| LOADSHEDDING PRODUCTS -->|favourites| DASHBOARD PAYMENTS -->|subscriptions| EBOOK PAYMENTS -->|access control| REPORTS COMMENTS -->|blog posts| PRODUCTS

Apps by Layer#

Public-facing Content#

App

Purpose

Models

housing

Neighbourhoods, districts, rental/property data, wards, safety scores

7

products

Blog posts, itineraries, categories, favourites

7

things_to_do

Activity guides with categorised articles

2

travel_quiz

Interactive neighbourhood matcher quiz

6

ebook

eBook sales via Stripe, R2 distribution

1

reports

Crime data reports, per-neighbourhood dashboards

5

Data Pipeline#

App

Purpose

Models

dataportal

Live data portal (dams, traffic, loadshedding)

0

loadshedding

Real-time Eskom loadshedding status

0

safety

Crime scoring and ward-level data ingestion

0

Commerce & Identity#

App

Purpose

Models

payments

Stripe subscriptions, invoices, identity events

7

comments

Threaded blog post comments (HTMX)

1

cookieconsent

GDPR cookie consent tracking

1

sendemail

Contact form

0

Core / Glue#

App

Purpose

Models

eraluma

Main URL routing, homepage, APIs, legal pages

0

dashboard

Authenticated user dashboard, PDF export

0

about

About page with live safety data

0

hiking

Hiking-tagged blog post listing

0