# kelvin-12ki/sbcards architecture

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

- Interactive diagram: https://gitdiagram.com/kelvin-12ki/sbcards
- Repository: https://github.com/kelvin-12ki/sbcards

## Overview

This is a networking and event-management platform: users create digital cards, discover people and events, connect, and coordinate through messaging and event tools. Organizers manage events, sessions, check-ins, and table assignments; organizations, subscriptions, analytics, and administration provide supporting capabilities. The graph groups frontend feature areas and backend domains; sampled controllers establish selected service calls, but many subsystem links are omitted because their source was not sampled. The README was empty.

Main entry points: [`frontend/src/api`](https://github.com/kelvin-12ki/sbcards/tree/main/frontend/src/api) (API clients), [`frontend/src/App.tsx`](https://github.com/kelvin-12ki/sbcards/blob/main/frontend/src/App.tsx) (App and routes), [`backend/src/modules/users`](https://github.com/kelvin-12ki/sbcards/tree/main/backend/src/modules/users) (User profiles), [`backend/src/modules/auth`](https://github.com/kelvin-12ki/sbcards/tree/main/backend/src/modules/auth) (Authentication)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_client["Web application"]
  node_web["App and routes<br/>[App.tsx]"]
  node_api["API clients"]
end

subgraph group_identity["Identity and profiles"]
  node_identity_ui["Sign-in and profile<br/>[LoginPage.tsx]"]
  node_auth["Authentication"]
  node_users["User profiles"]
  node_cards["Digital cards"]
end

subgraph group_network["Networking"]
  node_network_ui["Connections and matches"]
  node_connections["Connections and leads"]
  node_matching["Matching"]
  node_messaging["Messaging"]
  node_discovery["Search and recommendations"]
end

subgraph group_events["Events and operations"]
  node_event_ui["Event experience<br/>[EventsPage.tsx]"]
  node_events_backend["Events and participation"]
  node_sessions["Schedules and sessions"]
  node_tables["Check-in and tables"]
  node_exhibitors["Exhibitors"]
end

subgraph group_platform["Platform services"]
  node_platform_ui["Insights and account<br/>[AnalyticsPage.tsx]"]
  node_organizations["Organizations"]
  node_payments["Subscriptions"]
  node_notifications["Notifications"]
  node_analytics["Analytics and insights"]
  node_admin["Administration"]
end

node_person(("User"))
node_mongo[("MongoDB")]
node_firebase(("Firebase authentication"))

node_person -->|"uses"| node_web
node_web -->|"renders"| node_identity_ui
node_web -->|"renders"| node_network_ui
node_web -->|"renders"| node_event_ui
node_identity_ui -->|"requests"| node_api
node_network_ui -->|"requests"| node_api
node_event_ui -->|"requests"| node_api
node_platform_ui -->|"requests"| node_api
node_api -->|"calls"| node_auth
node_api -->|"calls"| node_users
node_api -->|"calls"| node_cards
node_api -->|"calls"| node_connections
node_api -->|"calls"| node_matching
node_api -->|"calls"| node_messaging
node_api -->|"calls"| node_discovery
node_api -->|"calls"| node_events_backend
node_api -->|"calls"| node_sessions
node_api -->|"calls"| node_tables
node_api -->|"calls"| node_exhibitors
node_api -->|"calls"| node_organizations
node_api -->|"calls"| node_payments
node_api -->|"calls"| node_notifications
node_api -->|"calls"| node_analytics
node_api -->|"calls"| node_admin
node_auth -->|"verifies token"| node_firebase
node_auth -->|"upserts user"| node_users
node_events_backend -->|"resolves creator"| node_users
node_tables -->|"resolves attendee"| node_users
node_connections -->|"stores records"| node_mongo
node_messaging -->|"stores messages"| node_mongo
node_discovery -->|"searches records"| node_mongo
node_sessions -->|"stores sessions"| node_mongo

click node_web "https://github.com/kelvin-12ki/sbcards/blob/main/frontend/src/App.tsx"
click node_api "https://github.com/kelvin-12ki/sbcards/tree/main/frontend/src/api"
click node_identity_ui "https://github.com/kelvin-12ki/sbcards/blob/main/frontend/src/pages/LoginPage.tsx"
click node_auth "https://github.com/kelvin-12ki/sbcards/tree/main/backend/src/modules/auth"
click node_users "https://github.com/kelvin-12ki/sbcards/tree/main/backend/src/modules/users"
click node_cards "https://github.com/kelvin-12ki/sbcards/tree/main/backend/src/modules/cards"
click node_network_ui "https://github.com/kelvin-12ki/sbcards/blob/main/frontend/src/pages/ConnectionsPage.tsx"
click node_connections "https://github.com/kelvin-12ki/sbcards/tree/main/backend/src/modules/connections"
click node_matching "https://github.com/kelvin-12ki/sbcards/tree/main/backend/src/modules/matching"
click node_messaging "https://github.com/kelvin-12ki/sbcards/tree/main/backend/src/modules/messaging"
click node_discovery "https://github.com/kelvin-12ki/sbcards/tree/main/backend/src/modules/search"
click node_event_ui "https://github.com/kelvin-12ki/sbcards/blob/main/frontend/src/pages/EventsPage.tsx"
click node_events_backend "https://github.com/kelvin-12ki/sbcards/tree/main/backend/src/modules/events"
click node_sessions "https://github.com/kelvin-12ki/sbcards/tree/main/backend/src/modules/sessions"
click node_tables "https://github.com/kelvin-12ki/sbcards/tree/main/backend/src/modules/tables"
click node_exhibitors "https://github.com/kelvin-12ki/sbcards/tree/main/backend/src/modules/exhibitors"
click node_platform_ui "https://github.com/kelvin-12ki/sbcards/blob/main/frontend/src/pages/AnalyticsPage.tsx"
click node_organizations "https://github.com/kelvin-12ki/sbcards/tree/main/backend/src/modules/organizations"
click node_payments "https://github.com/kelvin-12ki/sbcards/tree/main/backend/src/modules/payments"
click node_notifications "https://github.com/kelvin-12ki/sbcards/tree/main/backend/src/modules/notifications"
click node_analytics "https://github.com/kelvin-12ki/sbcards/tree/main/backend/src/modules/analytics"
click node_admin "https://github.com/kelvin-12ki/sbcards/tree/main/backend/src/modules/admin"

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_web,node_api,node_person toneBlue
class node_identity_ui,node_auth,node_users,node_cards,node_mongo toneAmber
class node_network_ui,node_connections,node_matching,node_messaging,node_discovery toneMint
class node_event_ui,node_events_backend,node_sessions,node_tables,node_exhibitors toneRose
class node_platform_ui,node_organizations,node_payments,node_notifications,node_analytics,node_admin,node_firebase toneIndigo
```

## Components

### Web application

- [App and routes](https://github.com/kelvin-12ki/sbcards/blob/main/frontend/src/App.tsx): `frontend/src/App.tsx`
- [API clients](https://github.com/kelvin-12ki/sbcards/tree/main/frontend/src/api): `frontend/src/api`

### Identity and profiles

- [Sign-in and profile](https://github.com/kelvin-12ki/sbcards/blob/main/frontend/src/pages/LoginPage.tsx): `frontend/src/pages/LoginPage.tsx`
- [Authentication](https://github.com/kelvin-12ki/sbcards/tree/main/backend/src/modules/auth): `backend/src/modules/auth`
- [User profiles](https://github.com/kelvin-12ki/sbcards/tree/main/backend/src/modules/users): `backend/src/modules/users`
- [Digital cards](https://github.com/kelvin-12ki/sbcards/tree/main/backend/src/modules/cards): `backend/src/modules/cards`

### Networking

- [Connections and matches](https://github.com/kelvin-12ki/sbcards/blob/main/frontend/src/pages/ConnectionsPage.tsx): `frontend/src/pages/ConnectionsPage.tsx`
- [Connections and leads](https://github.com/kelvin-12ki/sbcards/tree/main/backend/src/modules/connections): `backend/src/modules/connections`
- [Matching](https://github.com/kelvin-12ki/sbcards/tree/main/backend/src/modules/matching): `backend/src/modules/matching`
- [Messaging](https://github.com/kelvin-12ki/sbcards/tree/main/backend/src/modules/messaging): `backend/src/modules/messaging`
- [Search and recommendations](https://github.com/kelvin-12ki/sbcards/tree/main/backend/src/modules/search): `backend/src/modules/search`

### Events and operations

- [Event experience](https://github.com/kelvin-12ki/sbcards/blob/main/frontend/src/pages/EventsPage.tsx): `frontend/src/pages/EventsPage.tsx`
- [Events and participation](https://github.com/kelvin-12ki/sbcards/tree/main/backend/src/modules/events): `backend/src/modules/events`
- [Schedules and sessions](https://github.com/kelvin-12ki/sbcards/tree/main/backend/src/modules/sessions): `backend/src/modules/sessions`
- [Check-in and tables](https://github.com/kelvin-12ki/sbcards/tree/main/backend/src/modules/tables): `backend/src/modules/tables`
- [Exhibitors](https://github.com/kelvin-12ki/sbcards/tree/main/backend/src/modules/exhibitors): `backend/src/modules/exhibitors`

### Platform services

- [Insights and account](https://github.com/kelvin-12ki/sbcards/blob/main/frontend/src/pages/AnalyticsPage.tsx): `frontend/src/pages/AnalyticsPage.tsx`
- [Organizations](https://github.com/kelvin-12ki/sbcards/tree/main/backend/src/modules/organizations): `backend/src/modules/organizations`
- [Subscriptions](https://github.com/kelvin-12ki/sbcards/tree/main/backend/src/modules/payments): `backend/src/modules/payments`
- [Notifications](https://github.com/kelvin-12ki/sbcards/tree/main/backend/src/modules/notifications): `backend/src/modules/notifications`
- [Analytics and insights](https://github.com/kelvin-12ki/sbcards/tree/main/backend/src/modules/analytics): `backend/src/modules/analytics`
- [Administration](https://github.com/kelvin-12ki/sbcards/tree/main/backend/src/modules/admin): `backend/src/modules/admin`

### Other components

- **User**
- **MongoDB**
- **Firebase authentication**

## Connections

- User → App and routes: uses
- App and routes → Sign-in and profile: renders
- App and routes → Connections and matches: renders
- App and routes → Event experience: renders
- Sign-in and profile → API clients: requests
- Connections and matches → API clients: requests
- Event experience → API clients: requests
- Insights and account → API clients: requests
- API clients → Authentication: calls
- API clients → User profiles: calls
- API clients → Digital cards: calls
- API clients → Connections and leads: calls
- API clients → Matching: calls
- API clients → Messaging: calls
- API clients → Search and recommendations: calls
- API clients → Events and participation: calls
- API clients → Schedules and sessions: calls
- API clients → Check-in and tables: calls
- API clients → Exhibitors: calls
- API clients → Organizations: calls
- API clients → Subscriptions: calls
- API clients → Notifications: calls
- API clients → Analytics and insights: calls
- API clients → Administration: calls
- Authentication → Firebase authentication: verifies token
- Authentication → User profiles: upserts user
- Events and participation → User profiles: resolves creator
- Check-in and tables → User profiles: resolves attendee
- Connections and leads → MongoDB: stores records
- Messaging → MongoDB: stores messages
- Search and recommendations → MongoDB: searches records
- Schedules and sessions → MongoDB: stores sessions
