# meghaz1-f3/rabita-b architecture

> Architecture diagram of the GitHub repository meghaz1-f3/rabita-b, 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/meghaz1-f3/rabita-b
- Repository: https://github.com/meghaz1-f3/rabita-b

## Overview

This is a Django-backed academic portal with role-specific faculty, principal, and student interfaces. The workflow spans account and student approval, subject assignment, attendance and assignment activity, and internal and semester results; notices provide a separate communication capability. The excerpts establish several view-to-model relationships and subject/user dependencies, but do not show frontend API calls or Django route wiring, so those links are omitted. Major user-facing modules not sampled are retained as subsystem nodes where the tree supports them.

Main entry points: [`backend/users/views.py`](https://github.com/meghaz1-f3/rabita-b/blob/main/backend/users/views.py) (Accounts & approval), [`backend/subjects/models.py`](https://github.com/meghaz1-f3/rabita-b/blob/main/backend/subjects/models.py) (Subject records), [`backend/results/views.py`](https://github.com/meghaz1-f3/rabita-b/blob/main/backend/results/views.py) (Marks & result review), [`backend/users/models.py`](https://github.com/meghaz1-f3/rabita-b/blob/main/backend/users/models.py) (User records)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_identity["Identity &amp; Administration"]
  node_user_api["Accounts &amp; approval<br/>[views.py]"]
  node_user_model[("User records<br/>[models.py]")]
  node_user_forms["User forms<br/>[forms.py]"]
  node_principal_ui["Principal workspace"]
  node_faculty_ui["Faculty workspace"]
  node_student_ui["Student workspace"]
end

subgraph group_academics["Academic Setup"]
  node_subjects_api["Subject lookup<br/>[views.py]"]
  node_subject_model[("Subject records<br/>[models.py]")]
end

subgraph group_classwork["Classwork"]
  node_assignments_api["Assignment workflow<br/>[views.py]"]
  node_assignment_model[("Assignments &amp; submissions<br/>[models.py]")]
end

subgraph group_records["Attendance &amp; Results"]
  node_attendance_api["Attendance workflow<br/>[views.py]"]
  node_attendance_model[("Attendance records<br/>[models.py]")]
  node_results_api["Marks &amp; result review<br/>[views.py]"]
  node_results_model[("Result records<br/>[models.py]")]
end

subgraph group_communication["Notices"]
  node_notices_api["Notice listing<br/>[views.py]"]
  node_notice_model[("Notice records<br/>[models.py]")]
end

node_actors(("Portal users"))

node_actors -->|"sign in"| node_user_api
node_user_api -->|"reads and updates"| node_user_model
node_user_model --> node_user_forms
node_user_api -.-> node_principal_ui
node_user_api -.-> node_faculty_ui
node_user_api -.-> node_student_ui
node_actors -->|"request subjects"| node_subjects_api
node_subjects_api -->|"queries"| node_subject_model
node_subject_model -->|"assigned faculty"| node_user_model
node_actors -.->|"manage work"| node_assignments_api
node_assignments_api -->|"reads and writes"| node_assignment_model
node_assignments_api -->|"checks subject"| node_subject_model
node_actors -.->|"manage attendance"| node_attendance_api
node_attendance_api -->|"reads and writes"| node_attendance_model
node_attendance_api -->|"checks subject"| node_subject_model
node_actors -.->|"manage results"| node_results_api
node_results_api -->|"reads and writes"| node_results_model
node_results_api -->|"checks subject"| node_subject_model
node_results_api -->|"checks student"| node_user_model
node_actors -.->|"view notices"| node_notices_api
node_notices_api -->|"queries"| node_notice_model

click node_user_api "https://github.com/meghaz1-f3/rabita-b/blob/main/backend/users/views.py"
click node_user_model "https://github.com/meghaz1-f3/rabita-b/blob/main/backend/users/models.py"
click node_user_forms "https://github.com/meghaz1-f3/rabita-b/blob/main/backend/users/forms.py"
click node_principal_ui "https://github.com/meghaz1-f3/rabita-b/tree/main/Frontend/js/Principal"
click node_faculty_ui "https://github.com/meghaz1-f3/rabita-b/tree/main/Frontend/js/Faculty"
click node_student_ui "https://github.com/meghaz1-f3/rabita-b/tree/main/Frontend/js/Student"
click node_subjects_api "https://github.com/meghaz1-f3/rabita-b/blob/main/backend/subjects/views.py"
click node_subject_model "https://github.com/meghaz1-f3/rabita-b/blob/main/backend/subjects/models.py"
click node_assignments_api "https://github.com/meghaz1-f3/rabita-b/blob/main/backend/assignments/views.py"
click node_assignment_model "https://github.com/meghaz1-f3/rabita-b/blob/main/backend/assignments/models.py"
click node_attendance_api "https://github.com/meghaz1-f3/rabita-b/blob/main/backend/attendance/views.py"
click node_attendance_model "https://github.com/meghaz1-f3/rabita-b/blob/main/backend/attendance/models.py"
click node_results_api "https://github.com/meghaz1-f3/rabita-b/blob/main/backend/results/views.py"
click node_results_model "https://github.com/meghaz1-f3/rabita-b/blob/main/backend/results/models.py"
click node_notices_api "https://github.com/meghaz1-f3/rabita-b/blob/main/backend/notices/views.py"
click node_notice_model "https://github.com/meghaz1-f3/rabita-b/blob/main/backend/notices/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_user_api,node_user_model,node_user_forms,node_principal_ui,node_faculty_ui,node_student_ui,node_actors toneBlue
class node_subjects_api,node_subject_model toneAmber
class node_assignments_api,node_assignment_model toneMint
class node_attendance_api,node_attendance_model,node_results_api,node_results_model toneRose
class node_notices_api,node_notice_model toneIndigo
```

## Components

### Identity & Administration

- [Accounts & approval](https://github.com/meghaz1-f3/rabita-b/blob/main/backend/users/views.py): `backend/users/views.py`
- [User records](https://github.com/meghaz1-f3/rabita-b/blob/main/backend/users/models.py): `backend/users/models.py`
- [User forms](https://github.com/meghaz1-f3/rabita-b/blob/main/backend/users/forms.py): `backend/users/forms.py`
- [Principal workspace](https://github.com/meghaz1-f3/rabita-b/tree/main/Frontend/js/Principal): `Frontend/js/Principal`
- [Faculty workspace](https://github.com/meghaz1-f3/rabita-b/tree/main/Frontend/js/Faculty): `Frontend/js/Faculty`
- [Student workspace](https://github.com/meghaz1-f3/rabita-b/tree/main/Frontend/js/Student): `Frontend/js/Student`

### Academic Setup

- [Subject lookup](https://github.com/meghaz1-f3/rabita-b/blob/main/backend/subjects/views.py): `backend/subjects/views.py`
- [Subject records](https://github.com/meghaz1-f3/rabita-b/blob/main/backend/subjects/models.py): `backend/subjects/models.py`

### Classwork

- [Assignment workflow](https://github.com/meghaz1-f3/rabita-b/blob/main/backend/assignments/views.py): `backend/assignments/views.py`
- [Assignments & submissions](https://github.com/meghaz1-f3/rabita-b/blob/main/backend/assignments/models.py): `backend/assignments/models.py`

### Attendance & Results

- [Attendance workflow](https://github.com/meghaz1-f3/rabita-b/blob/main/backend/attendance/views.py): `backend/attendance/views.py`
- [Attendance records](https://github.com/meghaz1-f3/rabita-b/blob/main/backend/attendance/models.py): `backend/attendance/models.py`
- [Marks & result review](https://github.com/meghaz1-f3/rabita-b/blob/main/backend/results/views.py): `backend/results/views.py`
- [Result records](https://github.com/meghaz1-f3/rabita-b/blob/main/backend/results/models.py): `backend/results/models.py`

### Notices

- [Notice listing](https://github.com/meghaz1-f3/rabita-b/blob/main/backend/notices/views.py): `backend/notices/views.py`
- [Notice records](https://github.com/meghaz1-f3/rabita-b/blob/main/backend/notices/models.py): `backend/notices/models.py`

### Other components

- **Portal users**

## Connections

- Portal users → Accounts & approval: sign in (evidence: `backend/users/views.py`)
- Accounts & approval → User records: reads and updates (evidence: `backend/users/views.py`)
- User records → User forms (evidence: `backend/users/admin.py`)
- Accounts & approval → Principal workspace
- Accounts & approval → Faculty workspace
- Accounts & approval → Student workspace
- Portal users → Subject lookup: request subjects (evidence: `backend/subjects/views.py`)
- Subject lookup → Subject records: queries (evidence: `backend/subjects/views.py`)
- Subject records → User records: assigned faculty (evidence: `backend/subjects/models.py`)
- Portal users → Assignment workflow: manage work
- Assignment workflow → Assignments & submissions: reads and writes (evidence: `backend/assignments/views.py`)
- Assignment workflow → Subject records: checks subject (evidence: `backend/assignments/views.py`)
- Portal users → Attendance workflow: manage attendance
- Attendance workflow → Attendance records: reads and writes (evidence: `backend/attendance/views.py`)
- Attendance workflow → Subject records: checks subject (evidence: `backend/attendance/views.py`)
- Portal users → Marks & result review: manage results
- Marks & result review → Result records: reads and writes (evidence: `backend/results/views.py`)
- Marks & result review → Subject records: checks subject (evidence: `backend/results/views.py`)
- Marks & result review → User records: checks student (evidence: `backend/results/views.py`)
- Portal users → Notice listing: view notices
- Notice listing → Notice records: queries (evidence: `backend/notices/views.py`)
