# mrparkerbot/uz-koram-xarid-xizmati architecture

> Architecture diagram of the GitHub repository mrparkerbot/uz-koram-xarid-xizmati, generated by GitDiagram from its file tree, README and a sample of source files (last updated 2026-09-25). It is an AI-made overview: check details against the source.

- Interactive diagram: https://gitdiagram.com/mrparkerbot/uz-koram-xarid-xizmati
- Repository: https://github.com/mrparkerbot/uz-koram-xarid-xizmati

## Overview

Uz-Koram Xarid Xizmati is a Django purchasing-department workflow application, rendered server-side with Jinja2 and backed by SQLite. A requester submits a purchase request; the department head and director approve it, producing a QR-stamped PDF and a purchasing application. Purchasing staff accept or refuse incoming applications, assign accepted work to a specialist, and the specialist enters and sends a contract for decision; rejection can return it for resending. The application also provides master-data administration, notifications, audit history, dashboards, reports, and exports. The graph uses documented workflow stages and sampled configuration; unsampled implementation wiring is omitted where uncertain.

Main entry points: [`xarid/views.py`](https://github.com/mrparkerbot/uz-koram-xarid-xizmati/blob/main/xarid/views.py) (Page actions), [`xarid/models.py`](https://github.com/mrparkerbot/uz-koram-xarid-xizmati/blob/main/xarid/models.py) (Domain records), [`xarid/notifications.py`](https://github.com/mrparkerbot/uz-koram-xarid-xizmati/blob/main/xarid/notifications.py) (In-app notifications), [`config/urls.py`](https://github.com/mrparkerbot/uz-koram-xarid-xizmati/blob/main/config/urls.py) (Route dispatch)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_entry["Web entry"]
  node_urls["Route dispatch<br/>[urls.py]"]
  node_page_views["Page actions<br/>[views.py]"]
  node_templates["Jinja pages"]
end

subgraph group_procurement["Procurement workflow"]
  node_purchase_request["Purchase request<br/>[views.py]"]
  node_application_intake["Application intake<br/>[views.py]"]
  node_assignment["Specialist assignment<br/>[views.py]"]
  node_contract["Contract workflow<br/>[views.py]"]
end

subgraph group_operations["Operations and records"]
  node_documents["PDF documents<br/>[documents.py]"]
  node_attachments["File attachments<br/>[attachments.py]"]
  node_notifications["In-app notifications<br/>[notifications.py]"]
  node_audit["Audit history<br/>[audit.py]"]
  node_master_data["Master data<br/>[views.py]"]
end

subgraph group_insight["Reporting"]
  node_dashboard["Dashboard<br/>[dashboard.py]"]
  node_reports["Reports<br/>[reports.py]"]
  node_exports["Report exports<br/>[exports.py]"]
end

subgraph group_platform["Application foundation"]
  node_forms["Input validation<br/>[forms.py]"]
  node_domain_data["Domain records<br/>[models.py]"]
  node_database[("SQLite database")]
  node_auth["Authentication<br/>[urls.py]"]
end

node_staff(("Staff users"))

node_staff -->|"submits requests"| node_urls
node_urls -->|"dispatches pages"| node_page_views
node_urls -->|"routes sign-in"| node_auth
node_page_views -->|"handles request"| node_purchase_request
node_page_views -->|"handles intake"| node_application_intake
node_page_views -->|"assigns work"| node_assignment
node_page_views -->|"handles contracts"| node_contract
node_page_views -->|"maintains records"| node_master_data
node_purchase_request -->|"validates input"| node_forms
node_application_intake -->|"validates input"| node_forms
node_contract -->|"validates input"| node_forms
node_purchase_request -->|"creates records"| node_domain_data
node_application_intake -->|"updates records"| node_domain_data
node_assignment -->|"updates assignment"| node_domain_data
node_contract -->|"updates contracts"| node_domain_data
node_master_data -->|"maintains records"| node_domain_data
node_domain_data -->|"reads and writes"| node_database
node_purchase_request -->|"stamps request PDF"| node_documents
node_contract -->|"handles PDF files"| node_attachments
node_purchase_request -->|"notifies participants"| node_notifications
node_application_intake -->|"notifies participants"| node_notifications
node_assignment -->|"notifies participants"| node_notifications
node_contract -->|"notifies participants"| node_notifications
node_page_views -->|"records actions"| node_audit
node_page_views -->|"renders dashboard"| node_dashboard
node_page_views -->|"renders reports"| node_reports
node_page_views -->|"serves exports"| node_exports
node_dashboard -->|"queries records"| node_domain_data
node_reports -->|"queries records"| node_domain_data
node_exports -->|"exports data"| node_domain_data
node_page_views -->|"renders pages"| node_templates

click node_urls "https://github.com/mrparkerbot/uz-koram-xarid-xizmati/blob/main/config/urls.py"
click node_page_views "https://github.com/mrparkerbot/uz-koram-xarid-xizmati/blob/main/xarid/views.py"
click node_purchase_request "https://github.com/mrparkerbot/uz-koram-xarid-xizmati/blob/main/xarid/views.py"
click node_application_intake "https://github.com/mrparkerbot/uz-koram-xarid-xizmati/blob/main/xarid/views.py"
click node_assignment "https://github.com/mrparkerbot/uz-koram-xarid-xizmati/blob/main/xarid/views.py"
click node_contract "https://github.com/mrparkerbot/uz-koram-xarid-xizmati/blob/main/xarid/views.py"
click node_forms "https://github.com/mrparkerbot/uz-koram-xarid-xizmati/blob/main/xarid/forms.py"
click node_domain_data "https://github.com/mrparkerbot/uz-koram-xarid-xizmati/blob/main/xarid/models.py"
click node_documents "https://github.com/mrparkerbot/uz-koram-xarid-xizmati/blob/main/xarid/documents.py"
click node_attachments "https://github.com/mrparkerbot/uz-koram-xarid-xizmati/blob/main/xarid/attachments.py"
click node_notifications "https://github.com/mrparkerbot/uz-koram-xarid-xizmati/blob/main/xarid/notifications.py"
click node_audit "https://github.com/mrparkerbot/uz-koram-xarid-xizmati/blob/main/xarid/audit.py"
click node_master_data "https://github.com/mrparkerbot/uz-koram-xarid-xizmati/blob/main/xarid/views.py"
click node_dashboard "https://github.com/mrparkerbot/uz-koram-xarid-xizmati/blob/main/xarid/dashboard.py"
click node_reports "https://github.com/mrparkerbot/uz-koram-xarid-xizmati/blob/main/xarid/reports.py"
click node_exports "https://github.com/mrparkerbot/uz-koram-xarid-xizmati/blob/main/xarid/exports.py"
click node_auth "https://github.com/mrparkerbot/uz-koram-xarid-xizmati/blob/main/config/urls.py"
click node_templates "https://github.com/mrparkerbot/uz-koram-xarid-xizmati/tree/main/xarid/templates/xarid"

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_urls,node_page_views,node_templates,node_staff toneBlue
class node_purchase_request,node_application_intake,node_assignment,node_contract toneAmber
class node_documents,node_attachments,node_notifications,node_audit,node_master_data toneMint
class node_dashboard,node_reports,node_exports toneRose
class node_forms,node_domain_data,node_database,node_auth toneIndigo
```

## Components

### Web entry

- [Route dispatch](https://github.com/mrparkerbot/uz-koram-xarid-xizmati/blob/main/config/urls.py): `config/urls.py`
- [Page actions](https://github.com/mrparkerbot/uz-koram-xarid-xizmati/blob/main/xarid/views.py): `xarid/views.py`
- [Jinja pages](https://github.com/mrparkerbot/uz-koram-xarid-xizmati/tree/main/xarid/templates/xarid): `xarid/templates/xarid`

### Procurement workflow

- [Purchase request](https://github.com/mrparkerbot/uz-koram-xarid-xizmati/blob/main/xarid/views.py): `xarid/views.py`
- [Application intake](https://github.com/mrparkerbot/uz-koram-xarid-xizmati/blob/main/xarid/views.py): `xarid/views.py`
- [Specialist assignment](https://github.com/mrparkerbot/uz-koram-xarid-xizmati/blob/main/xarid/views.py): `xarid/views.py`
- [Contract workflow](https://github.com/mrparkerbot/uz-koram-xarid-xizmati/blob/main/xarid/views.py): `xarid/views.py`

### Operations and records

- [PDF documents](https://github.com/mrparkerbot/uz-koram-xarid-xizmati/blob/main/xarid/documents.py): `xarid/documents.py`
- [File attachments](https://github.com/mrparkerbot/uz-koram-xarid-xizmati/blob/main/xarid/attachments.py): `xarid/attachments.py`
- [In-app notifications](https://github.com/mrparkerbot/uz-koram-xarid-xizmati/blob/main/xarid/notifications.py): `xarid/notifications.py`
- [Audit history](https://github.com/mrparkerbot/uz-koram-xarid-xizmati/blob/main/xarid/audit.py): `xarid/audit.py`
- [Master data](https://github.com/mrparkerbot/uz-koram-xarid-xizmati/blob/main/xarid/views.py): `xarid/views.py`

### Reporting

- [Dashboard](https://github.com/mrparkerbot/uz-koram-xarid-xizmati/blob/main/xarid/dashboard.py): `xarid/dashboard.py`
- [Reports](https://github.com/mrparkerbot/uz-koram-xarid-xizmati/blob/main/xarid/reports.py): `xarid/reports.py`
- [Report exports](https://github.com/mrparkerbot/uz-koram-xarid-xizmati/blob/main/xarid/exports.py): `xarid/exports.py`

### Application foundation

- [Input validation](https://github.com/mrparkerbot/uz-koram-xarid-xizmati/blob/main/xarid/forms.py): `xarid/forms.py`
- [Domain records](https://github.com/mrparkerbot/uz-koram-xarid-xizmati/blob/main/xarid/models.py): `xarid/models.py`
- **SQLite database**
- [Authentication](https://github.com/mrparkerbot/uz-koram-xarid-xizmati/blob/main/config/urls.py): `config/urls.py`

### Other components

- **Staff users**

## Connections

- Staff users → Route dispatch: submits requests
- Route dispatch → Page actions: dispatches pages
- Route dispatch → Authentication: routes sign-in
- Page actions → Purchase request: handles request
- Page actions → Application intake: handles intake
- Page actions → Specialist assignment: assigns work
- Page actions → Contract workflow: handles contracts
- Page actions → Master data: maintains records
- Purchase request → Input validation: validates input
- Application intake → Input validation: validates input
- Contract workflow → Input validation: validates input
- Purchase request → Domain records: creates records
- Application intake → Domain records: updates records
- Specialist assignment → Domain records: updates assignment
- Contract workflow → Domain records: updates contracts
- Master data → Domain records: maintains records
- Domain records → SQLite database: reads and writes
- Purchase request → PDF documents: stamps request PDF
- Contract workflow → File attachments: handles PDF files
- Purchase request → In-app notifications: notifies participants
- Application intake → In-app notifications: notifies participants
- Specialist assignment → In-app notifications: notifies participants
- Contract workflow → In-app notifications: notifies participants
- Page actions → Audit history: records actions
- Page actions → Dashboard: renders dashboard
- Page actions → Reports: renders reports
- Page actions → Report exports: serves exports
- Dashboard → Domain records: queries records
- Reports → Domain records: queries records
- Report exports → Domain records: exports data
- Page actions → Jinja pages: renders pages
