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 |
|---|---|---|
Neighbourhoods, districts, rental/property data, wards, safety scores |
7 |
|
Blog posts, itineraries, categories, favourites |
7 |
|
Activity guides with categorised articles |
2 |
|
Interactive neighbourhood matcher quiz |
6 |
|
eBook sales via Stripe, R2 distribution |
1 |
|
Crime data reports, per-neighbourhood dashboards |
5 |
Data Pipeline#
App |
Purpose |
Models |
|---|---|---|
Live data portal (dams, traffic, loadshedding) |
0 |
|
Real-time Eskom loadshedding status |
0 |
|
Crime scoring and ward-level data ingestion |
0 |
Commerce & Identity#
App |
Purpose |
Models |
|---|---|---|
Stripe subscriptions, invoices, identity events |
7 |
|
Threaded blog post comments (HTMX) |
1 |
|
GDPR cookie consent tracking |
1 |
|
Contact form |
0 |