# aqeelafzal7/roomjudge1 architecture

> Architecture diagram of the GitHub repository aqeelafzal7/roomjudge1, 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/aqeelafzal7/roomjudge1
- Repository: https://github.com/aqeelafzal7/roomjudge1

## Overview

This appears to be a Firebase-backed event-room platform for creating rooms, collecting entries, assigning judges, evaluating submissions, and administering results. The principal flow runs from sign-in and room management through room entry and judging; the app also exposes public submission and voting routes, certificate verification, and administrator tools. Sampled code confirms Firebase authentication and Firestore access, evaluation writes, and image-upload forwarding. Some routed features are not present in the supplied tree, so their implementation links are omitted or use the enclosing components directory.

Main entry points: [`src/App.tsx`](https://github.com/aqeelafzal7/roomjudge1/blob/main/src/App.tsx) (App routing), [`src/components/AuthScreen.tsx`](https://github.com/aqeelafzal7/roomjudge1/blob/main/src/components/AuthScreen.tsx) (Sign-in), [`src/components/DashboardScreen.tsx`](https://github.com/aqeelafzal7/roomjudge1/blob/main/src/components/DashboardScreen.tsx) (Room dashboard), [`src/components/RoomJudgeView.tsx`](https://github.com/aqeelafzal7/roomjudge1/blob/main/src/components/RoomJudgeView.tsx) (Judge evaluation)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_access["Access and rooms"]
  node_app["App routing<br/>[App.tsx]"]
  node_auth["Sign-in<br/>[AuthScreen.tsx]"]
  node_dashboard["Room dashboard"]
  node_roomcreate["Room creation<br/>[RoomCreator.tsx]"]
end

subgraph group_event["Event participation"]
  node_gateway["Evaluation gateway"]
  node_judge["Judge evaluation<br/>[RoomJudgeView.tsx]"]
  node_submission["Public submissions"]
  node_voting["Public voting"]
  node_certgen["Certificate generation"]
  node_verify["Certificate verification"]
end

subgraph group_admin["Administration"]
  node_roomadmin["Room administration"]
  node_superadmin["Platform administration"]
  node_feedback["Ideas and support<br/>[FeedbackHub.tsx]"]
  node_appeal["Appeal chat"]
end

subgraph group_platform["Platform services"]
  node_firebase["Firebase setup<br/>[firebase.ts]"]
  node_authsvc["Firebase Auth"]
  node_firestore[("Firestore")]
  node_uploadapi["Image upload endpoint<br/>[server.ts]"]
end

node_person(("Participant or judge"))
node_imgbb["ImgBB"]

node_person -->|"uses"| node_app
node_app -->|"routes"| node_auth
node_app -->|"routes"| node_dashboard
node_app -->|"routes"| node_gateway
node_app -->|"routes"| node_roomadmin
node_app -->|"routes"| node_superadmin
node_app -->|"routes"| node_submission
node_app -->|"routes"| node_voting
node_app -->|"routes"| node_verify
node_app -->|"renders"| node_appeal
node_auth -->|"authenticates"| node_authsvc
node_auth -->|"creates user record"| node_firestore
node_dashboard -->|"opens"| node_roomcreate
node_dashboard -->|"reads and updates"| node_firestore
node_roomadmin -->|"manages room data"| node_firestore
node_roomadmin -->|"reads submissions"| node_firestore
node_gateway -->|"opens evaluation"| node_judge
node_judge -->|"reads and saves scores"| node_firestore
node_judge -->|"generates PDF"| node_certgen
node_superadmin -->|"reads and moderates"| node_firestore
node_feedback -->|"reads and writes"| node_firestore
node_app -->|"tracks sign-in"| node_authsvc
node_app -->|"checks account status"| node_firestore
node_uploadapi -->|"forwards image"| node_imgbb
node_firebase -->|"initializes"| node_authsvc
node_firebase -->|"initializes"| node_firestore

click node_app "https://github.com/aqeelafzal7/roomjudge1/blob/main/src/App.tsx"
click node_auth "https://github.com/aqeelafzal7/roomjudge1/blob/main/src/components/AuthScreen.tsx"
click node_dashboard "https://github.com/aqeelafzal7/roomjudge1/blob/main/src/components/DashboardScreen.tsx"
click node_roomcreate "https://github.com/aqeelafzal7/roomjudge1/blob/main/src/components/RoomCreator.tsx"
click node_gateway "https://github.com/aqeelafzal7/roomjudge1/blob/main/src/components/EvaluationGateway.tsx"
click node_judge "https://github.com/aqeelafzal7/roomjudge1/blob/main/src/components/RoomJudgeView.tsx"
click node_submission "https://github.com/aqeelafzal7/roomjudge1/tree/main/src/components"
click node_voting "https://github.com/aqeelafzal7/roomjudge1/tree/main/src/components"
click node_certgen "https://github.com/aqeelafzal7/roomjudge1/blob/main/src/components/CertificateGenerator.tsx"
click node_verify "https://github.com/aqeelafzal7/roomjudge1/blob/main/src/components/VerifyCertificate.tsx"
click node_roomadmin "https://github.com/aqeelafzal7/roomjudge1/blob/main/src/components/AdminRoomDashboard.tsx"
click node_superadmin "https://github.com/aqeelafzal7/roomjudge1/blob/main/src/components/SuperAdminDashboard.tsx"
click node_feedback "https://github.com/aqeelafzal7/roomjudge1/blob/main/src/components/FeedbackHub.tsx"
click node_appeal "https://github.com/aqeelafzal7/roomjudge1/blob/main/src/components/AppealChatModal.tsx"
click node_firebase "https://github.com/aqeelafzal7/roomjudge1/blob/main/src/firebase.ts"
click node_uploadapi "https://github.com/aqeelafzal7/roomjudge1/blob/main/server.ts"

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_app,node_auth,node_dashboard,node_roomcreate toneBlue
class node_gateway,node_judge,node_submission,node_voting,node_certgen,node_verify toneAmber
class node_roomadmin,node_superadmin,node_feedback,node_appeal toneMint
class node_firebase,node_authsvc,node_firestore,node_uploadapi toneRose
class node_person,node_imgbb toneIndigo
```

## Components

### Access and rooms

- [App routing](https://github.com/aqeelafzal7/roomjudge1/blob/main/src/App.tsx): `src/App.tsx`
- [Sign-in](https://github.com/aqeelafzal7/roomjudge1/blob/main/src/components/AuthScreen.tsx): `src/components/AuthScreen.tsx`
- [Room dashboard](https://github.com/aqeelafzal7/roomjudge1/blob/main/src/components/DashboardScreen.tsx): `src/components/DashboardScreen.tsx`
- [Room creation](https://github.com/aqeelafzal7/roomjudge1/blob/main/src/components/RoomCreator.tsx): `src/components/RoomCreator.tsx`

### Event participation

- [Evaluation gateway](https://github.com/aqeelafzal7/roomjudge1/blob/main/src/components/EvaluationGateway.tsx): `src/components/EvaluationGateway.tsx`
- [Judge evaluation](https://github.com/aqeelafzal7/roomjudge1/blob/main/src/components/RoomJudgeView.tsx): `src/components/RoomJudgeView.tsx`
- [Public submissions](https://github.com/aqeelafzal7/roomjudge1/tree/main/src/components): `src/components`
- [Public voting](https://github.com/aqeelafzal7/roomjudge1/tree/main/src/components): `src/components`
- [Certificate generation](https://github.com/aqeelafzal7/roomjudge1/blob/main/src/components/CertificateGenerator.tsx): `src/components/CertificateGenerator.tsx`
- [Certificate verification](https://github.com/aqeelafzal7/roomjudge1/blob/main/src/components/VerifyCertificate.tsx): `src/components/VerifyCertificate.tsx`

### Administration

- [Room administration](https://github.com/aqeelafzal7/roomjudge1/blob/main/src/components/AdminRoomDashboard.tsx): `src/components/AdminRoomDashboard.tsx`
- [Platform administration](https://github.com/aqeelafzal7/roomjudge1/blob/main/src/components/SuperAdminDashboard.tsx): `src/components/SuperAdminDashboard.tsx`
- [Ideas and support](https://github.com/aqeelafzal7/roomjudge1/blob/main/src/components/FeedbackHub.tsx): `src/components/FeedbackHub.tsx`
- [Appeal chat](https://github.com/aqeelafzal7/roomjudge1/blob/main/src/components/AppealChatModal.tsx): `src/components/AppealChatModal.tsx`

### Platform services

- [Firebase setup](https://github.com/aqeelafzal7/roomjudge1/blob/main/src/firebase.ts): `src/firebase.ts`
- **Firebase Auth**
- **Firestore**
- [Image upload endpoint](https://github.com/aqeelafzal7/roomjudge1/blob/main/server.ts): `server.ts`

### Other components

- **Participant or judge**
- **ImgBB**

## Connections

- Participant or judge → App routing: uses
- App routing → Sign-in: routes
- App routing → Room dashboard: routes
- App routing → Evaluation gateway: routes
- App routing → Room administration: routes
- App routing → Platform administration: routes
- App routing → Public submissions: routes
- App routing → Public voting: routes
- App routing → Certificate verification: routes
- App routing → Appeal chat: renders
- Sign-in → Firebase Auth: authenticates
- Sign-in → Firestore: creates user record
- Room dashboard → Room creation: opens
- Room dashboard → Firestore: reads and updates
- Room administration → Firestore: manages room data
- Room administration → Firestore: reads submissions
- Evaluation gateway → Judge evaluation: opens evaluation
- Judge evaluation → Firestore: reads and saves scores
- Judge evaluation → Certificate generation: generates PDF
- Platform administration → Firestore: reads and moderates
- Ideas and support → Firestore: reads and writes
- App routing → Firebase Auth: tracks sign-in
- App routing → Firestore: checks account status
- Image upload endpoint → ImgBB: forwards image
- Firebase setup → Firebase Auth: initializes
- Firebase setup → Firestore: initializes
