# kiran-pillai/arka-goals-revamp-mono architecture

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

- Interactive diagram: https://gitdiagram.com/kiran-pillai/arka-goals-revamp-mono
- Repository: https://github.com/kiran-pillai/arka-goals-revamp-mono

## Overview

Arka Goals is a weekly squad goal-tracking app with passwordless sign-in and admin-managed invitations. Members authenticate through a magic link, then create or update goals and submit weekly check-ins; admins invite members and manage invite status. The graph includes the documented UI capabilities and sampled backend service calls. Several frontend data hooks and domain screens were not excerpted, so their detailed request wiring is omitted; README-backed links are cited as such.

Main entry points: [`front-end/src/routes/HomeRoute.tsx`](https://github.com/kiran-pillai/arka-goals-revamp-mono/blob/main/front-end/src/routes/HomeRoute.tsx) (Home screen), [`front-end/src/router.tsx`](https://github.com/kiran-pillai/arka-goals-revamp-mono/blob/main/front-end/src/router.tsx) (App routes), [`front-end/src/lib/api.ts`](https://github.com/kiran-pillai/arka-goals-revamp-mono/blob/main/front-end/src/lib/api.ts) (HTTP API client), [`back-end/src/prisma/prisma.service.ts`](https://github.com/kiran-pillai/arka-goals-revamp-mono/blob/main/back-end/src/prisma/prisma.service.ts) (Prisma data access)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_frontend["Member experience"]
  node_router["App routes<br/>[router.tsx]"]
  node_login["Login screen<br/>[LoginRoute.tsx]"]
  node_callback["Auth callback"]
  node_home["Home screen<br/>[HomeRoute.tsx]"]
  node_weekly["Weekly check-in form<br/>[WeeklyCheckIn.tsx]"]
  node_checkin_table["Check-in history<br/>[CheckInsTable.tsx]"]
  node_goal_setup["Goal setup<br/>[GoalSetup.tsx]"]
  node_goal_table["Goal list<br/>[GoalsTable.tsx]"]
  node_admin_invites_ui["Invite management screen"]
  node_auth_context["Session context<br/>[AuthContext.tsx]"]
  node_api_client["HTTP API client<br/>[api.ts]"]
end

subgraph group_identity["Identity and access"]
  node_auth_controller["Auth endpoints<br/>[auth.controller.ts]"]
  node_auth_service["Magic-link service<br/>[auth.service.ts]"]
end

subgraph group_workflows["Goals and check-ins"]
  node_goals_controller["Goal endpoints"]
  node_goals_service["Goal operations<br/>[goals.service.ts]"]
  node_checkins_controller["Check-in endpoints"]
  node_checkins_service["Check-in operations"]
end

subgraph group_membership["Invite management"]
  node_invites_controller["Invite endpoints"]
  node_invites_service["Invite operations<br/>[invites.service.ts]"]
  node_users_service["User lookup<br/>[users.service.ts]"]
end

subgraph group_storage["Persistence and mail"]
  node_prisma["Prisma data access<br/>[prisma.service.ts]"]
  node_database[("PostgreSQL")]
  node_mail_service["Email delivery<br/>[mail.service.ts]"]
  node_mail_system["SMTP / MailHog"]
end

node_member(("Squad member"))
node_admin(("Squad admin"))

node_member -->|"uses"| node_router
node_admin -->|"uses"| node_router
node_router -->|"routes to"| node_login
node_router -->|"routes to"| node_callback
node_router -->|"routes to"| node_home
node_router -->|"routes to"| node_admin_invites_ui
node_home -->|"renders"| node_weekly
node_home -->|"renders"| node_checkin_table
node_home -->|"renders"| node_goal_setup
node_home -->|"renders"| node_goal_table
node_home -->|"reads session"| node_auth_context
node_admin_invites_ui -->|"calls"| node_api_client
node_callback -->|"calls"| node_api_client
node_callback -->|"refreshes"| node_auth_context
node_auth_context -->|"calls"| node_api_client
node_login -->|"calls"| node_api_client
node_api_client -->|"HTTP requests"| node_auth_controller
node_auth_controller -->|"delegates"| node_auth_service
node_auth_service -->|"reads/writes"| node_prisma
node_auth_service -->|"sends links"| node_mail_service
node_goals_controller -->|"delegates"| node_goals_service
node_goals_service -->|"reads/writes"| node_prisma
node_checkins_controller -->|"delegates"| node_checkins_service
node_checkins_service -->|"reads/writes"| node_prisma
node_invites_controller -->|"delegates"| node_invites_service
node_invites_service -->|"reads/writes"| node_prisma
node_invites_service -->|"looks up users"| node_users_service
node_invites_service -->|"sends invite link"| node_auth_service
node_prisma -->|"persists data"| node_database
node_mail_service -->|"sends email"| node_mail_system
node_member -->|"submits"| node_weekly
node_member -->|"sets goals"| node_goal_setup
node_admin -->|"manages invites"| node_admin_invites_ui
node_weekly -.->|"submits check-in"| node_checkins_controller
node_goal_setup -.->|"manages goals"| node_goals_controller
node_checkin_table -.->|"loads history"| node_checkins_controller
node_goal_table -.->|"loads goals"| node_goals_controller
node_admin_invites_ui -.->|"manages invites"| node_invites_controller

click node_router "https://github.com/kiran-pillai/arka-goals-revamp-mono/blob/main/front-end/src/router.tsx"
click node_login "https://github.com/kiran-pillai/arka-goals-revamp-mono/blob/main/front-end/src/routes/LoginRoute.tsx"
click node_callback "https://github.com/kiran-pillai/arka-goals-revamp-mono/blob/main/front-end/src/routes/AuthCallbackRoute.tsx"
click node_home "https://github.com/kiran-pillai/arka-goals-revamp-mono/blob/main/front-end/src/routes/HomeRoute.tsx"
click node_weekly "https://github.com/kiran-pillai/arka-goals-revamp-mono/blob/main/front-end/src/WeeklyCheckIn.tsx"
click node_checkin_table "https://github.com/kiran-pillai/arka-goals-revamp-mono/blob/main/front-end/src/CheckInsTable.tsx"
click node_goal_setup "https://github.com/kiran-pillai/arka-goals-revamp-mono/blob/main/front-end/src/GoalSetup.tsx"
click node_goal_table "https://github.com/kiran-pillai/arka-goals-revamp-mono/blob/main/front-end/src/GoalsTable.tsx"
click node_admin_invites_ui "https://github.com/kiran-pillai/arka-goals-revamp-mono/blob/main/front-end/src/routes/AdminInvitesRoute.tsx"
click node_auth_context "https://github.com/kiran-pillai/arka-goals-revamp-mono/blob/main/front-end/src/auth/AuthContext.tsx"
click node_api_client "https://github.com/kiran-pillai/arka-goals-revamp-mono/blob/main/front-end/src/lib/api.ts"
click node_auth_controller "https://github.com/kiran-pillai/arka-goals-revamp-mono/blob/main/back-end/src/auth/auth.controller.ts"
click node_auth_service "https://github.com/kiran-pillai/arka-goals-revamp-mono/blob/main/back-end/src/auth/auth.service.ts"
click node_goals_controller "https://github.com/kiran-pillai/arka-goals-revamp-mono/blob/main/back-end/src/goals/goals.controller.ts"
click node_goals_service "https://github.com/kiran-pillai/arka-goals-revamp-mono/blob/main/back-end/src/goals/goals.service.ts"
click node_checkins_controller "https://github.com/kiran-pillai/arka-goals-revamp-mono/blob/main/back-end/src/checkins/checkins.controller.ts"
click node_checkins_service "https://github.com/kiran-pillai/arka-goals-revamp-mono/blob/main/back-end/src/checkins/checkins.service.ts"
click node_invites_controller "https://github.com/kiran-pillai/arka-goals-revamp-mono/blob/main/back-end/src/invites/invites.controller.ts"
click node_invites_service "https://github.com/kiran-pillai/arka-goals-revamp-mono/blob/main/back-end/src/invites/invites.service.ts"
click node_users_service "https://github.com/kiran-pillai/arka-goals-revamp-mono/blob/main/back-end/src/users/users.service.ts"
click node_prisma "https://github.com/kiran-pillai/arka-goals-revamp-mono/blob/main/back-end/src/prisma/prisma.service.ts"
click node_mail_service "https://github.com/kiran-pillai/arka-goals-revamp-mono/blob/main/back-end/src/mail/mail.service.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_router,node_login,node_callback,node_home,node_weekly,node_checkin_table,node_goal_setup,node_goal_table,node_admin_invites_ui,node_auth_context,node_api_client toneBlue
class node_auth_controller,node_auth_service toneAmber
class node_goals_controller,node_goals_service,node_checkins_controller,node_checkins_service toneMint
class node_invites_controller,node_invites_service,node_users_service toneRose
class node_prisma,node_database,node_mail_service,node_mail_system,node_member,node_admin toneIndigo
```

## Components

### Member experience

- [App routes](https://github.com/kiran-pillai/arka-goals-revamp-mono/blob/main/front-end/src/router.tsx): `front-end/src/router.tsx`
- [Login screen](https://github.com/kiran-pillai/arka-goals-revamp-mono/blob/main/front-end/src/routes/LoginRoute.tsx): `front-end/src/routes/LoginRoute.tsx`
- [Auth callback](https://github.com/kiran-pillai/arka-goals-revamp-mono/blob/main/front-end/src/routes/AuthCallbackRoute.tsx): `front-end/src/routes/AuthCallbackRoute.tsx`
- [Home screen](https://github.com/kiran-pillai/arka-goals-revamp-mono/blob/main/front-end/src/routes/HomeRoute.tsx): `front-end/src/routes/HomeRoute.tsx`
- [Weekly check-in form](https://github.com/kiran-pillai/arka-goals-revamp-mono/blob/main/front-end/src/WeeklyCheckIn.tsx): `front-end/src/WeeklyCheckIn.tsx`
- [Check-in history](https://github.com/kiran-pillai/arka-goals-revamp-mono/blob/main/front-end/src/CheckInsTable.tsx): `front-end/src/CheckInsTable.tsx`
- [Goal setup](https://github.com/kiran-pillai/arka-goals-revamp-mono/blob/main/front-end/src/GoalSetup.tsx): `front-end/src/GoalSetup.tsx`
- [Goal list](https://github.com/kiran-pillai/arka-goals-revamp-mono/blob/main/front-end/src/GoalsTable.tsx): `front-end/src/GoalsTable.tsx`
- [Invite management screen](https://github.com/kiran-pillai/arka-goals-revamp-mono/blob/main/front-end/src/routes/AdminInvitesRoute.tsx): `front-end/src/routes/AdminInvitesRoute.tsx`
- [Session context](https://github.com/kiran-pillai/arka-goals-revamp-mono/blob/main/front-end/src/auth/AuthContext.tsx): `front-end/src/auth/AuthContext.tsx`
- [HTTP API client](https://github.com/kiran-pillai/arka-goals-revamp-mono/blob/main/front-end/src/lib/api.ts): `front-end/src/lib/api.ts`

### Identity and access

- [Auth endpoints](https://github.com/kiran-pillai/arka-goals-revamp-mono/blob/main/back-end/src/auth/auth.controller.ts): `back-end/src/auth/auth.controller.ts`
- [Magic-link service](https://github.com/kiran-pillai/arka-goals-revamp-mono/blob/main/back-end/src/auth/auth.service.ts): `back-end/src/auth/auth.service.ts`

### Goals and check-ins

- [Goal endpoints](https://github.com/kiran-pillai/arka-goals-revamp-mono/blob/main/back-end/src/goals/goals.controller.ts): `back-end/src/goals/goals.controller.ts`
- [Goal operations](https://github.com/kiran-pillai/arka-goals-revamp-mono/blob/main/back-end/src/goals/goals.service.ts): `back-end/src/goals/goals.service.ts`
- [Check-in endpoints](https://github.com/kiran-pillai/arka-goals-revamp-mono/blob/main/back-end/src/checkins/checkins.controller.ts): `back-end/src/checkins/checkins.controller.ts`
- [Check-in operations](https://github.com/kiran-pillai/arka-goals-revamp-mono/blob/main/back-end/src/checkins/checkins.service.ts): `back-end/src/checkins/checkins.service.ts`

### Invite management

- [Invite endpoints](https://github.com/kiran-pillai/arka-goals-revamp-mono/blob/main/back-end/src/invites/invites.controller.ts): `back-end/src/invites/invites.controller.ts`
- [Invite operations](https://github.com/kiran-pillai/arka-goals-revamp-mono/blob/main/back-end/src/invites/invites.service.ts): `back-end/src/invites/invites.service.ts`
- [User lookup](https://github.com/kiran-pillai/arka-goals-revamp-mono/blob/main/back-end/src/users/users.service.ts): `back-end/src/users/users.service.ts`

### Persistence and mail

- [Prisma data access](https://github.com/kiran-pillai/arka-goals-revamp-mono/blob/main/back-end/src/prisma/prisma.service.ts): `back-end/src/prisma/prisma.service.ts`
- **PostgreSQL**
- [Email delivery](https://github.com/kiran-pillai/arka-goals-revamp-mono/blob/main/back-end/src/mail/mail.service.ts): `back-end/src/mail/mail.service.ts`
- **SMTP / MailHog**

### Other components

- **Squad member**
- **Squad admin**

## Connections

- Squad member → App routes: uses (evidence: `README.md`)
- Squad admin → App routes: uses (evidence: `README.md`)
- App routes → Login screen: routes to (evidence: `front-end/src/router.tsx`)
- App routes → Auth callback: routes to (evidence: `front-end/src/router.tsx`)
- App routes → Home screen: routes to (evidence: `front-end/src/router.tsx`)
- App routes → Invite management screen: routes to (evidence: `front-end/src/router.tsx`)
- Home screen → Weekly check-in form: renders (evidence: `front-end/src/routes/HomeRoute.tsx`)
- Home screen → Check-in history: renders (evidence: `front-end/src/routes/HomeRoute.tsx`)
- Home screen → Goal setup: renders (evidence: `front-end/src/routes/HomeRoute.tsx`)
- Home screen → Goal list: renders (evidence: `front-end/src/routes/HomeRoute.tsx`)
- Home screen → Session context: reads session (evidence: `front-end/src/routes/HomeRoute.tsx`)
- Invite management screen → HTTP API client: calls (evidence: `front-end/src/routes/AdminInvitesRoute.tsx`)
- Auth callback → HTTP API client: calls (evidence: `front-end/src/routes/AuthCallbackRoute.tsx`)
- Auth callback → Session context: refreshes (evidence: `front-end/src/routes/AuthCallbackRoute.tsx`)
- Session context → HTTP API client: calls (evidence: `front-end/src/auth/AuthContext.tsx`)
- Login screen → HTTP API client: calls (evidence: `front-end/src/routes/LoginRoute.tsx`)
- HTTP API client → Auth endpoints: HTTP requests (evidence: `README.md`)
- Auth endpoints → Magic-link service: delegates (evidence: `back-end/src/auth/auth.controller.ts`)
- Magic-link service → Prisma data access: reads/writes (evidence: `back-end/src/auth/auth.service.ts`)
- Magic-link service → Email delivery: sends links (evidence: `back-end/src/auth/auth.service.ts`)
- Goal endpoints → Goal operations: delegates (evidence: `back-end/src/goals/goals.controller.ts`)
- Goal operations → Prisma data access: reads/writes (evidence: `back-end/src/goals/goals.service.ts`)
- Check-in endpoints → Check-in operations: delegates (evidence: `back-end/src/checkins/checkins.controller.ts`)
- Check-in operations → Prisma data access: reads/writes (evidence: `back-end/src/checkins/checkins.service.ts`)
- Invite endpoints → Invite operations: delegates (evidence: `back-end/src/invites/invites.controller.ts`)
- Invite operations → Prisma data access: reads/writes (evidence: `back-end/src/invites/invites.service.ts`)
- Invite operations → User lookup: looks up users (evidence: `back-end/src/invites/invites.service.ts`)
- Invite operations → Magic-link service: sends invite link (evidence: `back-end/src/invites/invites.service.ts`)
- Prisma data access → PostgreSQL: persists data (evidence: `README.md`)
- Email delivery → SMTP / MailHog: sends email (evidence: `README.md`)
- Squad member → Weekly check-in form: submits (evidence: `README.md`)
- Squad member → Goal setup: sets goals (evidence: `README.md`)
- Squad admin → Invite management screen: manages invites (evidence: `README.md`)
- Weekly check-in form → Check-in endpoints: submits check-in
- Goal setup → Goal endpoints: manages goals
- Check-in history → Check-in endpoints: loads history
- Goal list → Goal endpoints: loads goals
- Invite management screen → Invite endpoints: manages invites
