# ianduman-ag/final-eventtab-system-web architecture

> Architecture diagram of the GitHub repository ianduman-ag/final-eventtab-system-web, 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/ianduman-ag/final-eventtab-system-web
- Repository: https://github.com/ianduman-ag/final-eventtab-system-web

## Overview

EventTabs is a Django event-management portal for role-based administration, event setup and operation, judging, results review, and reporting. The principal workflow is users entering event data, the system validating and storing it, judges submitting scores or match outcomes, and authorized staff reviewing results and producing reports. The tree and README establish these product areas; sampled services show criteria and match-event processing, faculty review, reporting, and administration. Some controller-to-service wiring is not shown, so those links are omitted.

Main entry points: [`events/models.py`](https://github.com/ianduman-ag/final-eventtab-system-web/blob/main/events/models.py) (Event and score records), [`core/urls.py`](https://github.com/ianduman-ag/final-eventtab-system-web/blob/main/core/urls.py) (Web routing), [`events/superadmin_service.py`](https://github.com/ianduman-ag/final-eventtab-system-web/blob/main/events/superadmin_service.py) (User and event oversight), [`events/criteria_event_service.py`](https://github.com/ianduman-ag/final-eventtab-system-web/blob/main/events/criteria_event_service.py) (Criteria event setup)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_access["Access and administration"]
  node_accounts["Account access<br/>[views.py]"]
  node_superadmin["Superadmin tools"]
  node_superadmin_service["User and event oversight"]
end

subgraph group_events["Event operations"]
  node_admin_events["Event administration<br/>[views.py]"]
  node_criteria_service["Criteria event setup"]
  node_match_service["Match setup and brackets"]
  node_bracket_tools["Bracket generation"]
  node_mobile_api["Mobile event API<br/>[mobile_views.py]"]
  node_mobile_sync["Mobile synchronization<br/>[mobile_sync.py]"]
end

subgraph group_results["Judging and reporting"]
  node_judging["Judge workflows<br/>[judging_views.py]"]
  node_criteria_scoring["Criteria scoring"]
  node_faculty_review["Faculty review<br/>[faculty_service.py]"]
  node_reports["Report generation"]
end

subgraph group_platform["Platform and data"]
  node_django_routes["Web routing<br/>[urls.py]"]
  node_event_models["Event and score records<br/>[models.py]"]
  node_postgres[("PostgreSQL")]
  node_image_storage["Image storage<br/>[storage.py]"]
end

node_portal_users(("Portal users"))
node_browser(("Web browser"))
node_cloudinary[("Cloudinary")]

node_portal_users -->|"use portal"| node_browser
node_browser -->|"send requests"| node_django_routes
node_django_routes -->|"route requests"| node_accounts
node_django_routes -->|"route requests"| node_superadmin
node_django_routes -->|"route requests"| node_admin_events
node_django_routes -->|"route requests"| node_judging
node_django_routes -->|"route requests"| node_mobile_api
node_superadmin_service -->|"read and update"| node_event_models
node_criteria_service -->|"validate and persist"| node_event_models
node_match_service -->|"persist matches"| node_event_models
node_faculty_review -->|"read and update"| node_event_models
node_reports -->|"read event data"| node_event_models
node_criteria_scoring -->|"process scores"| node_event_models
node_mobile_sync -->|"synchronize data"| node_event_models
node_event_models -->|"store records"| node_postgres
node_image_storage -.->|"store images"| node_cloudinary

click node_django_routes "https://github.com/ianduman-ag/final-eventtab-system-web/blob/main/core/urls.py"
click node_accounts "https://github.com/ianduman-ag/final-eventtab-system-web/blob/main/accounts/views.py"
click node_superadmin "https://github.com/ianduman-ag/final-eventtab-system-web/blob/main/core/superadmin_views.py"
click node_superadmin_service "https://github.com/ianduman-ag/final-eventtab-system-web/blob/main/events/superadmin_service.py"
click node_admin_events "https://github.com/ianduman-ag/final-eventtab-system-web/blob/main/events/views.py"
click node_criteria_service "https://github.com/ianduman-ag/final-eventtab-system-web/blob/main/events/criteria_event_service.py"
click node_match_service "https://github.com/ianduman-ag/final-eventtab-system-web/blob/main/events/match_event_service.py"
click node_bracket_tools "https://github.com/ianduman-ag/final-eventtab-system-web/blob/main/events/bracket_generator.py"
click node_judging "https://github.com/ianduman-ag/final-eventtab-system-web/blob/main/events/judging_views.py"
click node_criteria_scoring "https://github.com/ianduman-ag/final-eventtab-system-web/blob/main/events/criteria_scoring.py"
click node_faculty_review "https://github.com/ianduman-ag/final-eventtab-system-web/blob/main/events/faculty_service.py"
click node_reports "https://github.com/ianduman-ag/final-eventtab-system-web/blob/main/events/admin_report_service.py"
click node_mobile_api "https://github.com/ianduman-ag/final-eventtab-system-web/blob/main/events/mobile_views.py"
click node_mobile_sync "https://github.com/ianduman-ag/final-eventtab-system-web/blob/main/events/mobile_sync.py"
click node_event_models "https://github.com/ianduman-ag/final-eventtab-system-web/blob/main/events/models.py"
click node_image_storage "https://github.com/ianduman-ag/final-eventtab-system-web/blob/main/core/storage.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_accounts,node_superadmin,node_superadmin_service,node_portal_users,node_browser toneBlue
class node_admin_events,node_criteria_service,node_match_service,node_bracket_tools,node_mobile_api,node_mobile_sync,node_cloudinary toneAmber
class node_judging,node_criteria_scoring,node_faculty_review,node_reports toneMint
class node_django_routes,node_event_models,node_postgres,node_image_storage toneRose
```

## Components

### Access and administration

- [Account access](https://github.com/ianduman-ag/final-eventtab-system-web/blob/main/accounts/views.py): `accounts/views.py`
- [Superadmin tools](https://github.com/ianduman-ag/final-eventtab-system-web/blob/main/core/superadmin_views.py): `core/superadmin_views.py`
- [User and event oversight](https://github.com/ianduman-ag/final-eventtab-system-web/blob/main/events/superadmin_service.py): `events/superadmin_service.py`

### Event operations

- [Event administration](https://github.com/ianduman-ag/final-eventtab-system-web/blob/main/events/views.py): `events/views.py`
- [Criteria event setup](https://github.com/ianduman-ag/final-eventtab-system-web/blob/main/events/criteria_event_service.py): `events/criteria_event_service.py`
- [Match setup and brackets](https://github.com/ianduman-ag/final-eventtab-system-web/blob/main/events/match_event_service.py): `events/match_event_service.py`
- [Bracket generation](https://github.com/ianduman-ag/final-eventtab-system-web/blob/main/events/bracket_generator.py): `events/bracket_generator.py`
- [Mobile event API](https://github.com/ianduman-ag/final-eventtab-system-web/blob/main/events/mobile_views.py): `events/mobile_views.py`
- [Mobile synchronization](https://github.com/ianduman-ag/final-eventtab-system-web/blob/main/events/mobile_sync.py): `events/mobile_sync.py`

### Judging and reporting

- [Judge workflows](https://github.com/ianduman-ag/final-eventtab-system-web/blob/main/events/judging_views.py): `events/judging_views.py`
- [Criteria scoring](https://github.com/ianduman-ag/final-eventtab-system-web/blob/main/events/criteria_scoring.py): `events/criteria_scoring.py`
- [Faculty review](https://github.com/ianduman-ag/final-eventtab-system-web/blob/main/events/faculty_service.py): `events/faculty_service.py`
- [Report generation](https://github.com/ianduman-ag/final-eventtab-system-web/blob/main/events/admin_report_service.py): `events/admin_report_service.py`

### Platform and data

- [Web routing](https://github.com/ianduman-ag/final-eventtab-system-web/blob/main/core/urls.py): `core/urls.py`
- [Event and score records](https://github.com/ianduman-ag/final-eventtab-system-web/blob/main/events/models.py): `events/models.py`
- **PostgreSQL**
- [Image storage](https://github.com/ianduman-ag/final-eventtab-system-web/blob/main/core/storage.py): `core/storage.py`

### Other components

- **Portal users**
- **Web browser**
- **Cloudinary**

## Connections

- Portal users → Web browser: use portal
- Web browser → Web routing: send requests
- Web routing → Account access: route requests
- Web routing → Superadmin tools: route requests
- Web routing → Event administration: route requests
- Web routing → Judge workflows: route requests
- Web routing → Mobile event API: route requests
- User and event oversight → Event and score records: read and update
- Criteria event setup → Event and score records: validate and persist
- Match setup and brackets → Event and score records: persist matches
- Faculty review → Event and score records: read and update
- Report generation → Event and score records: read event data
- Criteria scoring → Event and score records: process scores
- Mobile synchronization → Event and score records: synchronize data
- Event and score records → PostgreSQL: store records
- Image storage → Cloudinary: store images
