# gordonbleuuuuu/feu-alabang-website architecture

> Architecture diagram of the GitHub repository gordonbleuuuuu/feu-alabang-website, 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/gordonbleuuuuu/feu-alabang-website
- Repository: https://github.com/gordonbleuuuuu/feu-alabang-website

## Overview

FEU Alabang SCC is a public student-council website with event discovery and committee applications, alongside a staff-facing administration workspace. The public journey is to browse council information and events, then view event details, add events to a calendar, or apply to a committee. Staff manage operational areas including event budgets, revenue and expenses, inventory, equipment requests, and loans. README documents the public-site sections; sampled source confirms calendar, application uploads, finance, inventory, and Supabase interactions. Other admin wiring is represented cautiously from the tree.

Main entry points: [`app/page.jsx`](https://github.com/gordonbleuuuuu/feu-alabang-website/blob/main/app/page.jsx) (Home page), [`lib/supabase/client.ts`](https://github.com/gordonbleuuuuu/feu-alabang-website/blob/main/lib/supabase/client.ts) (Supabase services), [`components/admin/AdminWorkspace.tsx`](https://github.com/gordonbleuuuuu/feu-alabang-website/blob/main/components/admin/AdminWorkspace.tsx) (Admin workspace), [`components/calendar/PublicCalendar.tsx`](https://github.com/gordonbleuuuuu/feu-alabang-website/blob/main/components/calendar/PublicCalendar.tsx) (Public calendar)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_public["Public presence"]
  node_home["Home page<br/>[page.jsx]"]
  node_navigation["Site navigation<br/>[Navbar.jsx]"]
  node_council["Council sections<br/>[About.jsx]"]
  node_leadership["Leadership<br/>[Leadership.jsx]"]
  node_activities["Activities<br/>[Activities.jsx]"]
  node_initiatives["Initiatives<br/>[Initiatives.jsx]"]
  node_resources["Resources and contact<br/>[Resources.jsx]"]
end

subgraph group_engagement["Student engagement"]
  node_application["Committee application<br/>[Apply.jsx]"]
  node_calendar["Public calendar<br/>[PublicCalendar.tsx]"]
  node_event["Event details<br/>[page.tsx]"]
  node_ics["Calendar export<br/>[route.ts]"]
end

subgraph group_operations["Staff operations"]
  node_admin["Admin workspace<br/>[AdminWorkspace.tsx]"]
  node_adminboard["Admin board<br/>[AdminBoard.tsx]"]
  node_finance["Finance management<br/>[FinanceManager.tsx]"]
  node_roomfinance["Room finance"]
  node_inventory["Inventory management"]
  node_tasks["Task drawer<br/>[TaskDrawer.tsx]"]
end

subgraph group_platform["Auth and data"]
  node_login["Staff login<br/>[page.tsx]"]
  node_supabase[("Supabase services<br/>[client.ts]")]
  node_serverclient["Server Supabase client<br/>[server.ts]"]
  node_signout["Sign out route<br/>[route.ts]"]
end

node_visitor(("Student / visitor"))
node_calendaruser(("Calendar subscriber"))

node_visitor -->|"opens site"| node_home
node_home -->|"renders"| node_navigation
node_home -->|"composes sections"| node_council
node_home -->|"composes section"| node_leadership
node_home -->|"composes section"| node_activities
node_home -->|"composes section"| node_initiatives
node_home -->|"composes section"| node_resources
node_visitor -->|"browses events"| node_calendar
node_calendar -->|"queries events"| node_supabase
node_calendar -->|"links details"| node_event
node_calendar -->|"links export"| node_ics
node_event -->|"shows details"| node_visitor
node_ics -->|"queries event"| node_serverclient
node_serverclient -->|"connects"| node_supabase
node_calendaruser -->|"downloads calendar"| node_ics
node_visitor -->|"submits application"| node_application
node_application -->|"uploads files"| node_supabase
node_visitor -->|"signs in"| node_login
node_login -->|"opens workspace"| node_admin
node_admin -->|"renders board"| node_adminboard
node_admin -->|"opens finance"| node_finance
node_finance -->|"renders room manager"| node_roomfinance
node_finance -->|"reads and writes"| node_supabase
node_roomfinance -->|"reads and writes"| node_supabase
node_admin -->|"opens inventory"| node_inventory
node_inventory -->|"updates inventory"| node_supabase
node_admin -->|"opens tasks"| node_tasks
node_login -->|"authenticates"| node_supabase
node_signout -->|"signs out"| node_serverclient

click node_home "https://github.com/gordonbleuuuuu/feu-alabang-website/blob/main/app/page.jsx"
click node_navigation "https://github.com/gordonbleuuuuu/feu-alabang-website/blob/main/components/Navbar.jsx"
click node_council "https://github.com/gordonbleuuuuu/feu-alabang-website/blob/main/components/About.jsx"
click node_leadership "https://github.com/gordonbleuuuuu/feu-alabang-website/blob/main/components/Leadership.jsx"
click node_activities "https://github.com/gordonbleuuuuu/feu-alabang-website/blob/main/components/Activities.jsx"
click node_initiatives "https://github.com/gordonbleuuuuu/feu-alabang-website/blob/main/components/Initiatives.jsx"
click node_resources "https://github.com/gordonbleuuuuu/feu-alabang-website/blob/main/components/Resources.jsx"
click node_application "https://github.com/gordonbleuuuuu/feu-alabang-website/blob/main/components/Apply.jsx"
click node_calendar "https://github.com/gordonbleuuuuu/feu-alabang-website/blob/main/components/calendar/PublicCalendar.tsx"
click node_event "https://github.com/gordonbleuuuuu/feu-alabang-website/blob/main/app/events/%5Bslug%5D/page.tsx"
click node_ics "https://github.com/gordonbleuuuuu/feu-alabang-website/blob/main/app/events/%5Bslug%5D/calendar/route.ts"
click node_login "https://github.com/gordonbleuuuuu/feu-alabang-website/blob/main/app/login/page.tsx"
click node_admin "https://github.com/gordonbleuuuuu/feu-alabang-website/blob/main/components/admin/AdminWorkspace.tsx"
click node_adminboard "https://github.com/gordonbleuuuuu/feu-alabang-website/blob/main/components/admin/AdminBoard.tsx"
click node_finance "https://github.com/gordonbleuuuuu/feu-alabang-website/blob/main/components/admin/FinanceManager.tsx"
click node_roomfinance "https://github.com/gordonbleuuuuu/feu-alabang-website/blob/main/components/admin/FinanceRoomManager.tsx"
click node_inventory "https://github.com/gordonbleuuuuu/feu-alabang-website/blob/main/components/admin/InventoryManager.tsx"
click node_tasks "https://github.com/gordonbleuuuuu/feu-alabang-website/blob/main/components/admin/TaskDrawer.tsx"
click node_supabase "https://github.com/gordonbleuuuuu/feu-alabang-website/blob/main/lib/supabase/client.ts"
click node_serverclient "https://github.com/gordonbleuuuuu/feu-alabang-website/blob/main/lib/supabase/server.ts"
click node_signout "https://github.com/gordonbleuuuuu/feu-alabang-website/blob/main/app/auth/signout/route.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_home,node_navigation,node_council,node_leadership,node_activities,node_initiatives,node_resources toneBlue
class node_application,node_calendar,node_event,node_ics toneAmber
class node_admin,node_adminboard,node_finance,node_roomfinance,node_inventory,node_tasks toneMint
class node_login,node_supabase,node_serverclient,node_signout toneRose
class node_visitor,node_calendaruser toneIndigo
```

## Components

### Public presence

- [Home page](https://github.com/gordonbleuuuuu/feu-alabang-website/blob/main/app/page.jsx): `app/page.jsx`
- [Site navigation](https://github.com/gordonbleuuuuu/feu-alabang-website/blob/main/components/Navbar.jsx): `components/Navbar.jsx`
- [Council sections](https://github.com/gordonbleuuuuu/feu-alabang-website/blob/main/components/About.jsx): `components/About.jsx`
- [Leadership](https://github.com/gordonbleuuuuu/feu-alabang-website/blob/main/components/Leadership.jsx): `components/Leadership.jsx`
- [Activities](https://github.com/gordonbleuuuuu/feu-alabang-website/blob/main/components/Activities.jsx): `components/Activities.jsx`
- [Initiatives](https://github.com/gordonbleuuuuu/feu-alabang-website/blob/main/components/Initiatives.jsx): `components/Initiatives.jsx`
- [Resources and contact](https://github.com/gordonbleuuuuu/feu-alabang-website/blob/main/components/Resources.jsx): `components/Resources.jsx`

### Student engagement

- [Committee application](https://github.com/gordonbleuuuuu/feu-alabang-website/blob/main/components/Apply.jsx): `components/Apply.jsx`
- [Public calendar](https://github.com/gordonbleuuuuu/feu-alabang-website/blob/main/components/calendar/PublicCalendar.tsx): `components/calendar/PublicCalendar.tsx`
- [Event details](https://github.com/gordonbleuuuuu/feu-alabang-website/blob/main/app/events/%5Bslug%5D/page.tsx): `app/events/[slug]/page.tsx`
- [Calendar export](https://github.com/gordonbleuuuuu/feu-alabang-website/blob/main/app/events/%5Bslug%5D/calendar/route.ts): `app/events/[slug]/calendar/route.ts`

### Staff operations

- [Admin workspace](https://github.com/gordonbleuuuuu/feu-alabang-website/blob/main/components/admin/AdminWorkspace.tsx): `components/admin/AdminWorkspace.tsx`
- [Admin board](https://github.com/gordonbleuuuuu/feu-alabang-website/blob/main/components/admin/AdminBoard.tsx): `components/admin/AdminBoard.tsx`
- [Finance management](https://github.com/gordonbleuuuuu/feu-alabang-website/blob/main/components/admin/FinanceManager.tsx): `components/admin/FinanceManager.tsx`
- [Room finance](https://github.com/gordonbleuuuuu/feu-alabang-website/blob/main/components/admin/FinanceRoomManager.tsx): `components/admin/FinanceRoomManager.tsx`
- [Inventory management](https://github.com/gordonbleuuuuu/feu-alabang-website/blob/main/components/admin/InventoryManager.tsx): `components/admin/InventoryManager.tsx`
- [Task drawer](https://github.com/gordonbleuuuuu/feu-alabang-website/blob/main/components/admin/TaskDrawer.tsx): `components/admin/TaskDrawer.tsx`

### Auth and data

- [Staff login](https://github.com/gordonbleuuuuu/feu-alabang-website/blob/main/app/login/page.tsx): `app/login/page.tsx`
- [Supabase services](https://github.com/gordonbleuuuuu/feu-alabang-website/blob/main/lib/supabase/client.ts): `lib/supabase/client.ts`
- [Server Supabase client](https://github.com/gordonbleuuuuu/feu-alabang-website/blob/main/lib/supabase/server.ts): `lib/supabase/server.ts`
- [Sign out route](https://github.com/gordonbleuuuuu/feu-alabang-website/blob/main/app/auth/signout/route.ts): `app/auth/signout/route.ts`

### Other components

- **Student / visitor**
- **Calendar subscriber**

## Connections

- Student / visitor → Home page: opens site
- Home page → Site navigation: renders
- Home page → Council sections: composes sections
- Home page → Leadership: composes section
- Home page → Activities: composes section
- Home page → Initiatives: composes section
- Home page → Resources and contact: composes section
- Student / visitor → Public calendar: browses events
- Public calendar → Supabase services: queries events
- Public calendar → Event details: links details
- Public calendar → Calendar export: links export
- Event details → Student / visitor: shows details
- Calendar export → Server Supabase client: queries event
- Server Supabase client → Supabase services: connects
- Calendar subscriber → Calendar export: downloads calendar
- Student / visitor → Committee application: submits application
- Committee application → Supabase services: uploads files
- Student / visitor → Staff login: signs in
- Staff login → Admin workspace: opens workspace
- Admin workspace → Admin board: renders board
- Admin workspace → Finance management: opens finance
- Finance management → Room finance: renders room manager
- Finance management → Supabase services: reads and writes
- Room finance → Supabase services: reads and writes
- Admin workspace → Inventory management: opens inventory
- Inventory management → Supabase services: updates inventory
- Admin workspace → Task drawer: opens tasks
- Staff login → Supabase services: authenticates
- Sign out route → Server Supabase client: signs out
