# soviion/flask-admin-panel architecture

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

- Interactive diagram: https://gitdiagram.com/soviion/flask-admin-panel
- Repository: https://github.com/soviion/flask-admin-panel

## Overview

This is a Flask-based administrative portal for managing university events, student participation and records, with reporting, document generation, account administration, and system operations. The main workflow is an administrator using the web interface to manage events and participants, then reviewing participation or generating related documents. The tree and excerpts support the route and browser areas shown; several modules are unsampled, so their internal behavior and some wiring are not expanded.

Main entry points: [`app/__init__.py`](https://github.com/soviion/flask-admin-panel/blob/main/app/__init__.py) (Flask application), [`app/routes/_events/events.py`](https://github.com/soviion/flask-admin-panel/blob/main/app/routes/_events/events.py) (Event operations), [`app/routes/_dokladnye/dokladnye.py`](https://github.com/soviion/flask-admin-panel/blob/main/app/routes/_dokladnye/dokladnye.py) (Dokladnye documents), [`app/routes/system_monitor.py`](https://github.com/soviion/flask-admin-panel/blob/main/app/routes/system_monitor.py) (System monitoring)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_web["Admin workflows"]
  node_browser["Admin browser"]
  node_event_ui["Event management UI<br/>[events.js]"]
  node_event_edit_ui["Event detail editor"]
  node_event_analytics_ui["Event analytics UI"]
  node_student_ui["Student management UI<br/>[students.js]"]
  node_student_export_ui["Student export builder<br/>[export_builder.js]"]
  node_dok_ui["Document workflow UI<br/>[dokladnye.js]"]
  node_monitor_ui["System monitor UI<br/>[sys_monitor.js]"]
  node_dashboard["Dashboard<br/>[dashboard.py]"]
end

subgraph group_domain["Events and records"]
  node_events["Event operations<br/>[events.py]"]
  node_event_create["Event creation<br/>[events_create.py]"]
  node_event_analytics["Participation analytics"]
  node_students["Student records<br/>[students.py]"]
  node_documents["Dokladnye documents<br/>[dokladnye.py]"]
  node_analytics["Portal analytics<br/>[analytics.py]"]
  node_notifications["Event notifications"]
  node_publisher["Event publisher<br/>[event_publisher.py]"]
  node_docx["DOCX generator<br/>[docx_generator.py]"]
end

subgraph group_ops["Administration"]
  node_auth["Authentication<br/>[auth.py]"]
  node_registration["Registration monitor"]
  node_system["System monitoring<br/>[system_monitor.py]"]
  node_backup_restore["Backup and restore"]
  node_backup_scheduler["Planned backup scheduler"]
end

subgraph group_core["Application core"]
  node_models["Domain models<br/>[models.py]"]
  node_app_factory["Flask application<br/>[__init__.py]"]
  node_db[("Application database")]
end

node_admin(("Administrator"))
node_telegram["Telegram service"]
node_email["Email service"]

node_admin -->|"uses"| node_browser
node_browser -->|"sends requests"| node_app_factory
node_app_factory -->|"registers routes"| node_auth
node_app_factory -->|"registers routes"| node_dashboard
node_app_factory -->|"registers routes"| node_events
node_app_factory -->|"registers routes"| node_event_create
node_app_factory -->|"registers routes"| node_event_analytics
node_app_factory -->|"registers routes"| node_students
node_app_factory -->|"registers routes"| node_documents
node_app_factory -->|"registers routes"| node_system
node_app_factory -->|"registers routes"| node_registration
node_app_factory -->|"registers routes"| node_analytics
node_event_ui -->|"calls API"| node_events
node_event_edit_ui -->|"calls API"| node_events
node_event_edit_ui -->|"calls API"| node_event_create
node_events -->|"reads and writes"| node_db
node_event_create -->|"writes"| node_db
node_event_analytics -->|"queries"| node_db
node_event_analytics_ui -->|"calls API"| node_event_analytics
node_events -->|"requests notices"| node_notifications
node_notifications -->|"sends messages"| node_telegram
node_student_ui -->|"calls API"| node_students
node_student_export_ui -->|"requests export data"| node_students
node_students -->|"reads and writes"| node_db
node_dok_ui -->|"calls API"| node_documents
node_documents -->|"reads and writes"| node_db
node_documents -->|"generates documents"| node_docx
node_dashboard -->|"queries"| node_db
node_analytics -->|"queries"| node_db
node_auth -->|"loads user records"| node_models
node_auth -->|"sends messages"| node_email
node_monitor_ui -->|"requests panels"| node_system
node_system -->|"queries"| node_db
node_system -->|"runs backup operations"| node_backup_restore
node_backup_restore -->|"backs up or restores"| node_db
node_backup_scheduler -->|"records backup state"| node_db
node_app_factory -->|"initializes data layer"| node_models
node_models -->|"maps entities"| node_db

click node_event_ui "https://github.com/soviion/flask-admin-panel/blob/main/app/static/js/_events/events.js"
click node_event_edit_ui "https://github.com/soviion/flask-admin-panel/blob/main/app/static/js/_events/events-edit-modal.js"
click node_event_analytics_ui "https://github.com/soviion/flask-admin-panel/blob/main/app/static/js/_events/events-analytics.js"
click node_student_ui "https://github.com/soviion/flask-admin-panel/blob/main/app/static/js/_students/students.js"
click node_student_export_ui "https://github.com/soviion/flask-admin-panel/blob/main/app/static/js/_students/export_builder.js"
click node_dok_ui "https://github.com/soviion/flask-admin-panel/blob/main/app/static/js/dokladnye.js"
click node_monitor_ui "https://github.com/soviion/flask-admin-panel/blob/main/app/static/js/sys_monitor.js"
click node_auth "https://github.com/soviion/flask-admin-panel/blob/main/app/routes/auth.py"
click node_events "https://github.com/soviion/flask-admin-panel/blob/main/app/routes/_events/events.py"
click node_event_create "https://github.com/soviion/flask-admin-panel/blob/main/app/routes/_events/events_create.py"
click node_event_analytics "https://github.com/soviion/flask-admin-panel/blob/main/app/routes/_events/events_analytics.py"
click node_students "https://github.com/soviion/flask-admin-panel/blob/main/app/routes/students.py"
click node_documents "https://github.com/soviion/flask-admin-panel/blob/main/app/routes/_dokladnye/dokladnye.py"
click node_analytics "https://github.com/soviion/flask-admin-panel/blob/main/app/routes/analytics.py"
click node_dashboard "https://github.com/soviion/flask-admin-panel/blob/main/app/routes/dashboard.py"
click node_registration "https://github.com/soviion/flask-admin-panel/blob/main/app/routes/registration_monitor.py"
click node_system "https://github.com/soviion/flask-admin-panel/blob/main/app/routes/system_monitor.py"
click node_models "https://github.com/soviion/flask-admin-panel/blob/main/app/models.py"
click node_app_factory "https://github.com/soviion/flask-admin-panel/blob/main/app/__init__.py"
click node_notifications "https://github.com/soviion/flask-admin-panel/blob/main/app/services/event_notifications.py"
click node_publisher "https://github.com/soviion/flask-admin-panel/blob/main/app/services/event_publisher.py"
click node_backup_restore "https://github.com/soviion/flask-admin-panel/blob/main/app/utils/db_backup_restore.py"
click node_backup_scheduler "https://github.com/soviion/flask-admin-panel/blob/main/app/utils/planned_db_backup_scheduler.py"
click node_docx "https://github.com/soviion/flask-admin-panel/blob/main/app/utils/docx_generator.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_browser,node_event_ui,node_event_edit_ui,node_event_analytics_ui,node_student_ui,node_student_export_ui,node_dok_ui,node_monitor_ui,node_dashboard toneBlue
class node_events,node_event_create,node_event_analytics,node_students,node_documents,node_analytics,node_notifications,node_publisher,node_docx toneAmber
class node_auth,node_registration,node_system,node_backup_restore,node_backup_scheduler toneMint
class node_models,node_app_factory,node_db toneRose
class node_admin,node_telegram,node_email toneIndigo
```

## Components

### Admin workflows

- **Admin browser**
- [Event management UI](https://github.com/soviion/flask-admin-panel/blob/main/app/static/js/_events/events.js): `app/static/js/_events/events.js`
- [Event detail editor](https://github.com/soviion/flask-admin-panel/blob/main/app/static/js/_events/events-edit-modal.js): `app/static/js/_events/events-edit-modal.js`
- [Event analytics UI](https://github.com/soviion/flask-admin-panel/blob/main/app/static/js/_events/events-analytics.js): `app/static/js/_events/events-analytics.js`
- [Student management UI](https://github.com/soviion/flask-admin-panel/blob/main/app/static/js/_students/students.js): `app/static/js/_students/students.js`
- [Student export builder](https://github.com/soviion/flask-admin-panel/blob/main/app/static/js/_students/export_builder.js): `app/static/js/_students/export_builder.js`
- [Document workflow UI](https://github.com/soviion/flask-admin-panel/blob/main/app/static/js/dokladnye.js): `app/static/js/dokladnye.js`
- [System monitor UI](https://github.com/soviion/flask-admin-panel/blob/main/app/static/js/sys_monitor.js): `app/static/js/sys_monitor.js`
- [Dashboard](https://github.com/soviion/flask-admin-panel/blob/main/app/routes/dashboard.py): `app/routes/dashboard.py`

### Events and records

- [Event operations](https://github.com/soviion/flask-admin-panel/blob/main/app/routes/_events/events.py): `app/routes/_events/events.py`
- [Event creation](https://github.com/soviion/flask-admin-panel/blob/main/app/routes/_events/events_create.py): `app/routes/_events/events_create.py`
- [Participation analytics](https://github.com/soviion/flask-admin-panel/blob/main/app/routes/_events/events_analytics.py): `app/routes/_events/events_analytics.py`
- [Student records](https://github.com/soviion/flask-admin-panel/blob/main/app/routes/students.py): `app/routes/students.py`
- [Dokladnye documents](https://github.com/soviion/flask-admin-panel/blob/main/app/routes/_dokladnye/dokladnye.py): `app/routes/_dokladnye/dokladnye.py`
- [Portal analytics](https://github.com/soviion/flask-admin-panel/blob/main/app/routes/analytics.py): `app/routes/analytics.py`
- [Event notifications](https://github.com/soviion/flask-admin-panel/blob/main/app/services/event_notifications.py): `app/services/event_notifications.py`
- [Event publisher](https://github.com/soviion/flask-admin-panel/blob/main/app/services/event_publisher.py): `app/services/event_publisher.py`
- [DOCX generator](https://github.com/soviion/flask-admin-panel/blob/main/app/utils/docx_generator.py): `app/utils/docx_generator.py`

### Administration

- [Authentication](https://github.com/soviion/flask-admin-panel/blob/main/app/routes/auth.py): `app/routes/auth.py`
- [Registration monitor](https://github.com/soviion/flask-admin-panel/blob/main/app/routes/registration_monitor.py): `app/routes/registration_monitor.py`
- [System monitoring](https://github.com/soviion/flask-admin-panel/blob/main/app/routes/system_monitor.py): `app/routes/system_monitor.py`
- [Backup and restore](https://github.com/soviion/flask-admin-panel/blob/main/app/utils/db_backup_restore.py): `app/utils/db_backup_restore.py`
- [Planned backup scheduler](https://github.com/soviion/flask-admin-panel/blob/main/app/utils/planned_db_backup_scheduler.py): `app/utils/planned_db_backup_scheduler.py`

### Application core

- [Domain models](https://github.com/soviion/flask-admin-panel/blob/main/app/models.py): `app/models.py`
- [Flask application](https://github.com/soviion/flask-admin-panel/blob/main/app/__init__.py): `app/__init__.py`
- **Application database**

### Other components

- **Administrator**
- **Telegram service**
- **Email service**

## Connections

- Administrator → Admin browser: uses
- Admin browser → Flask application: sends requests
- Flask application → Authentication: registers routes
- Flask application → Dashboard: registers routes
- Flask application → Event operations: registers routes
- Flask application → Event creation: registers routes
- Flask application → Participation analytics: registers routes
- Flask application → Student records: registers routes
- Flask application → Dokladnye documents: registers routes
- Flask application → System monitoring: registers routes
- Flask application → Registration monitor: registers routes
- Flask application → Portal analytics: registers routes
- Event management UI → Event operations: calls API
- Event detail editor → Event operations: calls API
- Event detail editor → Event creation: calls API
- Event operations → Application database: reads and writes
- Event creation → Application database: writes
- Participation analytics → Application database: queries
- Event analytics UI → Participation analytics: calls API
- Event operations → Event notifications: requests notices
- Event notifications → Telegram service: sends messages
- Student management UI → Student records: calls API
- Student export builder → Student records: requests export data
- Student records → Application database: reads and writes
- Document workflow UI → Dokladnye documents: calls API
- Dokladnye documents → Application database: reads and writes
- Dokladnye documents → DOCX generator: generates documents
- Dashboard → Application database: queries
- Portal analytics → Application database: queries
- Authentication → Domain models: loads user records
- Authentication → Email service: sends messages
- System monitor UI → System monitoring: requests panels
- System monitoring → Application database: queries
- System monitoring → Backup and restore: runs backup operations
- Backup and restore → Application database: backs up or restores
- Planned backup scheduler → Application database: records backup state
- Flask application → Domain models: initializes data layer
- Domain models → Application database: maps entities
