# abdurrahim2705/student_management_system architecture

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

- Interactive diagram: https://gitdiagram.com/abdurrahim2705/student_management_system
- Repository: https://github.com/abdurrahim2705/student_management_system

## Overview

This is a small command-line student management system. A user selects actions in the main menu; the program loads student records, performs requested searches or changes, displays analytics, and saves changes to a text file. Management operations work on Student objects, while storage converts between those objects and comma-separated records. The source excerpts show the main call paths; there is no README, and student.py is empty, so no behavior is attributed to it.

Main entry points: [`main.py`](https://github.com/abdurrahim2705/student_management_system/blob/dev/main.py) (Main menu), [`students.py`](https://github.com/abdurrahim2705/student_management_system/blob/dev/students.py) (Student model), [`storage.py`](https://github.com/abdurrahim2705/student_management_system/blob/dev/storage.py) (Record storage), [`management.py`](https://github.com/abdurrahim2705/student_management_system/blob/dev/management.py) (Search students)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_interface["Command-line interface"]
  node_menu["Main menu<br/>[main.py]"]
end

subgraph group_operations["Student operations"]
  node_search["Search students<br/>[management.py]"]
  node_add["Add student<br/>[management.py]"]
  node_update["Update student<br/>[management.py]"]
  node_delete["Delete student<br/>[management.py]"]
  node_analytics["Student analytics<br/>[management.py]"]
end

subgraph group_domain["Student domain"]
  node_student["Student model<br/>[students.py]"]
end

subgraph group_persistence["File persistence"]
  node_storage["Record storage<br/>[storage.py]"]
  node_records[("Student records<br/>[students.txt]")]
end

node_user(("User"))

node_user -->|"selects actions"| node_menu
node_menu -->|"loads records"| node_storage
node_menu -->|"dispatches search"| node_search
node_menu -->|"dispatches add"| node_add
node_menu -->|"dispatches update"| node_update
node_menu -->|"dispatches delete"| node_delete
node_menu -->|"dispatches analytics"| node_analytics
node_menu -->|"saves changes"| node_storage
node_storage -->|"reads"| node_records
node_storage -->|"writes"| node_records
node_storage -->|"creates objects"| node_student
node_add -->|"creates object"| node_student
node_search -->|"matches fields"| node_student
node_update -->|"edits fields"| node_student
node_delete -->|"removes record"| node_student
node_analytics -->|"reads fields"| node_student

click node_menu "https://github.com/abdurrahim2705/student_management_system/blob/dev/main.py"
click node_search "https://github.com/abdurrahim2705/student_management_system/blob/dev/management.py"
click node_add "https://github.com/abdurrahim2705/student_management_system/blob/dev/management.py"
click node_update "https://github.com/abdurrahim2705/student_management_system/blob/dev/management.py"
click node_delete "https://github.com/abdurrahim2705/student_management_system/blob/dev/management.py"
click node_analytics "https://github.com/abdurrahim2705/student_management_system/blob/dev/management.py"
click node_student "https://github.com/abdurrahim2705/student_management_system/blob/dev/students.py"
click node_storage "https://github.com/abdurrahim2705/student_management_system/blob/dev/storage.py"
click node_records "https://github.com/abdurrahim2705/student_management_system/blob/dev/students.txt"

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_menu,node_user toneBlue
class node_search,node_add,node_update,node_delete,node_analytics toneAmber
class node_student toneMint
class node_storage,node_records toneRose
```

## Components

### Command-line interface

- [Main menu](https://github.com/abdurrahim2705/student_management_system/blob/dev/main.py): `main.py`

### Student operations

- [Search students](https://github.com/abdurrahim2705/student_management_system/blob/dev/management.py): `management.py`
- [Add student](https://github.com/abdurrahim2705/student_management_system/blob/dev/management.py): `management.py`
- [Update student](https://github.com/abdurrahim2705/student_management_system/blob/dev/management.py): `management.py`
- [Delete student](https://github.com/abdurrahim2705/student_management_system/blob/dev/management.py): `management.py`
- [Student analytics](https://github.com/abdurrahim2705/student_management_system/blob/dev/management.py): `management.py`

### Student domain

- [Student model](https://github.com/abdurrahim2705/student_management_system/blob/dev/students.py): `students.py`

### File persistence

- [Record storage](https://github.com/abdurrahim2705/student_management_system/blob/dev/storage.py): `storage.py`
- [Student records](https://github.com/abdurrahim2705/student_management_system/blob/dev/students.txt): `students.txt`

### Other components

- **User**

## Connections

- User → Main menu: selects actions (evidence: `main.py`)
- Main menu → Record storage: loads records (evidence: `main.py`)
- Main menu → Search students: dispatches search (evidence: `main.py`)
- Main menu → Add student: dispatches add (evidence: `main.py`)
- Main menu → Update student: dispatches update (evidence: `main.py`)
- Main menu → Delete student: dispatches delete (evidence: `main.py`)
- Main menu → Student analytics: dispatches analytics (evidence: `main.py`)
- Main menu → Record storage: saves changes (evidence: `main.py`)
- Record storage → Student records: reads (evidence: `storage.py`)
- Record storage → Student records: writes (evidence: `storage.py`)
- Record storage → Student model: creates objects (evidence: `storage.py`)
- Add student → Student model: creates object (evidence: `management.py`)
- Search students → Student model: matches fields (evidence: `management.py`)
- Update student → Student model: edits fields (evidence: `management.py`)
- Delete student → Student model: removes record (evidence: `management.py`)
- Student analytics → Student model: reads fields (evidence: `management.py`)
