# jtr-0901/aifi-website architecture

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

- Interactive diagram: https://gitdiagram.com/jtr-0901/aifi-website
- Repository: https://github.com/jtr-0901/aifi-website

## Overview

AiFi is a club and events website. Visitors enter through the home page, browse club information and events, then may open an event registration form; the masterclass and GFG forms visibly POST to configured API endpoints. The backend and SQLite database are present in the tree, but their runtime relationships are not established by the shown excerpts, so they are not connected speculatively.

Main entry points: [`src/App.jsx`](https://github.com/jtr-0901/aifi-website/blob/main/src/App.jsx) (App Router), [`src/components/Home.jsx`](https://github.com/jtr-0901/aifi-website/blob/main/src/components/Home.jsx) (Home Page), [`src/context/AnimationContext.jsx`](https://github.com/jtr-0901/aifi-website/blob/main/src/context/AnimationContext.jsx) (Animation State), [`src/components/Hero.jsx`](https://github.com/jtr-0901/aifi-website/blob/main/src/components/Hero.jsx) (Club Hero)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_site["Club Website"]
  node_app["App Router<br/>[App.jsx]"]
  node_navbar["Navigation<br/>[Navbar.jsx]"]
  node_home["Home Page<br/>[Home.jsx]"]
  node_hero["Club Hero<br/>[Hero.jsx]"]
  node_about["Club About<br/>[About.jsx]"]
  node_faculty["Faculty<br/>[Faculty.jsx]"]
  node_team["Club Team<br/>[Team.jsx]"]
  node_events["Events<br/>[Events.jsx]"]
end

subgraph group_registration["Registration"]
  node_hackathon["Hackathon Form"]
  node_masterclass["Masterclass Form"]
  node_gfg["GFG Form"]
end

subgraph group_visuals["Visual Effects"]
  node_animation["Animation State"]
  node_background["Canvas Background<br/>[Background.jsx]"]
end

subgraph group_backend["Backend"]
  node_server["Server<br/>[index.js]"]
  node_database[("SQLite Database<br/>[database.sqlite]")]
  node_data_check["Data Checker<br/>[check_data.js]"]
end

node_visitor(("Visitor"))
node_api{{"Registration API"}}

node_visitor -->|"opens site"| node_app
node_app -->|"renders"| node_navbar
node_app -->|"routes home"| node_home
node_app -->|"routes registration"| node_hackathon
node_app -->|"routes registration"| node_masterclass
node_app -->|"routes registration"| node_gfg
node_app -->|"renders"| node_background
node_app -->|"provides state"| node_animation
node_home -->|"renders"| node_hero
node_home -->|"renders"| node_about
node_home -->|"renders"| node_faculty
node_home -->|"renders"| node_team
node_home -->|"renders"| node_events
node_hero -->|"triggers warp"| node_animation
node_background -->|"reads state"| node_animation
node_masterclass -->|"POSTs registration"| node_api
node_gfg -->|"POSTs registration"| node_api

click node_app "https://github.com/jtr-0901/aifi-website/blob/main/src/App.jsx"
click node_navbar "https://github.com/jtr-0901/aifi-website/blob/main/src/components/Navbar.jsx"
click node_home "https://github.com/jtr-0901/aifi-website/blob/main/src/components/Home.jsx"
click node_hero "https://github.com/jtr-0901/aifi-website/blob/main/src/components/Hero.jsx"
click node_about "https://github.com/jtr-0901/aifi-website/blob/main/src/components/About.jsx"
click node_faculty "https://github.com/jtr-0901/aifi-website/blob/main/src/components/Faculty.jsx"
click node_team "https://github.com/jtr-0901/aifi-website/blob/main/src/components/Team.jsx"
click node_events "https://github.com/jtr-0901/aifi-website/blob/main/src/components/Events.jsx"
click node_hackathon "https://github.com/jtr-0901/aifi-website/blob/main/src/components/HackathonRegistration.jsx"
click node_masterclass "https://github.com/jtr-0901/aifi-website/blob/main/src/components/MasterclassRegistration.jsx"
click node_gfg "https://github.com/jtr-0901/aifi-website/blob/main/src/components/GFGRegistration.jsx"
click node_animation "https://github.com/jtr-0901/aifi-website/blob/main/src/context/AnimationContext.jsx"
click node_background "https://github.com/jtr-0901/aifi-website/blob/main/src/components/Background.jsx"
click node_server "https://github.com/jtr-0901/aifi-website/blob/main/server/index.js"
click node_database "https://github.com/jtr-0901/aifi-website/blob/main/server/database.sqlite"
click node_data_check "https://github.com/jtr-0901/aifi-website/blob/main/server/check_data.js"

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_navbar,node_home,node_hero,node_about,node_faculty,node_team,node_events toneBlue
class node_hackathon,node_masterclass,node_gfg toneAmber
class node_animation,node_background,node_api toneMint
class node_server,node_database,node_data_check toneRose
class node_visitor toneIndigo
```

## Components

### Club Website

- [App Router](https://github.com/jtr-0901/aifi-website/blob/main/src/App.jsx): `src/App.jsx`
- [Navigation](https://github.com/jtr-0901/aifi-website/blob/main/src/components/Navbar.jsx): `src/components/Navbar.jsx`
- [Home Page](https://github.com/jtr-0901/aifi-website/blob/main/src/components/Home.jsx): `src/components/Home.jsx`
- [Club Hero](https://github.com/jtr-0901/aifi-website/blob/main/src/components/Hero.jsx): `src/components/Hero.jsx`
- [Club About](https://github.com/jtr-0901/aifi-website/blob/main/src/components/About.jsx): `src/components/About.jsx`
- [Faculty](https://github.com/jtr-0901/aifi-website/blob/main/src/components/Faculty.jsx): `src/components/Faculty.jsx`
- [Club Team](https://github.com/jtr-0901/aifi-website/blob/main/src/components/Team.jsx): `src/components/Team.jsx`
- [Events](https://github.com/jtr-0901/aifi-website/blob/main/src/components/Events.jsx): `src/components/Events.jsx`

### Registration

- [Hackathon Form](https://github.com/jtr-0901/aifi-website/blob/main/src/components/HackathonRegistration.jsx): `src/components/HackathonRegistration.jsx`
- [Masterclass Form](https://github.com/jtr-0901/aifi-website/blob/main/src/components/MasterclassRegistration.jsx): `src/components/MasterclassRegistration.jsx`
- [GFG Form](https://github.com/jtr-0901/aifi-website/blob/main/src/components/GFGRegistration.jsx): `src/components/GFGRegistration.jsx`

### Visual Effects

- [Animation State](https://github.com/jtr-0901/aifi-website/blob/main/src/context/AnimationContext.jsx): `src/context/AnimationContext.jsx`
- [Canvas Background](https://github.com/jtr-0901/aifi-website/blob/main/src/components/Background.jsx): `src/components/Background.jsx`

### Backend

- [Server](https://github.com/jtr-0901/aifi-website/blob/main/server/index.js): `server/index.js`
- [SQLite Database](https://github.com/jtr-0901/aifi-website/blob/main/server/database.sqlite): `server/database.sqlite`
- [Data Checker](https://github.com/jtr-0901/aifi-website/blob/main/server/check_data.js): `server/check_data.js`

### Other components

- **Visitor**
- **Registration API**

## Connections

- Visitor → App Router: opens site
- App Router → Navigation: renders (evidence: `src/App.jsx`)
- App Router → Home Page: routes home (evidence: `src/App.jsx`)
- App Router → Hackathon Form: routes registration (evidence: `src/App.jsx`)
- App Router → Masterclass Form: routes registration (evidence: `src/App.jsx`)
- App Router → GFG Form: routes registration (evidence: `src/App.jsx`)
- App Router → Canvas Background: renders (evidence: `src/App.jsx`)
- App Router → Animation State: provides state (evidence: `src/App.jsx`)
- Home Page → Club Hero: renders (evidence: `src/components/Home.jsx`)
- Home Page → Club About: renders (evidence: `src/components/Home.jsx`)
- Home Page → Faculty: renders (evidence: `src/components/Home.jsx`)
- Home Page → Club Team: renders (evidence: `src/components/Home.jsx`)
- Home Page → Events: renders (evidence: `src/components/Home.jsx`)
- Club Hero → Animation State: triggers warp (evidence: `src/components/Hero.jsx`)
- Canvas Background → Animation State: reads state (evidence: `src/components/Background.jsx`)
- Masterclass Form → Registration API: POSTs registration (evidence: `src/components/MasterclassRegistration.jsx`)
- GFG Form → Registration API: POSTs registration (evidence: `src/components/GFGRegistration.jsx`)
