# nexusmindcorp/nexusclass architecture

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

- Interactive diagram: https://gitdiagram.com/nexusmindcorp/nexusclass
- Repository: https://github.com/nexusmindcorp/nexusclass

## Overview

NexusClass is a school platform for students, teachers, and administrators. Its main workflow is to authenticate, enter a protected school dashboard, access class-based learning and communication features, and persist activity through Supabase; the README also documents Gemini tutoring and account deletion. The sampled hooks show direct Supabase operations for authentication, classes, calendar, posts, submissions, questions, and messages. Some feature wiring and backend jobs are documented but not sampled, so the graph shows documented capabilities without guessing their callers.

Main entry points: [`src/lib/supabaseClient.ts`](https://github.com/nexusmindcorp/nexusclass/blob/deploy/src/lib/supabaseClient.ts) (Supabase client), [`src/App.tsx`](https://github.com/nexusmindcorp/nexusclass/blob/deploy/src/App.tsx) (App router), [`src/hooks/MuralHooks/useMural.ts`](https://github.com/nexusmindcorp/nexusclass/blob/deploy/src/hooks/MuralHooks/useMural.ts) (Class wall), [`src/hooks/DuvidaHooks/useDuvidas.ts`](https://github.com/nexusmindcorp/nexusclass/blob/deploy/src/hooks/DuvidaHooks/useDuvidas.ts) (Student questions)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_access["Access and shell"]
  node_app["App router<br/>[App.tsx]"]
  node_login["Login<br/>[Login.tsx]"]
  node_guard["Protected route<br/>[ProtectedRoute.tsx]"]
  node_layout["School dashboard"]
  node_auth["Authentication<br/>[useAuth.ts]"]
end

subgraph group_school["School collaboration"]
  node_schooldata["School and classes<br/>[useEscolaDados.ts]"]
  node_enrollment["Class enrollment<br/>[useGerenciador.ts]"]
  node_wall["Class wall<br/>[useMural.ts]"]
  node_messages["Realtime messages<br/>[useMensagens.ts]"]
  node_calendar["Calendar events<br/>[useCalendario.ts]"]
  node_profile["User profiles"]
end

subgraph group_learning["Learning services"]
  node_questions["Student questions<br/>[useDuvidas.ts]"]
  node_activities["Activities and grading<br/>[useEntregas.ts]"]
  node_tutor["Tigreso tutor<br/>[useChatBot.ts]"]
end

subgraph group_platform["Platform services"]
  node_supabaseclient["Supabase client<br/>[supabaseClient.ts]"]
  node_database[("Supabase database")]
  node_storage[("Supabase Storage")]
  node_gemini["Gemini API"]
  node_deletefunction["Account deletion<br/>[index.ts]"]
  node_supabaseauth["Supabase Auth"]
end

node_user(("School user"))

node_user -->|"opens"| node_app
node_app -->|"routes public"| node_login
node_app -->|"protects dashboard"| node_guard
node_guard -->|"renders"| node_layout
node_auth -->|"loads session"| node_supabaseclient
node_supabaseclient -->|"authenticates"| node_supabaseauth
node_schooldata -->|"reads classes"| node_supabaseclient
node_enrollment -->|"updates enrollment"| node_supabaseclient
node_wall -->|"reads and writes posts"| node_supabaseclient
node_wall -->|"manages attachments"| node_storage
node_messages -->|"syncs messages"| node_supabaseclient
node_calendar -->|"manages events"| node_supabaseclient
node_questions -->|"manages questions"| node_supabaseclient
node_questions -->|"removes attachments"| node_storage
node_activities -->|"reads and grades"| node_supabaseclient
node_activities -->|"uploads submissions"| node_storage
node_tutor -.->|"requests responses"| node_gemini
node_tutor -.->|"uses platform data"| node_supabaseclient
node_profile -->|"reads profile"| node_supabaseclient
node_deletefunction -->|"deletes account"| node_supabaseauth
node_deletefunction -->|"purges files"| node_storage

click node_app "https://github.com/nexusmindcorp/nexusclass/blob/deploy/src/App.tsx"
click node_login "https://github.com/nexusmindcorp/nexusclass/blob/deploy/src/components/Login.tsx"
click node_guard "https://github.com/nexusmindcorp/nexusclass/blob/deploy/src/components/ProtectedRoute.tsx"
click node_layout "https://github.com/nexusmindcorp/nexusclass/blob/deploy/src/Layout/LayoutPrincipal.tsx"
click node_auth "https://github.com/nexusmindcorp/nexusclass/blob/deploy/src/hooks/AuthHooks/useAuth.ts"
click node_schooldata "https://github.com/nexusmindcorp/nexusclass/blob/deploy/src/hooks/LeituraDataHooks/useEscolaDados.ts"
click node_enrollment "https://github.com/nexusmindcorp/nexusclass/blob/deploy/src/hooks/GerenciadorHooks/useGerenciador.ts"
click node_wall "https://github.com/nexusmindcorp/nexusclass/blob/deploy/src/hooks/MuralHooks/useMural.ts"
click node_messages "https://github.com/nexusmindcorp/nexusclass/blob/deploy/src/hooks/MensagensHooks/useMensagens.ts"
click node_calendar "https://github.com/nexusmindcorp/nexusclass/blob/deploy/src/hooks/CalendarioHooks/useCalendario.ts"
click node_questions "https://github.com/nexusmindcorp/nexusclass/blob/deploy/src/hooks/DuvidaHooks/useDuvidas.ts"
click node_activities "https://github.com/nexusmindcorp/nexusclass/blob/deploy/src/hooks/EntregasHooks/useEntregas.ts"
click node_tutor "https://github.com/nexusmindcorp/nexusclass/blob/deploy/src/hooks/botsHooks/useChatBot.ts"
click node_profile "https://github.com/nexusmindcorp/nexusclass/blob/deploy/src/hooks/PerfilUserHooks/usePerfilUsuario.ts"
click node_supabaseclient "https://github.com/nexusmindcorp/nexusclass/blob/deploy/src/lib/supabaseClient.ts"
click node_deletefunction "https://github.com/nexusmindcorp/nexusclass/blob/deploy/supabase/functions/deletar-conta/index.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_login,node_guard,node_layout,node_auth,node_user toneBlue
class node_schooldata,node_enrollment,node_wall,node_messages,node_calendar,node_profile toneAmber
class node_questions,node_activities,node_tutor toneMint
class node_supabaseclient,node_database,node_storage,node_gemini,node_deletefunction,node_supabaseauth toneRose
```

## Components

### Access and shell

- [App router](https://github.com/nexusmindcorp/nexusclass/blob/deploy/src/App.tsx): `src/App.tsx`
- [Login](https://github.com/nexusmindcorp/nexusclass/blob/deploy/src/components/Login.tsx): `src/components/Login.tsx`
- [Protected route](https://github.com/nexusmindcorp/nexusclass/blob/deploy/src/components/ProtectedRoute.tsx): `src/components/ProtectedRoute.tsx`
- [School dashboard](https://github.com/nexusmindcorp/nexusclass/blob/deploy/src/Layout/LayoutPrincipal.tsx): `src/Layout/LayoutPrincipal.tsx`
- [Authentication](https://github.com/nexusmindcorp/nexusclass/blob/deploy/src/hooks/AuthHooks/useAuth.ts): `src/hooks/AuthHooks/useAuth.ts`

### School collaboration

- [School and classes](https://github.com/nexusmindcorp/nexusclass/blob/deploy/src/hooks/LeituraDataHooks/useEscolaDados.ts): `src/hooks/LeituraDataHooks/useEscolaDados.ts`
- [Class enrollment](https://github.com/nexusmindcorp/nexusclass/blob/deploy/src/hooks/GerenciadorHooks/useGerenciador.ts): `src/hooks/GerenciadorHooks/useGerenciador.ts`
- [Class wall](https://github.com/nexusmindcorp/nexusclass/blob/deploy/src/hooks/MuralHooks/useMural.ts): `src/hooks/MuralHooks/useMural.ts`
- [Realtime messages](https://github.com/nexusmindcorp/nexusclass/blob/deploy/src/hooks/MensagensHooks/useMensagens.ts): `src/hooks/MensagensHooks/useMensagens.ts`
- [Calendar events](https://github.com/nexusmindcorp/nexusclass/blob/deploy/src/hooks/CalendarioHooks/useCalendario.ts): `src/hooks/CalendarioHooks/useCalendario.ts`
- [User profiles](https://github.com/nexusmindcorp/nexusclass/blob/deploy/src/hooks/PerfilUserHooks/usePerfilUsuario.ts): `src/hooks/PerfilUserHooks/usePerfilUsuario.ts`

### Learning services

- [Student questions](https://github.com/nexusmindcorp/nexusclass/blob/deploy/src/hooks/DuvidaHooks/useDuvidas.ts): `src/hooks/DuvidaHooks/useDuvidas.ts`
- [Activities and grading](https://github.com/nexusmindcorp/nexusclass/blob/deploy/src/hooks/EntregasHooks/useEntregas.ts): `src/hooks/EntregasHooks/useEntregas.ts`
- [Tigreso tutor](https://github.com/nexusmindcorp/nexusclass/blob/deploy/src/hooks/botsHooks/useChatBot.ts): `src/hooks/botsHooks/useChatBot.ts`

### Platform services

- [Supabase client](https://github.com/nexusmindcorp/nexusclass/blob/deploy/src/lib/supabaseClient.ts): `src/lib/supabaseClient.ts`
- **Supabase database**
- **Supabase Storage**
- **Gemini API**
- [Account deletion](https://github.com/nexusmindcorp/nexusclass/blob/deploy/supabase/functions/deletar-conta/index.ts): `supabase/functions/deletar-conta/index.ts`
- **Supabase Auth**

### Other components

- **School user**

## Connections

- School user → App router: opens
- App router → Login: routes public
- App router → Protected route: protects dashboard
- Protected route → School dashboard: renders
- Authentication → Supabase client: loads session
- Supabase client → Supabase Auth: authenticates
- School and classes → Supabase client: reads classes
- Class enrollment → Supabase client: updates enrollment
- Class wall → Supabase client: reads and writes posts
- Class wall → Supabase Storage: manages attachments
- Realtime messages → Supabase client: syncs messages
- Calendar events → Supabase client: manages events
- Student questions → Supabase client: manages questions
- Student questions → Supabase Storage: removes attachments
- Activities and grading → Supabase client: reads and grades
- Activities and grading → Supabase Storage: uploads submissions
- Tigreso tutor → Gemini API: requests responses
- Tigreso tutor → Supabase client: uses platform data
- User profiles → Supabase client: reads profile
- Account deletion → Supabase Auth: deletes account
- Account deletion → Supabase Storage: purges files
