# superman2775/qslides architecture

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

- Interactive diagram: https://gitdiagram.com/superman2775/qslides
- Repository: https://github.com/superman2775/qslides

## Overview

Qslides is currently a presentation-and-quiz concept site with email account signup, login, sessions, and a minimal authenticated dashboard. Its landing page describes a teacher workflow—create a presentation with questions, have students join and answer/react, then review understanding—but those classroom product stages are not implemented in the sampled runtime; only a static example picker is present. The graph distinguishes documented capabilities from implemented auth and storage, and avoids implying working presentation or classroom flows. Source excerpts do not establish additional product wiring.

Main entry points: [`lib/auth.ts`](https://github.com/superman2775/qslides/blob/main/lib/auth.ts) (Auth services), [`lib/db.ts`](https://github.com/superman2775/qslides/blob/main/lib/db.ts) (Database access), [`app/auth-screen.tsx`](https://github.com/superman2775/qslides/blob/main/app/auth-screen.tsx) (Auth forms), [`app/api/auth/signup/route.ts`](https://github.com/superman2775/qslides/blob/main/app/api/auth/signup/route.ts) (Signup endpoint)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_product["Presentation concept"]
  node_site["Qslides landing<br/>[page.tsx]"]
  node_example["Quiz example<br/>[interactive.tsx]"]
end

subgraph group_identity["Accounts and sessions"]
  node_authui["Auth forms<br/>[auth-screen.tsx]"]
  node_signup["Signup endpoint<br/>[route.ts]"]
  node_login["Login endpoint<br/>[route.ts]"]
  node_logout["Logout endpoint<br/>[route.ts]"]
  node_me["Session endpoint<br/>[route.ts]"]
  node_auth["Auth services<br/>[auth.ts]"]
  node_dashboard["User dashboard<br/>[page.tsx]"]
end

subgraph group_persistence["Persistence"]
  node_dbapi["Database access<br/>[db.ts]"]
  node_schema["User/session schema<br/>[schema.sql]"]
  node_store[("SQLite or Turso")]
end

node_teacher(("Teacher"))
node_students(("Students"))

node_teacher -->|"visits"| node_site
node_site -->|"renders"| node_example
node_students -->|"tries example"| node_example
node_teacher -->|"opens signup"| node_authui
node_authui -->|"submits account"| node_signup
node_authui -->|"submits credentials"| node_login
node_signup -->|"hashes and sessions"| node_auth
node_login -->|"verifies and sessions"| node_auth
node_logout -->|"destroys session"| node_auth
node_me -->|"checks session"| node_auth
node_dashboard -->|"checks user"| node_auth
node_auth -->|"queries and writes"| node_dbapi
node_signup -->|"checks and inserts user"| node_dbapi
node_login -->|"loads user"| node_dbapi
node_dbapi -->|"executes SQL"| node_store
node_dbapi -->|"initializes schema"| node_schema

click node_site "https://github.com/superman2775/qslides/blob/main/app/page.tsx"
click node_example "https://github.com/superman2775/qslides/blob/main/app/interactive.tsx"
click node_authui "https://github.com/superman2775/qslides/blob/main/app/auth-screen.tsx"
click node_signup "https://github.com/superman2775/qslides/blob/main/app/api/auth/signup/route.ts"
click node_login "https://github.com/superman2775/qslides/blob/main/app/api/auth/login/route.ts"
click node_logout "https://github.com/superman2775/qslides/blob/main/app/api/auth/logout/route.ts"
click node_me "https://github.com/superman2775/qslides/blob/main/app/api/auth/me/route.ts"
click node_auth "https://github.com/superman2775/qslides/blob/main/lib/auth.ts"
click node_dashboard "https://github.com/superman2775/qslides/blob/main/app/dashboard/page.tsx"
click node_dbapi "https://github.com/superman2775/qslides/blob/main/lib/db.ts"
click node_schema "https://github.com/superman2775/qslides/blob/main/database/schema.sql"

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_site,node_example toneBlue
class node_authui,node_signup,node_login,node_logout,node_me,node_auth,node_dashboard toneAmber
class node_dbapi,node_schema,node_store toneMint
class node_teacher,node_students toneIndigo
```

## Components

### Presentation concept

- [Qslides landing](https://github.com/superman2775/qslides/blob/main/app/page.tsx): `app/page.tsx`
- [Quiz example](https://github.com/superman2775/qslides/blob/main/app/interactive.tsx): `app/interactive.tsx`

### Accounts and sessions

- [Auth forms](https://github.com/superman2775/qslides/blob/main/app/auth-screen.tsx): `app/auth-screen.tsx`
- [Signup endpoint](https://github.com/superman2775/qslides/blob/main/app/api/auth/signup/route.ts): `app/api/auth/signup/route.ts`
- [Login endpoint](https://github.com/superman2775/qslides/blob/main/app/api/auth/login/route.ts): `app/api/auth/login/route.ts`
- [Logout endpoint](https://github.com/superman2775/qslides/blob/main/app/api/auth/logout/route.ts): `app/api/auth/logout/route.ts`
- [Session endpoint](https://github.com/superman2775/qslides/blob/main/app/api/auth/me/route.ts): `app/api/auth/me/route.ts`
- [Auth services](https://github.com/superman2775/qslides/blob/main/lib/auth.ts): `lib/auth.ts`
- [User dashboard](https://github.com/superman2775/qslides/blob/main/app/dashboard/page.tsx): `app/dashboard/page.tsx`

### Persistence

- [Database access](https://github.com/superman2775/qslides/blob/main/lib/db.ts): `lib/db.ts`
- [User/session schema](https://github.com/superman2775/qslides/blob/main/database/schema.sql): `database/schema.sql`
- **SQLite or Turso**

### Other components

- **Teacher**
- **Students**

## Connections

- Teacher → Qslides landing: visits
- Qslides landing → Quiz example: renders
- Students → Quiz example: tries example
- Teacher → Auth forms: opens signup
- Auth forms → Signup endpoint: submits account
- Auth forms → Login endpoint: submits credentials
- Signup endpoint → Auth services: hashes and sessions
- Login endpoint → Auth services: verifies and sessions
- Logout endpoint → Auth services: destroys session
- Session endpoint → Auth services: checks session
- User dashboard → Auth services: checks user
- Auth services → Database access: queries and writes
- Signup endpoint → Database access: checks and inserts user
- Login endpoint → Database access: loads user
- Database access → SQLite or Turso: executes SQL
- Database access → User/session schema: initializes schema
