# devraaz/koraput-toursism-web architecture

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

- Interactive diagram: https://gitdiagram.com/devraaz/koraput-toursism-web
- Repository: https://github.com/devraaz/koraput-toursism-web

## Overview

Koraput Tourism is a public destination-discovery site with a separate administration portal. Tourists browse destinations, stays, culture, and itineraries, then use trip-planning and Ask Kora features; administrators authenticate, manage content, and refine draft stories. The server owns API handling and connects to SQLite, the refinement engine, and the guide. The graph preserves README-documented features whose implementation details were not sampled; those relationships cite the README rather than implying unsampled call paths.

Main entry points: [`koraput_tourism/server.py`](https://github.com/devraaz/koraput-toursism-web/blob/main/koraput_tourism/server.py) (Web and API server), [`koraput_tourism/koraput_tourism.db`](https://github.com/devraaz/koraput-toursism-web/blob/main/koraput_tourism/koraput_tourism.db) (Tourism database), [`koraput_tourism/static/js/app.js`](https://github.com/devraaz/koraput-toursism-web/blob/main/koraput_tourism/static/js/app.js) (Tourist interface), [`koraput_tourism/static/js/admin_dashboard.js`](https://github.com/devraaz/koraput-toursism-web/blob/main/koraput_tourism/static/js/admin_dashboard.js) (Admin operations)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_experience["Tourist experience"]
  node_public_site["Tourism portal<br/>[index.html]"]
  node_tourist_client["Tourist interface<br/>[app.js]"]
  node_trip_planner["Trip planner<br/>[app.js]"]
  node_ask_kora["Ask Kora<br/>[app.js]"]
end

subgraph group_admin["Administration"]
  node_admin_login["Admin sign-in<br/>[admin_login.html]"]
  node_admin_portal["Admin studio"]
  node_admin_client["Admin operations<br/>[admin_dashboard.js]"]
end

subgraph group_service["Application services"]
  node_web_server["Web and API server<br/>[server.py]"]
  node_auth["Admin authentication<br/>[server.py]"]
  node_content_api["Content API<br/>[server.py]"]
  node_refinement_api["Refinement API<br/>[server.py]"]
  node_guide_engine["Knowledge engine<br/>[ai_guide.py]"]
  node_story_refiner["Story refinement<br/>[refiner.py]"]
end

subgraph group_content["Content and storage"]
  node_places["Destinations<br/>[database.py]"]
  node_stays["Stays and cottages<br/>[database.py]"]
  node_culture["Culture and coffee<br/>[database.py]"]
  node_itineraries["Itineraries<br/>[database.py]"]
  node_tourism_db[("Tourism database<br/>[koraput_tourism.db]")]
end

node_tourist(("Tourist"))
node_admin_user(("Administrator"))

node_tourist -->|"visits"| node_public_site
node_public_site -->|"presents"| node_tourist_client
node_tourist_client -.->|"requests content"| node_web_server
node_tourist_client -->|"plans trips"| node_trip_planner
node_tourist_client -->|"opens guide"| node_ask_kora
node_ask_kora -.->|"asks questions"| node_web_server
node_admin_user -->|"signs in"| node_admin_login
node_admin_login -.->|"requests login"| node_web_server
node_web_server -->|"handles login"| node_auth
node_admin_user -->|"manages content"| node_admin_portal
node_admin_portal -->|"loads operations"| node_admin_client
node_admin_client -->|"sends edits"| node_content_api
node_admin_client -->|"requests refinement"| node_refinement_api
node_web_server -->|"routes requests"| node_content_api
node_web_server -.->|"routes drafts"| node_refinement_api
node_web_server -->|"dispatches questions"| node_guide_engine
node_web_server -->|"refines content"| node_story_refiner
node_web_server -->|"reads and writes"| node_tourism_db
node_content_api -->|"manages"| node_places
node_content_api -->|"manages"| node_stays
node_content_api -->|"manages"| node_culture
node_content_api -.->|"serves"| node_itineraries
node_story_refiner -.->|"refines stories"| node_places
node_guide_engine -->|"reads records"| node_tourism_db
node_places -.->|"persists records"| node_tourism_db
node_stays -.->|"persists records"| node_tourism_db
node_culture -.->|"persists records"| node_tourism_db
node_itineraries -.->|"persists records"| node_tourism_db

click node_public_site "https://github.com/devraaz/koraput-toursism-web/blob/main/koraput_tourism/templates/index.html"
click node_tourist_client "https://github.com/devraaz/koraput-toursism-web/blob/main/koraput_tourism/static/js/app.js"
click node_trip_planner "https://github.com/devraaz/koraput-toursism-web/blob/main/koraput_tourism/static/js/app.js"
click node_ask_kora "https://github.com/devraaz/koraput-toursism-web/blob/main/koraput_tourism/static/js/app.js"
click node_admin_login "https://github.com/devraaz/koraput-toursism-web/blob/main/koraput_tourism/templates/admin_login.html"
click node_admin_portal "https://github.com/devraaz/koraput-toursism-web/blob/main/koraput_tourism/templates/admin_dashboard.html"
click node_admin_client "https://github.com/devraaz/koraput-toursism-web/blob/main/koraput_tourism/static/js/admin_dashboard.js"
click node_web_server "https://github.com/devraaz/koraput-toursism-web/blob/main/koraput_tourism/server.py"
click node_auth "https://github.com/devraaz/koraput-toursism-web/blob/main/koraput_tourism/server.py"
click node_content_api "https://github.com/devraaz/koraput-toursism-web/blob/main/koraput_tourism/server.py"
click node_refinement_api "https://github.com/devraaz/koraput-toursism-web/blob/main/koraput_tourism/server.py"
click node_guide_engine "https://github.com/devraaz/koraput-toursism-web/blob/main/koraput_tourism/ai_guide.py"
click node_story_refiner "https://github.com/devraaz/koraput-toursism-web/blob/main/koraput_tourism/refiner.py"
click node_places "https://github.com/devraaz/koraput-toursism-web/blob/main/koraput_tourism/database.py"
click node_stays "https://github.com/devraaz/koraput-toursism-web/blob/main/koraput_tourism/database.py"
click node_culture "https://github.com/devraaz/koraput-toursism-web/blob/main/koraput_tourism/database.py"
click node_itineraries "https://github.com/devraaz/koraput-toursism-web/blob/main/koraput_tourism/database.py"
click node_tourism_db "https://github.com/devraaz/koraput-toursism-web/blob/main/koraput_tourism/koraput_tourism.db"

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_public_site,node_tourist_client,node_trip_planner,node_ask_kora toneBlue
class node_admin_login,node_admin_portal,node_admin_client toneAmber
class node_web_server,node_auth,node_content_api,node_refinement_api,node_guide_engine,node_story_refiner toneMint
class node_places,node_stays,node_culture,node_itineraries,node_tourism_db toneRose
class node_tourist,node_admin_user toneIndigo
```

## Components

### Tourist experience

- [Tourism portal](https://github.com/devraaz/koraput-toursism-web/blob/main/koraput_tourism/templates/index.html): `koraput_tourism/templates/index.html`
- [Tourist interface](https://github.com/devraaz/koraput-toursism-web/blob/main/koraput_tourism/static/js/app.js): `koraput_tourism/static/js/app.js`
- [Trip planner](https://github.com/devraaz/koraput-toursism-web/blob/main/koraput_tourism/static/js/app.js): `koraput_tourism/static/js/app.js`
- [Ask Kora](https://github.com/devraaz/koraput-toursism-web/blob/main/koraput_tourism/static/js/app.js): `koraput_tourism/static/js/app.js`

### Administration

- [Admin sign-in](https://github.com/devraaz/koraput-toursism-web/blob/main/koraput_tourism/templates/admin_login.html): `koraput_tourism/templates/admin_login.html`
- [Admin studio](https://github.com/devraaz/koraput-toursism-web/blob/main/koraput_tourism/templates/admin_dashboard.html): `koraput_tourism/templates/admin_dashboard.html`
- [Admin operations](https://github.com/devraaz/koraput-toursism-web/blob/main/koraput_tourism/static/js/admin_dashboard.js): `koraput_tourism/static/js/admin_dashboard.js`

### Application services

- [Web and API server](https://github.com/devraaz/koraput-toursism-web/blob/main/koraput_tourism/server.py): `koraput_tourism/server.py`
- [Admin authentication](https://github.com/devraaz/koraput-toursism-web/blob/main/koraput_tourism/server.py): `koraput_tourism/server.py`
- [Content API](https://github.com/devraaz/koraput-toursism-web/blob/main/koraput_tourism/server.py): `koraput_tourism/server.py`
- [Refinement API](https://github.com/devraaz/koraput-toursism-web/blob/main/koraput_tourism/server.py): `koraput_tourism/server.py`
- [Knowledge engine](https://github.com/devraaz/koraput-toursism-web/blob/main/koraput_tourism/ai_guide.py): `koraput_tourism/ai_guide.py`
- [Story refinement](https://github.com/devraaz/koraput-toursism-web/blob/main/koraput_tourism/refiner.py): `koraput_tourism/refiner.py`

### Content and storage

- [Destinations](https://github.com/devraaz/koraput-toursism-web/blob/main/koraput_tourism/database.py): `koraput_tourism/database.py`
- [Stays and cottages](https://github.com/devraaz/koraput-toursism-web/blob/main/koraput_tourism/database.py): `koraput_tourism/database.py`
- [Culture and coffee](https://github.com/devraaz/koraput-toursism-web/blob/main/koraput_tourism/database.py): `koraput_tourism/database.py`
- [Itineraries](https://github.com/devraaz/koraput-toursism-web/blob/main/koraput_tourism/database.py): `koraput_tourism/database.py`
- [Tourism database](https://github.com/devraaz/koraput-toursism-web/blob/main/koraput_tourism/koraput_tourism.db): `koraput_tourism/koraput_tourism.db`

### Other components

- **Tourist**
- **Administrator**

## Connections

- Tourist → Tourism portal: visits (evidence: `README.md`)
- Tourism portal → Tourist interface: presents (evidence: `README.md`)
- Tourist interface → Web and API server: requests content
- Tourist interface → Trip planner: plans trips (evidence: `koraput_tourism/static/js/app.js`)
- Tourist interface → Ask Kora: opens guide (evidence: `koraput_tourism/static/js/app.js`)
- Ask Kora → Web and API server: asks questions
- Administrator → Admin sign-in: signs in (evidence: `README.md`)
- Admin sign-in → Web and API server: requests login
- Web and API server → Admin authentication: handles login (evidence: `koraput_tourism/server.py`)
- Administrator → Admin studio: manages content (evidence: `README.md`)
- Admin studio → Admin operations: loads operations (evidence: `koraput_tourism/static/js/admin_dashboard.js`)
- Admin operations → Content API: sends edits (evidence: `koraput_tourism/static/js/admin_dashboard.js`)
- Admin operations → Refinement API: requests refinement (evidence: `koraput_tourism/static/js/admin_dashboard.js`)
- Web and API server → Content API: routes requests (evidence: `koraput_tourism/server.py`)
- Web and API server → Refinement API: routes drafts (evidence: `koraput_tourism/server.py`)
- Web and API server → Knowledge engine: dispatches questions (evidence: `koraput_tourism/server.py`)
- Web and API server → Story refinement: refines content (evidence: `koraput_tourism/server.py`)
- Web and API server → Tourism database: reads and writes (evidence: `koraput_tourism/server.py`)
- Content API → Destinations: manages (evidence: `koraput_tourism/server.py`)
- Content API → Stays and cottages: manages (evidence: `README.md`)
- Content API → Culture and coffee: manages (evidence: `README.md`)
- Content API → Itineraries: serves (evidence: `koraput_tourism/server.py`)
- Story refinement → Destinations: refines stories (evidence: `koraput_tourism/database.py`)
- Knowledge engine → Tourism database: reads records (evidence: `koraput_tourism/ai_guide.py`)
- Destinations → Tourism database: persists records
- Stays and cottages → Tourism database: persists records
- Culture and coffee → Tourism database: persists records
- Itineraries → Tourism database: persists records
