# nexiemadia23/ppc-website-redesign architecture

> Architecture diagram of the GitHub repository nexiemadia23/ppc-website-redesign, generated by GitDiagram from its file tree, README and a sample of source files (last updated 2026-11-12). It is an AI-made overview: check details against the source.

- Interactive diagram: https://gitdiagram.com/nexiemadia23/ppc-website-redesign
- Repository: https://github.com/nexiemadia23/ppc-website-redesign

## Overview

This is a Django prototype for the Puerto Princesa City Government website. A visitor’s request is routed to a page view, which assembles curated prototype content and renders a template; shared navigation and site context support the page chrome. The site also provides search, an HTML site map, and crawler-facing XML sitemap and robots routes. Django models define planned editorial content and validation rules, while the README describes them as a foundation not yet wired into the prototype pages. Unsampled templates and settings are represented by their existing paths; their internal behavior is not inferred.

Main entry points: [`config/urls.py`](https://github.com/nexiemadia23/ppc-website-redesign/blob/main/config/urls.py) (URL routing), [`content/views.py`](https://github.com/nexiemadia23/ppc-website-redesign/blob/main/content/views.py) (Page views), [`content/navigation.py`](https://github.com/nexiemadia23/ppc-website-redesign/blob/main/content/navigation.py) (Page inventory), [`content/sitemaps.py`](https://github.com/nexiemadia23/ppc-website-redesign/blob/main/content/sitemaps.py) (Sitemap generators)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_routing["Routing and context"]
  node_routes["URL routing<br/>[urls.py]"]
  node_shared_context["Shared site context"]
  node_navigation["Page inventory<br/>[navigation.py]"]
  node_site_url["Site settings<br/>[base.py]"]
end

subgraph group_pages["Website content"]
  node_page_views["Page views<br/>[views.py]"]
  node_prototype_content["Prototype content<br/>[prototype_data.py]"]
  node_page_templates["Page templates"]
  node_prototype_js["Prototype interactions<br/>[prototype.js]"]
  node_search["Search page<br/>[views.py]"]
end

subgraph group_discovery["Site discovery"]
  node_sitemap_views["Sitemap generators<br/>[sitemaps.py]"]
end

subgraph group_content_admin["Editorial foundation"]
  node_editorial_models["Editorial models<br/>[models.py]"]
  node_admin["Django admin<br/>[admin.py]"]
  node_database[("SQLite database<br/>[base.py]")]
end

node_visitor(("Visitor"))
node_crawler(("Search crawler"))

node_visitor -->|"requests pages"| node_routes
node_crawler -->|"requests crawler files"| node_routes
node_routes -->|"dispatches pages"| node_page_views
node_routes -->|"dispatches search"| node_search
node_page_views -->|"reads content"| node_prototype_content
node_page_views -->|"renders pages"| node_page_templates
node_page_views -->|"uses page inventory"| node_navigation
node_routes -->|"builds page routes"| node_navigation
node_shared_context -->|"builds navigation"| node_navigation
node_shared_context -->|"reads contacts"| node_prototype_content
node_site_url -->|"configures template context"| node_shared_context
node_page_templates -.->|"enables section navigation"| node_prototype_js
node_routes -->|"routes XML sitemap"| node_sitemap_views
node_sitemap_views -->|"lists site pages"| node_navigation
node_sitemap_views -->|"lists news articles"| node_prototype_content
node_routes -->|"routes robots file"| node_page_views
node_admin -->|"manages content"| node_editorial_models
node_site_url -->|"configures SQLite"| node_database
node_editorial_models -.->|"stores editorial records"| node_database

click node_routes "https://github.com/nexiemadia23/ppc-website-redesign/blob/main/config/urls.py"
click node_shared_context "https://github.com/nexiemadia23/ppc-website-redesign/blob/main/content/context_processors.py"
click node_page_views "https://github.com/nexiemadia23/ppc-website-redesign/blob/main/content/views.py"
click node_prototype_content "https://github.com/nexiemadia23/ppc-website-redesign/blob/main/content/prototype_data.py"
click node_navigation "https://github.com/nexiemadia23/ppc-website-redesign/blob/main/content/navigation.py"
click node_page_templates "https://github.com/nexiemadia23/ppc-website-redesign/tree/main/templates"
click node_prototype_js "https://github.com/nexiemadia23/ppc-website-redesign/blob/main/static/js/prototype.js"
click node_search "https://github.com/nexiemadia23/ppc-website-redesign/blob/main/content/views.py"
click node_sitemap_views "https://github.com/nexiemadia23/ppc-website-redesign/blob/main/content/sitemaps.py"
click node_site_url "https://github.com/nexiemadia23/ppc-website-redesign/blob/main/config/settings/base.py"
click node_editorial_models "https://github.com/nexiemadia23/ppc-website-redesign/blob/main/content/models.py"
click node_admin "https://github.com/nexiemadia23/ppc-website-redesign/blob/main/content/admin.py"
click node_database "https://github.com/nexiemadia23/ppc-website-redesign/blob/main/config/settings/base.py"

classDef toneNeutral fill:#f8fafc,stroke:#334155,stroke-width:1.5px,color:#0f172a
classDef toneBlue fill:#dbeafe,stroke:#2563eb,stroke-width:1.5px,color:#172554
classDef toneAmber fill:#fef3c7,stroke:#d97706,stroke-width:1.5px,color:#78350f
classDef toneMint fill:#dcfce7,stroke:#16a34a,stroke-width:1.5px,color:#14532d
classDef toneRose fill:#ffe4e6,stroke:#e11d48,stroke-width:1.5px,color:#881337
classDef toneIndigo fill:#e0e7ff,stroke:#4f46e5,stroke-width:1.5px,color:#312e81
classDef toneTeal fill:#ccfbf1,stroke:#0f766e,stroke-width:1.5px,color:#134e4a
class node_routes,node_shared_context,node_navigation,node_site_url toneBlue
class node_page_views,node_prototype_content,node_page_templates,node_prototype_js,node_search toneAmber
class node_sitemap_views toneMint
class node_editorial_models,node_admin,node_database toneRose
class node_visitor,node_crawler toneIndigo
```

## Components

### Routing and context

- [URL routing](https://github.com/nexiemadia23/ppc-website-redesign/blob/main/config/urls.py): `config/urls.py`
- [Shared site context](https://github.com/nexiemadia23/ppc-website-redesign/blob/main/content/context_processors.py): `content/context_processors.py`
- [Page inventory](https://github.com/nexiemadia23/ppc-website-redesign/blob/main/content/navigation.py): `content/navigation.py`
- [Site settings](https://github.com/nexiemadia23/ppc-website-redesign/blob/main/config/settings/base.py): `config/settings/base.py`

### Website content

- [Page views](https://github.com/nexiemadia23/ppc-website-redesign/blob/main/content/views.py): `content/views.py`
- [Prototype content](https://github.com/nexiemadia23/ppc-website-redesign/blob/main/content/prototype_data.py): `content/prototype_data.py`
- [Page templates](https://github.com/nexiemadia23/ppc-website-redesign/tree/main/templates): `templates`
- [Prototype interactions](https://github.com/nexiemadia23/ppc-website-redesign/blob/main/static/js/prototype.js): `static/js/prototype.js`
- [Search page](https://github.com/nexiemadia23/ppc-website-redesign/blob/main/content/views.py): `content/views.py`

### Site discovery

- [Sitemap generators](https://github.com/nexiemadia23/ppc-website-redesign/blob/main/content/sitemaps.py): `content/sitemaps.py`

### Editorial foundation

- [Editorial models](https://github.com/nexiemadia23/ppc-website-redesign/blob/main/content/models.py): `content/models.py`
- [Django admin](https://github.com/nexiemadia23/ppc-website-redesign/blob/main/content/admin.py): `content/admin.py`
- [SQLite database](https://github.com/nexiemadia23/ppc-website-redesign/blob/main/config/settings/base.py): `config/settings/base.py`

### Other components

- **Visitor**
- **Search crawler**

## Connections

- Visitor → URL routing: requests pages (evidence: `config/urls.py`)
- Search crawler → URL routing: requests crawler files (evidence: `config/urls.py`)
- URL routing → Page views: dispatches pages (evidence: `config/urls.py`)
- URL routing → Search page: dispatches search (evidence: `config/urls.py`)
- Page views → Prototype content: reads content (evidence: `content/views.py`)
- Page views → Page templates: renders pages (evidence: `content/views.py`)
- Page views → Page inventory: uses page inventory (evidence: `content/views.py`)
- URL routing → Page inventory: builds page routes (evidence: `config/urls.py`)
- Shared site context → Page inventory: builds navigation (evidence: `content/context_processors.py`)
- Shared site context → Prototype content: reads contacts (evidence: `content/context_processors.py`)
- Site settings → Shared site context: configures template context (evidence: `config/settings/base.py`)
- Page templates → Prototype interactions: enables section navigation (evidence: `README.md`)
- URL routing → Sitemap generators: routes XML sitemap (evidence: `config/urls.py`)
- Sitemap generators → Page inventory: lists site pages (evidence: `content/sitemaps.py`)
- Sitemap generators → Prototype content: lists news articles (evidence: `content/sitemaps.py`)
- URL routing → Page views: routes robots file (evidence: `config/urls.py`)
- Django admin → Editorial models: manages content (evidence: `content/admin.py`)
- Site settings → SQLite database: configures SQLite (evidence: `config/settings/base.py`)
- Editorial models → SQLite database: stores editorial records
