# saharika05/konnevo-frontend-mock- architecture

> Architecture diagram of the GitHub repository saharika05/konnevo-frontend-mock-, 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/saharika05/konnevo-frontend-mock-
- Repository: https://github.com/saharika05/konnevo-frontend-mock-

## Overview

konnevo is a student platform for discovering campus tech events and finding teammates. The main journey runs from account creation and profile onboarding, through event discovery and interest, to person-to-person matching and team invitations; students can also manage projects, experience, privacy, and teams, while club admins manage events. The frontend uses service modules and a shared API client, with a documented mock-API mode and a configurable real API. Several screens and services are unsampled, so their connections are included only where the README documents the workflow.

Main entry points: [`web/src/components/onboarding`](https://github.com/saharika05/konnevo-frontend-mock-/tree/main/web/src/components/onboarding) (Profile onboarding), [`web/src/lib/services`](https://github.com/saharika05/konnevo-frontend-mock-/tree/main/web/src/lib/services) (Domain services), [`web/src/app/page.tsx`](https://github.com/saharika05/konnevo-frontend-mock-/blob/main/web/src/app/page.tsx) (Home and entry), [`web/src/app/login/page.tsx`](https://github.com/saharika05/konnevo-frontend-mock-/blob/main/web/src/app/login/page.tsx) (Login)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_journey["Student journey"]
  node_home["Home and entry<br/>[page.tsx]"]
  node_login["Login<br/>[page.tsx]"]
  node_onboarding["Profile onboarding"]
  node_profile["Profile<br/>[profile-view.tsx]"]
  node_events["Event discovery<br/>[events-view.tsx]"]
  node_eventdetail["Event details<br/>[event-detail.tsx]"]
  node_mywork["Projects and experience<br/>[my-work-view.tsx]"]
  node_settings["Settings and privacy<br/>[settings-view.tsx]"]
end

subgraph group_teams["Matching and teams"]
  node_people["People and profiles<br/>[event-people.tsx]"]
  node_matching["Swipe matching<br/>[person-deck.tsx]"]
  node_matchpopup["Match confirmation<br/>[match-popup.tsx]"]
  node_myteams["Teams and invites<br/>[teams-view.tsx]"]
end

subgraph group_operations["Admin and core"]
  node_admin["Club event management<br/>[event-form.tsx]"]
  node_core["Core operations"]
  node_foundation["Foundation showcase<br/>[page.tsx]"]
end

subgraph group_platform["Platform services"]
  node_services["Domain services"]
  node_apiclient["API client<br/>[client.ts]"]
  node_mockworker["Mock request worker"]
end

node_student(("Student"))
node_clubadmin(("Club admin"))
node_api[("Configured API")]

node_student -->|"opens"| node_home
node_home -->|"starts signup"| node_login
node_student -->|"signs in"| node_login
node_login -->|"new account continues"| node_onboarding
node_onboarding -->|"completes profile"| node_profile
node_student -->|"browses"| node_events
node_home -->|"links to"| node_events
node_events -->|"opens event"| node_eventdetail
node_eventdetail -->|"shows attendees"| node_people
node_people -->|"opens person"| node_matching
node_matching -->|"confirms mutual match"| node_matchpopup
node_matchpopup -->|"continues to matches"| node_myteams
node_student -->|"manages work"| node_mywork
node_student -->|"manages privacy"| node_settings
node_clubadmin -->|"manages events"| node_admin
node_student -->|"manages teams"| node_myteams
node_onboarding -->|"loads projects"| node_services
node_onboarding -->|"completes profile"| node_services
node_services -.->|"uses requests"| node_apiclient
node_apiclient -->|"sends requests"| node_api
node_mockworker -.->|"intercepts mock mode"| node_apiclient
node_foundation -->|"loads events"| node_services

click node_home "https://github.com/saharika05/konnevo-frontend-mock-/blob/main/web/src/app/page.tsx"
click node_login "https://github.com/saharika05/konnevo-frontend-mock-/blob/main/web/src/app/login/page.tsx"
click node_onboarding "https://github.com/saharika05/konnevo-frontend-mock-/tree/main/web/src/components/onboarding"
click node_profile "https://github.com/saharika05/konnevo-frontend-mock-/blob/main/web/src/components/profile-view.tsx"
click node_events "https://github.com/saharika05/konnevo-frontend-mock-/blob/main/web/src/components/events-view.tsx"
click node_eventdetail "https://github.com/saharika05/konnevo-frontend-mock-/blob/main/web/src/components/event-detail.tsx"
click node_mywork "https://github.com/saharika05/konnevo-frontend-mock-/blob/main/web/src/components/my-work-view.tsx"
click node_settings "https://github.com/saharika05/konnevo-frontend-mock-/blob/main/web/src/components/settings/settings-view.tsx"
click node_people "https://github.com/saharika05/konnevo-frontend-mock-/blob/main/web/src/components/event-people.tsx"
click node_matching "https://github.com/saharika05/konnevo-frontend-mock-/blob/main/web/src/components/match/person-deck.tsx"
click node_matchpopup "https://github.com/saharika05/konnevo-frontend-mock-/blob/main/web/src/components/match/match-popup.tsx"
click node_myteams "https://github.com/saharika05/konnevo-frontend-mock-/blob/main/web/src/components/teams/teams-view.tsx"
click node_admin "https://github.com/saharika05/konnevo-frontend-mock-/blob/main/web/src/components/admin/event-form.tsx"
click node_core "https://github.com/saharika05/konnevo-frontend-mock-/tree/main/web/src/components/core"
click node_foundation "https://github.com/saharika05/konnevo-frontend-mock-/blob/main/web/src/app/foundation/page.tsx"
click node_services "https://github.com/saharika05/konnevo-frontend-mock-/tree/main/web/src/lib/services"
click node_apiclient "https://github.com/saharika05/konnevo-frontend-mock-/blob/main/web/src/lib/api/client.ts"
click node_mockworker "https://github.com/saharika05/konnevo-frontend-mock-/blob/main/web/public/mockServiceWorker.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_home,node_login,node_onboarding,node_profile,node_events,node_eventdetail,node_mywork,node_settings toneBlue
class node_people,node_matching,node_matchpopup,node_myteams,node_api toneAmber
class node_admin,node_core,node_foundation toneMint
class node_services,node_apiclient,node_mockworker toneRose
class node_student,node_clubadmin toneIndigo
```

## Components

### Student journey

- [Home and entry](https://github.com/saharika05/konnevo-frontend-mock-/blob/main/web/src/app/page.tsx): `web/src/app/page.tsx`
- [Login](https://github.com/saharika05/konnevo-frontend-mock-/blob/main/web/src/app/login/page.tsx): `web/src/app/login/page.tsx`
- [Profile onboarding](https://github.com/saharika05/konnevo-frontend-mock-/tree/main/web/src/components/onboarding): `web/src/components/onboarding`
- [Profile](https://github.com/saharika05/konnevo-frontend-mock-/blob/main/web/src/components/profile-view.tsx): `web/src/components/profile-view.tsx`
- [Event discovery](https://github.com/saharika05/konnevo-frontend-mock-/blob/main/web/src/components/events-view.tsx): `web/src/components/events-view.tsx`
- [Event details](https://github.com/saharika05/konnevo-frontend-mock-/blob/main/web/src/components/event-detail.tsx): `web/src/components/event-detail.tsx`
- [Projects and experience](https://github.com/saharika05/konnevo-frontend-mock-/blob/main/web/src/components/my-work-view.tsx): `web/src/components/my-work-view.tsx`
- [Settings and privacy](https://github.com/saharika05/konnevo-frontend-mock-/blob/main/web/src/components/settings/settings-view.tsx): `web/src/components/settings/settings-view.tsx`

### Matching and teams

- [People and profiles](https://github.com/saharika05/konnevo-frontend-mock-/blob/main/web/src/components/event-people.tsx): `web/src/components/event-people.tsx`
- [Swipe matching](https://github.com/saharika05/konnevo-frontend-mock-/blob/main/web/src/components/match/person-deck.tsx): `web/src/components/match/person-deck.tsx`
- [Match confirmation](https://github.com/saharika05/konnevo-frontend-mock-/blob/main/web/src/components/match/match-popup.tsx): `web/src/components/match/match-popup.tsx`
- [Teams and invites](https://github.com/saharika05/konnevo-frontend-mock-/blob/main/web/src/components/teams/teams-view.tsx): `web/src/components/teams/teams-view.tsx`

### Admin and core

- [Club event management](https://github.com/saharika05/konnevo-frontend-mock-/blob/main/web/src/components/admin/event-form.tsx): `web/src/components/admin/event-form.tsx`
- [Core operations](https://github.com/saharika05/konnevo-frontend-mock-/tree/main/web/src/components/core): `web/src/components/core`
- [Foundation showcase](https://github.com/saharika05/konnevo-frontend-mock-/blob/main/web/src/app/foundation/page.tsx): `web/src/app/foundation/page.tsx`

### Platform services

- [Domain services](https://github.com/saharika05/konnevo-frontend-mock-/tree/main/web/src/lib/services): `web/src/lib/services`
- [API client](https://github.com/saharika05/konnevo-frontend-mock-/blob/main/web/src/lib/api/client.ts): `web/src/lib/api/client.ts`
- [Mock request worker](https://github.com/saharika05/konnevo-frontend-mock-/blob/main/web/public/mockServiceWorker.js): `web/public/mockServiceWorker.js`

### Other components

- **Student**
- **Club admin**
- **Configured API**

## Connections

- Student → Home and entry: opens (evidence: `web/src/app/page.tsx`)
- Home and entry → Login: starts signup (evidence: `web/src/app/page.tsx`)
- Student → Login: signs in
- Login → Profile onboarding: new account continues
- Profile onboarding → Profile: completes profile
- Student → Event discovery: browses
- Home and entry → Event discovery: links to (evidence: `web/src/app/page.tsx`)
- Event discovery → Event details: opens event
- Event details → People and profiles: shows attendees
- People and profiles → Swipe matching: opens person
- Swipe matching → Match confirmation: confirms mutual match
- Match confirmation → Teams and invites: continues to matches
- Student → Projects and experience: manages work
- Student → Settings and privacy: manages privacy
- Club admin → Club event management: manages events
- Student → Teams and invites: manages teams
- Profile onboarding → Domain services: loads projects (evidence: `web/src/components/onboarding/step-review.tsx`)
- Profile onboarding → Domain services: completes profile (evidence: `web/src/components/onboarding/step-review.tsx`)
- Domain services → API client: uses requests
- API client → Configured API: sends requests (evidence: `web/src/lib/api/client.ts`)
- Mock request worker → API client: intercepts mock mode
- Foundation showcase → Domain services: loads events (evidence: `web/src/app/foundation/page.tsx`)
