# elmiraclee/uniqueue_mobile architecture

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

## Overview

UniQueue is an Expo mobile app for student queue requests and office-side queue/configuration work. The visible student journey is selecting an office, reviewing queue type, requirements, documents, quantities and priority, then submitting and viewing the live queue; students can also inspect history or cancel a current request. Office staff have queue-monitoring and configuration screens, with a separate admin home. Wiring beyond the sampled excerpts is represented only where the routes and responsibilities are evident; backend calls are shown where source explicitly demonstrates them.

Main entry points: [`app/student/queues/office-queue.tsx`](https://github.com/elmiraclee/uniqueue_mobile/blob/main/app/student/queues/office-queue.tsx) (Queue request wizard), [`app/office/configuration.tsx`](https://github.com/elmiraclee/uniqueue_mobile/blob/main/app/office/configuration.tsx) (Office configuration), [`app/student/home.tsx`](https://github.com/elmiraclee/uniqueue_mobile/blob/main/app/student/home.tsx) (Student home), [`components/queue/current-queue-modal.tsx`](https://github.com/elmiraclee/uniqueue_mobile/blob/main/components/queue/current-queue-modal.tsx) (Current queue details)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_student["Student queue"]
  node_student_home["Student home<br/>[home.tsx]"]
  node_queue_request["Queue request wizard<br/>[office-queue.tsx]"]
  node_wizard_steps["Request steps<br/>[review-step.tsx]"]
  node_live_queue["Live queue<br/>[live-queue.tsx]"]
  node_current_queue["Current queue details"]
  node_queue_history["Queue history<br/>[queue.tsx]"]
  node_profile["Student profile<br/>[profile.tsx]"]
end

subgraph group_office["Office operations"]
  node_office_home["Office dashboard<br/>[home.tsx]"]
  node_office_queue["Queue monitor<br/>[queue.tsx]"]
  node_office_config["Office configuration<br/>[configuration.tsx]"]
  node_window_config["Window setup<br/>[window.tsx]"]
  node_capacity_config["Capacity setup<br/>[capacity.tsx]"]
  node_staff_config["Staff setup<br/>[staff.tsx]"]
  node_document_config["Document setup<br/>[document.tsx]"]
end

subgraph group_access["Access and routing"]
  node_app_start["App entry<br/>[index.tsx]"]
  node_login["Sign in<br/>[login.tsx]"]
  node_signup["Sign up<br/>[signup.tsx]"]
  node_admin_home["Admin home<br/>[home.tsx]"]
end

subgraph group_shared["Shared UI"]
  node_backend_config["Backend endpoints<br/>[backend.ts]"]
  node_header["App header<br/>[app-header.tsx]"]
  node_theme["Theme tokens<br/>[theme.ts]"]
end

node_student_actor(("Student"))
node_staff_actor(("Office staff"))
node_backend_service["Queue backend"]

node_student_actor -->|"opens"| node_app_start
node_app_start -->|"redirects"| node_login
node_student_actor -->|"signs in"| node_login
node_student_actor -->|"registers"| node_signup
node_student_actor -->|"uses"| node_student_home
node_student_home -->|"starts request"| node_queue_request
node_queue_request -->|"renders steps"| node_wizard_steps
node_queue_request -->|"uses endpoints"| node_backend_config
node_queue_request -->|"loads office data"| node_backend_service
node_queue_request -->|"submits request"| node_backend_service
node_student_home -->|"opens details"| node_current_queue
node_current_queue -->|"uses endpoints"| node_backend_config
node_current_queue -->|"loads or cancels"| node_backend_service
node_current_queue -->|"opens live view"| node_live_queue
node_student_actor -->|"views history"| node_queue_history
node_student_actor -->|"manages profile"| node_profile
node_staff_actor -->|"uses"| node_office_home
node_office_home -->|"opens queue"| node_office_queue
node_office_home -->|"opens settings"| node_office_config
node_office_config -->|"opens windows"| node_window_config
node_office_config -->|"opens capacity"| node_capacity_config
node_office_config -->|"opens staff"| node_staff_config
node_office_config -->|"opens documents"| node_document_config
node_staff_actor -->|"administers"| node_admin_home
node_student_home -->|"renders"| node_header
node_office_queue -->|"renders"| node_header
node_header -->|"uses colors"| node_theme

click node_app_start "https://github.com/elmiraclee/uniqueue_mobile/blob/main/app/index.tsx"
click node_login "https://github.com/elmiraclee/uniqueue_mobile/blob/main/app/login.tsx"
click node_signup "https://github.com/elmiraclee/uniqueue_mobile/blob/main/app/signup.tsx"
click node_student_home "https://github.com/elmiraclee/uniqueue_mobile/blob/main/app/student/home.tsx"
click node_queue_request "https://github.com/elmiraclee/uniqueue_mobile/blob/main/app/student/queues/office-queue.tsx"
click node_wizard_steps "https://github.com/elmiraclee/uniqueue_mobile/blob/main/components/queue-step/review-step.tsx"
click node_live_queue "https://github.com/elmiraclee/uniqueue_mobile/blob/main/app/student/live-queue.tsx"
click node_current_queue "https://github.com/elmiraclee/uniqueue_mobile/blob/main/components/queue/current-queue-modal.tsx"
click node_queue_history "https://github.com/elmiraclee/uniqueue_mobile/blob/main/app/student/queue.tsx"
click node_profile "https://github.com/elmiraclee/uniqueue_mobile/blob/main/app/student/profile.tsx"
click node_office_home "https://github.com/elmiraclee/uniqueue_mobile/blob/main/app/office/home.tsx"
click node_office_queue "https://github.com/elmiraclee/uniqueue_mobile/blob/main/app/office/queue.tsx"
click node_office_config "https://github.com/elmiraclee/uniqueue_mobile/blob/main/app/office/configuration.tsx"
click node_window_config "https://github.com/elmiraclee/uniqueue_mobile/blob/main/app/office/config/window.tsx"
click node_capacity_config "https://github.com/elmiraclee/uniqueue_mobile/blob/main/app/office/config/capacity.tsx"
click node_staff_config "https://github.com/elmiraclee/uniqueue_mobile/blob/main/app/office/config/staff.tsx"
click node_document_config "https://github.com/elmiraclee/uniqueue_mobile/blob/main/app/office/config/document.tsx"
click node_admin_home "https://github.com/elmiraclee/uniqueue_mobile/blob/main/app/admin/home.tsx"
click node_backend_config "https://github.com/elmiraclee/uniqueue_mobile/blob/main/constants/backend.ts"
click node_header "https://github.com/elmiraclee/uniqueue_mobile/blob/main/components/layout/app-header.tsx"
click node_theme "https://github.com/elmiraclee/uniqueue_mobile/blob/main/constants/theme.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_student_home,node_queue_request,node_wizard_steps,node_live_queue,node_current_queue,node_queue_history,node_profile toneBlue
class node_office_home,node_office_queue,node_office_config,node_window_config,node_capacity_config,node_staff_config,node_document_config toneAmber
class node_app_start,node_login,node_signup,node_admin_home toneMint
class node_backend_config,node_header,node_theme,node_backend_service toneRose
class node_student_actor,node_staff_actor toneIndigo
```

## Components

### Student queue

- [Student home](https://github.com/elmiraclee/uniqueue_mobile/blob/main/app/student/home.tsx): `app/student/home.tsx`
- [Queue request wizard](https://github.com/elmiraclee/uniqueue_mobile/blob/main/app/student/queues/office-queue.tsx): `app/student/queues/office-queue.tsx`
- [Request steps](https://github.com/elmiraclee/uniqueue_mobile/blob/main/components/queue-step/review-step.tsx): `components/queue-step/review-step.tsx`
- [Live queue](https://github.com/elmiraclee/uniqueue_mobile/blob/main/app/student/live-queue.tsx): `app/student/live-queue.tsx`
- [Current queue details](https://github.com/elmiraclee/uniqueue_mobile/blob/main/components/queue/current-queue-modal.tsx): `components/queue/current-queue-modal.tsx`
- [Queue history](https://github.com/elmiraclee/uniqueue_mobile/blob/main/app/student/queue.tsx): `app/student/queue.tsx`
- [Student profile](https://github.com/elmiraclee/uniqueue_mobile/blob/main/app/student/profile.tsx): `app/student/profile.tsx`

### Office operations

- [Office dashboard](https://github.com/elmiraclee/uniqueue_mobile/blob/main/app/office/home.tsx): `app/office/home.tsx`
- [Queue monitor](https://github.com/elmiraclee/uniqueue_mobile/blob/main/app/office/queue.tsx): `app/office/queue.tsx`
- [Office configuration](https://github.com/elmiraclee/uniqueue_mobile/blob/main/app/office/configuration.tsx): `app/office/configuration.tsx`
- [Window setup](https://github.com/elmiraclee/uniqueue_mobile/blob/main/app/office/config/window.tsx): `app/office/config/window.tsx`
- [Capacity setup](https://github.com/elmiraclee/uniqueue_mobile/blob/main/app/office/config/capacity.tsx): `app/office/config/capacity.tsx`
- [Staff setup](https://github.com/elmiraclee/uniqueue_mobile/blob/main/app/office/config/staff.tsx): `app/office/config/staff.tsx`
- [Document setup](https://github.com/elmiraclee/uniqueue_mobile/blob/main/app/office/config/document.tsx): `app/office/config/document.tsx`

### Access and routing

- [App entry](https://github.com/elmiraclee/uniqueue_mobile/blob/main/app/index.tsx): `app/index.tsx`
- [Sign in](https://github.com/elmiraclee/uniqueue_mobile/blob/main/app/login.tsx): `app/login.tsx`
- [Sign up](https://github.com/elmiraclee/uniqueue_mobile/blob/main/app/signup.tsx): `app/signup.tsx`
- [Admin home](https://github.com/elmiraclee/uniqueue_mobile/blob/main/app/admin/home.tsx): `app/admin/home.tsx`

### Shared UI

- [Backend endpoints](https://github.com/elmiraclee/uniqueue_mobile/blob/main/constants/backend.ts): `constants/backend.ts`
- [App header](https://github.com/elmiraclee/uniqueue_mobile/blob/main/components/layout/app-header.tsx): `components/layout/app-header.tsx`
- [Theme tokens](https://github.com/elmiraclee/uniqueue_mobile/blob/main/constants/theme.ts): `constants/theme.ts`

### Other components

- **Student**
- **Office staff**
- **Queue backend**

## Connections

- Student → App entry: opens
- App entry → Sign in: redirects
- Student → Sign in: signs in
- Student → Sign up: registers
- Student → Student home: uses
- Student home → Queue request wizard: starts request
- Queue request wizard → Request steps: renders steps
- Queue request wizard → Backend endpoints: uses endpoints
- Queue request wizard → Queue backend: loads office data
- Queue request wizard → Queue backend: submits request
- Student home → Current queue details: opens details
- Current queue details → Backend endpoints: uses endpoints
- Current queue details → Queue backend: loads or cancels
- Current queue details → Live queue: opens live view
- Student → Queue history: views history
- Student → Student profile: manages profile
- Office staff → Office dashboard: uses
- Office dashboard → Queue monitor: opens queue
- Office dashboard → Office configuration: opens settings
- Office configuration → Window setup: opens windows
- Office configuration → Capacity setup: opens capacity
- Office configuration → Staff setup: opens staff
- Office configuration → Document setup: opens documents
- Office staff → Admin home: administers
- Student home → App header: renders
- Queue monitor → App header: renders
- App header → Theme tokens: uses colors
