# jrose1022/subtrack architecture

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

- Interactive diagram: https://gitdiagram.com/jrose1022/subtrack
- Repository: https://github.com/jrose1022/subtrack

## Overview

SubTrack is a Next.js HOA sign-in demonstration, not a functioning account or dues-management workflow. A visitor reaches the login page, enters credentials, and the client validates them before showing a simulated success alert; no live authentication request is made. The login screen also presents community-service messaging and role/invitation notices. The Supabase helpers are present in the tree, but the shown login flow does not use them. Edges reflect the route and component references visible in excerpts or the source index.

Main entry points: [`app/(components)/login-form.tsx`](https://github.com/jrose1022/subtrack/blob/main/app/(components)/login-form.tsx) (Login form), [`app/(auth)/Login/page.tsx`](https://github.com/jrose1022/subtrack/blob/main/app/(auth)/Login/page.tsx) (Login page), [`app/page.tsx`](https://github.com/jrose1022/subtrack/blob/main/app/page.tsx) (Home route), [`app/(components)/auth-hero.tsx`](https://github.com/jrose1022/subtrack/blob/main/app/(components)/auth-hero.tsx) (Community hero)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_routes["Page routing"]
  node_home["Home route<br/>[page.tsx]"]
  node_loginpage["Login page<br/>[page.tsx]"]
end

subgraph group_login["Login experience"]
  node_hero["Community hero<br/>[auth-hero.tsx]"]
  node_form["Login form<br/>[login-form.tsx]"]
  node_result["Success alert<br/>[login-form.tsx]"]
end

subgraph group_support["Login components"]
  node_badge["Demo badge<br/>[auth-badge.tsx]"]
  node_header["Auth header<br/>[auth-header.tsx]"]
  node_input["Email field<br/>[input-field.tsx]"]
  node_password["Password field<br/>[password-input.tsx]"]
  node_remember["Remember me<br/>[remember-me.tsx]"]
  node_forgot["Forgot password"]
  node_submit["Submit button<br/>[submit-button.tsx]"]
  node_role["Role notice<br/>[role-notice.tsx]"]
  node_footer["Auth footer<br/>[auth-footer.tsx]"]
end

node_visitor(("Visitor"))

node_visitor -->|"opens"| node_home
node_home -->|"renders"| node_loginpage
node_loginpage -->|"renders"| node_hero
node_loginpage -->|"renders"| node_form
node_form -->|"renders"| node_badge
node_form -->|"renders"| node_header
node_form -->|"renders"| node_input
node_form -->|"renders"| node_password
node_form -->|"renders"| node_remember
node_form -->|"renders"| node_forgot
node_form -->|"renders"| node_submit
node_form -->|"renders"| node_role
node_form -->|"renders"| node_footer
node_form -->|"shows after validation"| node_result

click node_home "https://github.com/jrose1022/subtrack/blob/main/app/page.tsx"
click node_loginpage "https://github.com/jrose1022/subtrack/blob/main/app/(auth)/Login/page.tsx"
click node_hero "https://github.com/jrose1022/subtrack/blob/main/app/(components)/auth-hero.tsx"
click node_form "https://github.com/jrose1022/subtrack/blob/main/app/(components)/login-form.tsx"
click node_badge "https://github.com/jrose1022/subtrack/blob/main/app/(components)/auth-badge.tsx"
click node_header "https://github.com/jrose1022/subtrack/blob/main/app/(components)/auth-header.tsx"
click node_input "https://github.com/jrose1022/subtrack/blob/main/app/(components)/input-field.tsx"
click node_password "https://github.com/jrose1022/subtrack/blob/main/app/(components)/password-input.tsx"
click node_remember "https://github.com/jrose1022/subtrack/blob/main/app/(components)/remember-me.tsx"
click node_forgot "https://github.com/jrose1022/subtrack/blob/main/app/(components)/forgot-password.tsx"
click node_submit "https://github.com/jrose1022/subtrack/blob/main/app/(components)/submit-button.tsx"
click node_role "https://github.com/jrose1022/subtrack/blob/main/app/(components)/role-notice.tsx"
click node_footer "https://github.com/jrose1022/subtrack/blob/main/app/(components)/auth-footer.tsx"
click node_result "https://github.com/jrose1022/subtrack/blob/main/app/(components)/login-form.tsx"

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_loginpage toneBlue
class node_hero,node_form,node_result toneAmber
class node_badge,node_header,node_input,node_password,node_remember,node_forgot,node_submit,node_role,node_footer toneMint
class node_visitor toneIndigo
```

## Components

### Page routing

- [Home route](https://github.com/jrose1022/subtrack/blob/main/app/page.tsx): `app/page.tsx`
- [Login page](https://github.com/jrose1022/subtrack/blob/main/app/(auth)/Login/page.tsx): `app/(auth)/Login/page.tsx`

### Login experience

- [Community hero](https://github.com/jrose1022/subtrack/blob/main/app/(components)/auth-hero.tsx): `app/(components)/auth-hero.tsx`
- [Login form](https://github.com/jrose1022/subtrack/blob/main/app/(components)/login-form.tsx): `app/(components)/login-form.tsx`
- [Success alert](https://github.com/jrose1022/subtrack/blob/main/app/(components)/login-form.tsx): `app/(components)/login-form.tsx`

### Login components

- [Demo badge](https://github.com/jrose1022/subtrack/blob/main/app/(components)/auth-badge.tsx): `app/(components)/auth-badge.tsx`
- [Auth header](https://github.com/jrose1022/subtrack/blob/main/app/(components)/auth-header.tsx): `app/(components)/auth-header.tsx`
- [Email field](https://github.com/jrose1022/subtrack/blob/main/app/(components)/input-field.tsx): `app/(components)/input-field.tsx`
- [Password field](https://github.com/jrose1022/subtrack/blob/main/app/(components)/password-input.tsx): `app/(components)/password-input.tsx`
- [Remember me](https://github.com/jrose1022/subtrack/blob/main/app/(components)/remember-me.tsx): `app/(components)/remember-me.tsx`
- [Forgot password](https://github.com/jrose1022/subtrack/blob/main/app/(components)/forgot-password.tsx): `app/(components)/forgot-password.tsx`
- [Submit button](https://github.com/jrose1022/subtrack/blob/main/app/(components)/submit-button.tsx): `app/(components)/submit-button.tsx`
- [Role notice](https://github.com/jrose1022/subtrack/blob/main/app/(components)/role-notice.tsx): `app/(components)/role-notice.tsx`
- [Auth footer](https://github.com/jrose1022/subtrack/blob/main/app/(components)/auth-footer.tsx): `app/(components)/auth-footer.tsx`

### Other components

- **Visitor**

## Connections

- Visitor → Home route: opens
- Home route → Login page: renders (evidence: `app/page.tsx`)
- Login page → Community hero: renders (evidence: `app/(auth)/Login/page.tsx`)
- Login page → Login form: renders (evidence: `app/(auth)/Login/page.tsx`)
- Login form → Demo badge: renders (evidence: `app/(components)/login-form.tsx`)
- Login form → Auth header: renders (evidence: `app/(components)/login-form.tsx`)
- Login form → Email field: renders (evidence: `app/(components)/login-form.tsx`)
- Login form → Password field: renders (evidence: `app/(components)/login-form.tsx`)
- Login form → Remember me: renders (evidence: `app/(components)/login-form.tsx`)
- Login form → Forgot password: renders (evidence: `app/(components)/login-form.tsx`)
- Login form → Submit button: renders (evidence: `app/(components)/login-form.tsx`)
- Login form → Role notice: renders (evidence: `app/(components)/login-form.tsx`)
- Login form → Auth footer: renders (evidence: `app/(components)/login-form.tsx`)
- Login form → Success alert: shows after validation (evidence: `app/(components)/login-form.tsx`)
