# zeniismatullah/mynebla_app architecture

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

- Interactive diagram: https://gitdiagram.com/zeniismatullah/mynebla_app
- Repository: https://github.com/zeniismatullah/mynebla_app

## Overview

This appears to be a Django school-management application, with modules for assessments, academic records, grades, attendance, teacher duties, homeroom management, and users. The tree and sampled code support these capability areas, but no README or view/URL source was provided, so detailed screen-to-screen workflows and most inter-app calls cannot be verified. The assessment utilities show DOCX parsing with media storage and an AI client with model fallbacks.

Main entry points: [`my_nebla_project/context_processors.py`](https://github.com/zeniismatullah/mynebla_app/blob/main/my_nebla_project/context_processors.py) (Global context), [`asesmen/docx_parser.py`](https://github.com/zeniismatullah/mynebla_app/blob/main/asesmen/docx_parser.py) (DOCX question parser), [`asesmen/ai_service.py`](https://github.com/zeniismatullah/mynebla_app/blob/main/asesmen/ai_service.py) (AI service client), [`my_nebla_project/urls.py`](https://github.com/zeniismatullah/mynebla_app/blob/main/my_nebla_project/urls.py) (Project URLs)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_platform["Web platform"]
  node_web_urls["Project URLs<br/>[urls.py]"]
  node_global_context["Global context"]
  node_user_views["User features<br/>[views.py]"]
  node_user_models[("User records<br/>[models.py]")]
end

subgraph group_assessment["Assessment"]
  node_assessment_views["Assessment features<br/>[views.py]"]
  node_student_assessment["Student assessments<br/>[views_siswa.py]"]
  node_assessment_models[("Assessment records<br/>[models.py]")]
  node_docx_parser["DOCX question parser<br/>[docx_parser.py]"]
  node_ai_service["AI service client<br/>[ai_service.py]"]
end

subgraph group_academics["Academic records"]
  node_academic_views["Academic features<br/>[views.py]"]
  node_academic_models[("Academic records<br/>[models.py]")]
  node_grade_views["Grade features<br/>[views.py]"]
  node_grade_models[("Grade records<br/>[models.py]")]
  node_homeroom_views["Homeroom features<br/>[views.py]"]
  node_homeroom_models[("Homeroom records<br/>[models.py]")]
end

subgraph group_operations["School operations"]
  node_attendance_views["Attendance features<br/>[views.py]"]
  node_attendance_models[("Attendance records<br/>[models.py]")]
  node_duty_views["Teacher duty features<br/>[views.py]"]
  node_duty_models[("Duty schedules<br/>[models.py]")]
end

node_school_user(("School user"))
node_media_storage[("Django media storage")]
node_kenari_api{{"Kenari API"}}

node_school_user -->|"requests pages"| node_web_urls
node_global_context -->|"checks today's duty"| node_duty_models
node_docx_parser -->|"saves images"| node_media_storage
node_ai_service -.->|"requests completions"| node_kenari_api

click node_web_urls "https://github.com/zeniismatullah/mynebla_app/blob/main/my_nebla_project/urls.py"
click node_global_context "https://github.com/zeniismatullah/mynebla_app/blob/main/my_nebla_project/context_processors.py"
click node_user_views "https://github.com/zeniismatullah/mynebla_app/blob/main/users/views.py"
click node_user_models "https://github.com/zeniismatullah/mynebla_app/blob/main/users/models.py"
click node_assessment_views "https://github.com/zeniismatullah/mynebla_app/blob/main/asesmen/views.py"
click node_student_assessment "https://github.com/zeniismatullah/mynebla_app/blob/main/asesmen/views_siswa.py"
click node_assessment_models "https://github.com/zeniismatullah/mynebla_app/blob/main/asesmen/models.py"
click node_docx_parser "https://github.com/zeniismatullah/mynebla_app/blob/main/asesmen/docx_parser.py"
click node_ai_service "https://github.com/zeniismatullah/mynebla_app/blob/main/asesmen/ai_service.py"
click node_academic_views "https://github.com/zeniismatullah/mynebla_app/blob/main/akademik/views.py"
click node_academic_models "https://github.com/zeniismatullah/mynebla_app/blob/main/akademik/models.py"
click node_grade_views "https://github.com/zeniismatullah/mynebla_app/blob/main/nilai/views.py"
click node_grade_models "https://github.com/zeniismatullah/mynebla_app/blob/main/nilai/models.py"
click node_homeroom_views "https://github.com/zeniismatullah/mynebla_app/blob/main/walikelas/views.py"
click node_homeroom_models "https://github.com/zeniismatullah/mynebla_app/blob/main/walikelas/models.py"
click node_attendance_views "https://github.com/zeniismatullah/mynebla_app/blob/main/kehadiran/views.py"
click node_attendance_models "https://github.com/zeniismatullah/mynebla_app/blob/main/kehadiran/models.py"
click node_duty_views "https://github.com/zeniismatullah/mynebla_app/blob/main/gurupiket/views.py"
click node_duty_models "https://github.com/zeniismatullah/mynebla_app/blob/main/gurupiket/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_web_urls,node_global_context,node_user_views,node_user_models,node_school_user toneBlue
class node_assessment_views,node_student_assessment,node_assessment_models,node_docx_parser,node_ai_service,node_media_storage toneAmber
class node_academic_views,node_academic_models,node_grade_views,node_grade_models,node_homeroom_views,node_homeroom_models,node_kenari_api toneMint
class node_attendance_views,node_attendance_models,node_duty_views,node_duty_models toneRose
```

## Components

### Web platform

- [Project URLs](https://github.com/zeniismatullah/mynebla_app/blob/main/my_nebla_project/urls.py): `my_nebla_project/urls.py`
- [Global context](https://github.com/zeniismatullah/mynebla_app/blob/main/my_nebla_project/context_processors.py): `my_nebla_project/context_processors.py`
- [User features](https://github.com/zeniismatullah/mynebla_app/blob/main/users/views.py): `users/views.py`
- [User records](https://github.com/zeniismatullah/mynebla_app/blob/main/users/models.py): `users/models.py`

### Assessment

- [Assessment features](https://github.com/zeniismatullah/mynebla_app/blob/main/asesmen/views.py): `asesmen/views.py`
- [Student assessments](https://github.com/zeniismatullah/mynebla_app/blob/main/asesmen/views_siswa.py): `asesmen/views_siswa.py`
- [Assessment records](https://github.com/zeniismatullah/mynebla_app/blob/main/asesmen/models.py): `asesmen/models.py`
- [DOCX question parser](https://github.com/zeniismatullah/mynebla_app/blob/main/asesmen/docx_parser.py): `asesmen/docx_parser.py`
- [AI service client](https://github.com/zeniismatullah/mynebla_app/blob/main/asesmen/ai_service.py): `asesmen/ai_service.py`

### Academic records

- [Academic features](https://github.com/zeniismatullah/mynebla_app/blob/main/akademik/views.py): `akademik/views.py`
- [Academic records](https://github.com/zeniismatullah/mynebla_app/blob/main/akademik/models.py): `akademik/models.py`
- [Grade features](https://github.com/zeniismatullah/mynebla_app/blob/main/nilai/views.py): `nilai/views.py`
- [Grade records](https://github.com/zeniismatullah/mynebla_app/blob/main/nilai/models.py): `nilai/models.py`
- [Homeroom features](https://github.com/zeniismatullah/mynebla_app/blob/main/walikelas/views.py): `walikelas/views.py`
- [Homeroom records](https://github.com/zeniismatullah/mynebla_app/blob/main/walikelas/models.py): `walikelas/models.py`

### School operations

- [Attendance features](https://github.com/zeniismatullah/mynebla_app/blob/main/kehadiran/views.py): `kehadiran/views.py`
- [Attendance records](https://github.com/zeniismatullah/mynebla_app/blob/main/kehadiran/models.py): `kehadiran/models.py`
- [Teacher duty features](https://github.com/zeniismatullah/mynebla_app/blob/main/gurupiket/views.py): `gurupiket/views.py`
- [Duty schedules](https://github.com/zeniismatullah/mynebla_app/blob/main/gurupiket/models.py): `gurupiket/models.py`

### Other components

- **School user**
- **Django media storage**
- **Kenari API**

## Connections

- School user → Project URLs: requests pages
- Global context → Duty schedules: checks today's duty
- DOCX question parser → Django media storage: saves images
- AI service client → Kenari API: requests completions
