eraluma (core)#

Main application entry point — global URL routing, homepage, live-data APIs, legal/static pages, and site-wide configuration.

Models#

None. This app is the glue layer connecting all other apps.

URL Routes#

API Endpoints#

Path

View

Description

/api/cape-town-now

cape_town_now

JSON: live Cape Town data (loadshedding, dams, traffic, crime)

/api/traffic

cape_town_traffic

JSON: current traffic data

/api/loadshedding/

(include)

Loadshedding app API

Content Pages#

Path

View

Description

/

HomeView

Homepage with categories, popular posts, live data widgets

/search/

search_view

Full-text search

/coming-soon/

coming_soon

Coming soon placeholder

Infrastructure#

Path

Description

/robots.txt

Robots.txt (served by view)

/sitemap.xml

Django sitemap framework

/favicon.ico

Redirect to static file

Management Commands#

Command

Description

translation_overview

Report on translation coverage across apps

URL Routing Architecture#

flowchart TB ROOT["/"] --> FIXED[Fixed-path URLs] ROOT --> I18N[i18n_patterns] FIXED --> PAYMENTS["/payments/" — webhooks] FIXED --> REPORTS_WH["/reports-api/" — webhooks] FIXED --> ROBOTS["/robots.txt"] FIXED --> SITEMAP["/sitemap.xml"] FIXED --> API["/api/"] I18N --> HOME["/ — HomeView"] I18N --> HOUSING_INC["/housing/"] I18N --> PRODUCTS_INC["/blog/, /itineraries/"] I18N --> REPORTS_INC["/reports/"] I18N --> DATA["/data/"] I18N --> ADMIN["/admin/"] I18N --> AUTH["/accounts/ — allauth"]

Key Design Decisions#

  • Webhooks outside i18n: Stripe and reports webhook URLs are mounted outside i18n_patterns at fixed paths so external services always reach them.

  • Live data aggregation: cape_town_now aggregates loadshedding, dam levels, traffic, and crime data into a single JSON response for the homepage widgets.

  • Multi-language: All user-facing URLs use i18n_patterns for German/English language prefix routing.