# zubairad/meeras_django_backend architecture

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

- Interactive diagram: https://gitdiagram.com/zubairad/meeras_django_backend
- Repository: https://github.com/zubairad/meeras_django_backend

## Overview

Meeras is a Django REST API for NGO coordination. The principal workflow is an API client submitting or retrieving a help request, with the backend enforcing access rules, serializing data, and persisting domain records; NGO admins can assign helpers and mark requests complete. The README also documents user and token management, inventory, personnel, broadcasts, and chat. The Flutter tree contains native platform runners and plugin registration, but no Dart product logic is present in the supplied tree. Some endpoint behavior is documented rather than shown in source.

Main entry points: [`core/urls.py`](https://github.com/zubairad/meeras_django_backend/blob/main/core/urls.py) (API routes), [`core/serializers.py`](https://github.com/zubairad/meeras_django_backend/blob/main/core/serializers.py) (Data serializers), [`core/models.py`](https://github.com/zubairad/meeras_django_backend/blob/main/core/models.py) (Domain records), [`core/permissions.py`](https://github.com/zubairad/meeras_django_backend/blob/main/core/permissions.py) (Access policies)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_api["API boundary"]
  node_routes["API routes<br/>[urls.py]"]
  node_tokens["JWT tokens"]
end

subgraph group_coordination["Request coordination"]
  node_help["Help requests<br/>[views.py]"]
  node_broadcasts["Broadcasts<br/>[views.py]"]
  node_chat["Community chat<br/>[views.py]"]
end

subgraph group_operations["NGO operations"]
  node_inventory["Inventory<br/>[views.py]"]
  node_personnel["Personnel<br/>[views.py]"]
end

subgraph group_shared["Shared domain services"]
  node_users["User accounts<br/>[views.py]"]
  node_serializers["Data serializers<br/>[serializers.py]"]
  node_permissions["Access policies<br/>[permissions.py]"]
  node_domain[("Domain records<br/>[models.py]")]
end

node_client(("API client"))

node_client -->|"calls API"| node_routes
node_client -->|"requests tokens"| node_tokens
node_routes -->|"routes requests"| node_users
node_routes -->|"routes requests"| node_help
node_routes -->|"routes requests"| node_inventory
node_routes -->|"routes requests"| node_personnel
node_routes -->|"routes requests"| node_broadcasts
node_routes -->|"routes requests"| node_chat
node_users -->|"serializes data"| node_serializers
node_help -->|"serializes data"| node_serializers
node_inventory -->|"serializes data"| node_serializers
node_personnel -->|"serializes data"| node_serializers
node_broadcasts -->|"serializes data"| node_serializers
node_chat -->|"serializes data"| node_serializers
node_users -->|"checks access"| node_permissions
node_help -->|"checks access"| node_permissions
node_inventory -->|"checks access"| node_permissions
node_broadcasts -->|"checks access"| node_permissions
node_chat -->|"checks access"| node_permissions
node_serializers -->|"maps records"| node_domain
node_users -->|"reads and writes"| node_domain
node_help -->|"reads and writes"| node_domain
node_inventory -->|"reads and writes"| node_domain
node_personnel -->|"reads and writes"| node_domain
node_broadcasts -->|"reads and writes"| node_domain
node_chat -->|"reads and writes"| node_domain

click node_routes "https://github.com/zubairad/meeras_django_backend/blob/main/core/urls.py"
click node_users "https://github.com/zubairad/meeras_django_backend/blob/main/core/views.py"
click node_tokens "https://github.com/zubairad/meeras_django_backend/tree/main/core"
click node_help "https://github.com/zubairad/meeras_django_backend/blob/main/core/views.py"
click node_inventory "https://github.com/zubairad/meeras_django_backend/blob/main/core/views.py"
click node_personnel "https://github.com/zubairad/meeras_django_backend/blob/main/core/views.py"
click node_broadcasts "https://github.com/zubairad/meeras_django_backend/blob/main/core/views.py"
click node_chat "https://github.com/zubairad/meeras_django_backend/blob/main/core/views.py"
click node_serializers "https://github.com/zubairad/meeras_django_backend/blob/main/core/serializers.py"
click node_permissions "https://github.com/zubairad/meeras_django_backend/blob/main/core/permissions.py"
click node_domain "https://github.com/zubairad/meeras_django_backend/blob/main/core/models.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_tokens,node_client toneBlue
class node_help,node_broadcasts,node_chat toneAmber
class node_inventory,node_personnel toneMint
class node_users,node_serializers,node_permissions,node_domain toneRose
```

## Components

### API boundary

- [API routes](https://github.com/zubairad/meeras_django_backend/blob/main/core/urls.py): `core/urls.py`
- [JWT tokens](https://github.com/zubairad/meeras_django_backend/tree/main/core): `core`

### Request coordination

- [Help requests](https://github.com/zubairad/meeras_django_backend/blob/main/core/views.py): `core/views.py`
- [Broadcasts](https://github.com/zubairad/meeras_django_backend/blob/main/core/views.py): `core/views.py`
- [Community chat](https://github.com/zubairad/meeras_django_backend/blob/main/core/views.py): `core/views.py`

### NGO operations

- [Inventory](https://github.com/zubairad/meeras_django_backend/blob/main/core/views.py): `core/views.py`
- [Personnel](https://github.com/zubairad/meeras_django_backend/blob/main/core/views.py): `core/views.py`

### Shared domain services

- [User accounts](https://github.com/zubairad/meeras_django_backend/blob/main/core/views.py): `core/views.py`
- [Data serializers](https://github.com/zubairad/meeras_django_backend/blob/main/core/serializers.py): `core/serializers.py`
- [Access policies](https://github.com/zubairad/meeras_django_backend/blob/main/core/permissions.py): `core/permissions.py`
- [Domain records](https://github.com/zubairad/meeras_django_backend/blob/main/core/models.py): `core/models.py`

### Other components

- **API client**

## Connections

- API client → API routes: calls API
- API client → JWT tokens: requests tokens
- API routes → User accounts: routes requests (evidence: `core/urls.py`)
- API routes → Help requests: routes requests (evidence: `core/urls.py`)
- API routes → Inventory: routes requests (evidence: `core/urls.py`)
- API routes → Personnel: routes requests (evidence: `core/urls.py`)
- API routes → Broadcasts: routes requests (evidence: `core/urls.py`)
- API routes → Community chat: routes requests (evidence: `core/urls.py`)
- User accounts → Data serializers: serializes data (evidence: `core/views.py`)
- Help requests → Data serializers: serializes data (evidence: `core/views.py`)
- Inventory → Data serializers: serializes data (evidence: `core/views.py`)
- Personnel → Data serializers: serializes data (evidence: `core/views.py`)
- Broadcasts → Data serializers: serializes data (evidence: `core/views.py`)
- Community chat → Data serializers: serializes data (evidence: `core/views.py`)
- User accounts → Access policies: checks access (evidence: `core/views.py`)
- Help requests → Access policies: checks access (evidence: `core/views.py`)
- Inventory → Access policies: checks access (evidence: `core/views.py`)
- Broadcasts → Access policies: checks access (evidence: `core/views.py`)
- Community chat → Access policies: checks access (evidence: `core/views.py`)
- Data serializers → Domain records: maps records (evidence: `core/serializers.py`)
- User accounts → Domain records: reads and writes (evidence: `core/views.py`)
- Help requests → Domain records: reads and writes (evidence: `core/views.py`)
- Inventory → Domain records: reads and writes (evidence: `core/views.py`)
- Personnel → Domain records: reads and writes (evidence: `core/views.py`)
- Broadcasts → Domain records: reads and writes (evidence: `core/views.py`)
- Community chat → Domain records: reads and writes (evidence: `core/views.py`)
