# unb-mds/2026-2-agendaunb architecture

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

- Interactive diagram: https://gitdiagram.com/unb-mds/2026-2-agendaunb
- Repository: https://github.com/unb-mds/2026-2-agendaunb

## Overview

Agenda UnB is a campus event discovery platform paired with a private academic organizer. The visible flow is entry through the routed React app, event browsing and filtering, then opening an event detail; account creation and sign-in are handled through shared auth state backed by Supabase. The README also describes syllabus upload and automatic date extraction, but the backend source is empty and that processing flow is not evidenced in sampled code. Database migrations establish additional event and agenda storage; runtime wiring beyond the sampled profile operations is uncertain.

Main entry points: [`src/contexts/AuthContext.jsx`](https://github.com/unb-mds/2026-2-agendaunb/blob/main/src/contexts/AuthContext.jsx) (Auth provider), [`src/pages/SecondPage.jsx`](https://github.com/unb-mds/2026-2-agendaunb/blob/main/src/pages/SecondPage.jsx) (Event browsing), [`src/main.jsx`](https://github.com/unb-mds/2026-2-agendaunb/blob/main/src/main.jsx) (Route entry), [`src/App.jsx`](https://github.com/unb-mds/2026-2-agendaunb/blob/main/src/App.jsx) (Landing and account UI)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_web["Web application"]
  node_router["Route entry<br/>[main.jsx]"]
  node_home["Landing and account UI<br/>[App.jsx]"]
  node_navbar["Navigation bar<br/>[NavBar.jsx]"]
end

subgraph group_identity["Identity and profiles"]
  node_auth["Auth provider<br/>[AuthContext.jsx]"]
end

subgraph group_agenda["Events and agenda"]
  node_event_list["Event browsing<br/>[SecondPage.jsx]"]
  node_event_detail["Event detail<br/>[PaginaDeEvento.jsx]"]
  node_academic["Syllabus date organizer"]
end

subgraph group_platform["Hosted platform"]
  node_supabase_client["Supabase client<br/>[supabase.js]"]
  node_supabase_auth["Supabase Auth"]
  node_supabase_db[("Supabase database")]
  node_schema["Event and agenda schema"]
end

node_visitor(("Student or visitor"))

node_visitor -->|"opens app"| node_router
node_router -->|"routes to"| node_home
node_router -->|"routes to"| node_event_list
node_router -->|"routes to"| node_event_detail
node_home -->|"uses auth"| node_auth
node_home -->|"renders"| node_navbar
node_event_list -->|"renders"| node_navbar
node_event_detail -->|"renders"| node_navbar
node_event_list -->|"opens event"| node_event_detail
node_home -->|"navigates"| node_event_list
node_event_list -.->|"offers organizer"| node_academic
node_auth -->|"uses client"| node_supabase_client
node_supabase_client -->|"creates client"| node_supabase_auth
node_auth -->|"authenticates"| node_supabase_auth
node_auth -->|"reads profiles"| node_supabase_db
node_auth -->|"updates profiles"| node_supabase_db
node_schema -->|"defines schema"| node_supabase_db

click node_router "https://github.com/unb-mds/2026-2-agendaunb/blob/main/src/main.jsx"
click node_home "https://github.com/unb-mds/2026-2-agendaunb/blob/main/src/App.jsx"
click node_navbar "https://github.com/unb-mds/2026-2-agendaunb/blob/main/src/components/NavBar.jsx"
click node_event_list "https://github.com/unb-mds/2026-2-agendaunb/blob/main/src/pages/SecondPage.jsx"
click node_event_detail "https://github.com/unb-mds/2026-2-agendaunb/blob/main/src/pages/PaginaDeEvento.jsx"
click node_academic "https://github.com/unb-mds/2026-2-agendaunb/tree/main/src/pages"
click node_auth "https://github.com/unb-mds/2026-2-agendaunb/blob/main/src/contexts/AuthContext.jsx"
click node_supabase_client "https://github.com/unb-mds/2026-2-agendaunb/blob/main/src/lib/supabase.js"
click node_schema "https://github.com/unb-mds/2026-2-agendaunb/tree/main/supabase/migrations"

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_router,node_home,node_navbar toneBlue
class node_auth toneAmber
class node_event_list,node_event_detail,node_academic toneMint
class node_supabase_client,node_supabase_auth,node_supabase_db,node_schema toneRose
class node_visitor toneIndigo
```

## Components

### Web application

- [Route entry](https://github.com/unb-mds/2026-2-agendaunb/blob/main/src/main.jsx): `src/main.jsx`
- [Landing and account UI](https://github.com/unb-mds/2026-2-agendaunb/blob/main/src/App.jsx): `src/App.jsx`
- [Navigation bar](https://github.com/unb-mds/2026-2-agendaunb/blob/main/src/components/NavBar.jsx): `src/components/NavBar.jsx`

### Identity and profiles

- [Auth provider](https://github.com/unb-mds/2026-2-agendaunb/blob/main/src/contexts/AuthContext.jsx): `src/contexts/AuthContext.jsx`

### Events and agenda

- [Event browsing](https://github.com/unb-mds/2026-2-agendaunb/blob/main/src/pages/SecondPage.jsx): `src/pages/SecondPage.jsx`
- [Event detail](https://github.com/unb-mds/2026-2-agendaunb/blob/main/src/pages/PaginaDeEvento.jsx): `src/pages/PaginaDeEvento.jsx`
- [Syllabus date organizer](https://github.com/unb-mds/2026-2-agendaunb/tree/main/src/pages): `src/pages`

### Hosted platform

- [Supabase client](https://github.com/unb-mds/2026-2-agendaunb/blob/main/src/lib/supabase.js): `src/lib/supabase.js`
- **Supabase Auth**
- **Supabase database**
- [Event and agenda schema](https://github.com/unb-mds/2026-2-agendaunb/tree/main/supabase/migrations): `supabase/migrations`

### Other components

- **Student or visitor**

## Connections

- Student or visitor → Route entry: opens app
- Route entry → Landing and account UI: routes to
- Route entry → Event browsing: routes to
- Route entry → Event detail: routes to
- Landing and account UI → Auth provider: uses auth
- Landing and account UI → Navigation bar: renders
- Event browsing → Navigation bar: renders
- Event detail → Navigation bar: renders
- Event browsing → Event detail: opens event
- Landing and account UI → Event browsing: navigates
- Event browsing → Syllabus date organizer: offers organizer
- Auth provider → Supabase client: uses client
- Supabase client → Supabase Auth: creates client
- Auth provider → Supabase Auth: authenticates
- Auth provider → Supabase database: reads profiles
- Auth provider → Supabase database: updates profiles
- Event and agenda schema → Supabase database: defines schema
