# gangonekarunya09-maker/gk_apartment_care architecture

> Architecture diagram of the GitHub repository gangonekarunya09-maker/gk_apartment_care, 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/gangonekarunya09-maker/gk_apartment_care
- Repository: https://github.com/gangonekarunya09-maker/gk_apartment_care

## Overview

GK Apartment Care is a community-based home and auto services platform. Residents choose a community, browse services and Sunday group-buy discounts, then book or follow a shared campaign or community-portal link. Operators manage communities, providers, services, campaigns, requests, and bookings in the admin portal. The shared context coordinates application data, mutations, and authentication with Supabase, with in-memory seeds for demo mode. The map follows README-described routing and state ownership; some manager internals were not sampled, so uncertain manager-to-manager wiring is omitted.

Main entry points: [`src/context/AppContext.tsx`](https://github.com/gangonekarunya09-maker/gk_apartment_care/blob/main/src/context/AppContext.tsx) (App state and mutations), [`src/App.tsx`](https://github.com/gangonekarunya09-maker/gk_apartment_care/blob/main/src/App.tsx) (Route composer), [`src/components/admin/AdminDashboard.tsx`](https://github.com/gangonekarunya09-maker/gk_apartment_care/blob/main/src/components/admin/AdminDashboard.tsx) (Admin dashboard), [`src/components/resident/ServiceCard.tsx`](https://github.com/gangonekarunya09-maker/gk_apartment_care/blob/main/src/components/resident/ServiceCard.tsx) (Service offers)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_entry["App routing"]
  node_main["React entry<br/>[main.tsx]"]
  node_app["Route composer<br/>[App.tsx]"]
  node_router["URL resolver<br/>[router.ts]"]
end

subgraph group_resident["Resident services"]
  node_hero["Storefront<br/>[Hero.tsx]"]
  node_catalog["Service catalog<br/>[ServiceCatalog.tsx]"]
  node_service_card["Service offers<br/>[ServiceCard.tsx]"]
  node_booking_modal["Booking flow<br/>[BookingModal.tsx]"]
  node_my_bookings["My bookings<br/>[MyBookingsView.tsx]"]
  node_status_tracker["Booking tracker<br/>[StatusTracker.tsx]"]
  node_share_modal["WhatsApp sharing"]
end

subgraph group_public["Shared link journeys"]
  node_campaign_page["Campaign page"]
  node_community_portal["Community portal"]
end

subgraph group_admin["Operator portal"]
  node_admin_dashboard["Admin dashboard<br/>[AdminDashboard.tsx]"]
  node_admin_login["Admin sign-in<br/>[AdminLogin.tsx]"]
  node_apartment_manager["Community management"]
  node_campaign_manager["Campaign management"]
  node_service_manager["Service management"]
  node_provider_manager["Provider onboarding"]
  node_booking_manager["Booking operations"]
  node_demand_manager["Demand management<br/>[DemandManager.tsx]"]
  node_request_manager["Resident requests"]
  node_analytics["Admin analytics<br/>[AdminAnalytics.tsx]"]
end

subgraph group_data["State and persistence"]
  node_context["App state and mutations<br/>[AppContext.tsx]"]
  node_supabase_client["Supabase adapter<br/>[supabase.ts]"]
  node_demo_seeds["Demo seed data<br/>[mockData.ts]"]
  node_database[("Supabase database")]
end

node_resident_actor(("Resident"))
node_operator_actor(("Operator"))
node_whatsapp(("WhatsApp"))

node_resident_actor -->|"opens app"| node_app
node_operator_actor -->|"opens portal"| node_app
node_main -->|"mounts"| node_app
node_app -->|"resolves URL"| node_router
node_app -->|"renders default"| node_hero
node_app -->|"renders resident view"| node_catalog
node_app -->|"renders campaign route"| node_campaign_page
node_app -->|"renders portal route"| node_community_portal
node_app -->|"renders admin route"| node_admin_dashboard
node_app -->|"renders login route"| node_admin_login
node_catalog -->|"renders offers"| node_service_card
node_service_card -->|"opens booking"| node_booking_modal
node_resident_actor -->|"submits details"| node_booking_modal
node_app -->|"renders bookings tab"| node_my_bookings
node_app -->|"renders tracking view"| node_status_tracker
node_service_card -->|"opens share"| node_share_modal
node_share_modal -.->|"shares link"| node_whatsapp
node_campaign_page -->|"loads campaign"| node_context
node_community_portal -->|"loads community data"| node_context
node_admin_dashboard -->|"hosts manager"| node_apartment_manager
node_admin_dashboard -->|"hosts manager"| node_campaign_manager
node_admin_dashboard -->|"hosts manager"| node_service_manager
node_admin_dashboard -->|"hosts manager"| node_provider_manager
node_admin_dashboard -->|"hosts manager"| node_booking_manager
node_admin_dashboard -->|"hosts manager"| node_demand_manager
node_admin_dashboard -->|"hosts manager"| node_request_manager
node_admin_dashboard -->|"hosts analytics"| node_analytics
node_apartment_manager -->|"manages communities"| node_context
node_campaign_manager -->|"manages campaigns"| node_context
node_service_manager -->|"manages services"| node_context
node_provider_manager -->|"manages providers"| node_context
node_booking_manager -->|"manages bookings"| node_context
node_demand_manager -->|"manages demand"| node_context
node_request_manager -->|"manages requests"| node_context
node_analytics -->|"reads app data"| node_context
node_admin_login -->|"authenticates"| node_context
node_booking_modal -->|"submits booking"| node_context
node_my_bookings -->|"reads bookings"| node_context
node_status_tracker -->|"reads status"| node_context
node_context -->|"queries and mutates"| node_supabase_client
node_supabase_client -->|"reads and writes"| node_database
node_context -.->|"loads demo data"| node_demo_seeds

click node_main "https://github.com/gangonekarunya09-maker/gk_apartment_care/blob/main/src/main.tsx"
click node_app "https://github.com/gangonekarunya09-maker/gk_apartment_care/blob/main/src/App.tsx"
click node_router "https://github.com/gangonekarunya09-maker/gk_apartment_care/blob/main/src/lib/router.ts"
click node_hero "https://github.com/gangonekarunya09-maker/gk_apartment_care/blob/main/src/components/resident/Hero.tsx"
click node_catalog "https://github.com/gangonekarunya09-maker/gk_apartment_care/blob/main/src/components/resident/ServiceCatalog.tsx"
click node_service_card "https://github.com/gangonekarunya09-maker/gk_apartment_care/blob/main/src/components/resident/ServiceCard.tsx"
click node_booking_modal "https://github.com/gangonekarunya09-maker/gk_apartment_care/blob/main/src/components/resident/BookingModal.tsx"
click node_my_bookings "https://github.com/gangonekarunya09-maker/gk_apartment_care/blob/main/src/components/resident/MyBookingsView.tsx"
click node_status_tracker "https://github.com/gangonekarunya09-maker/gk_apartment_care/blob/main/src/components/resident/StatusTracker.tsx"
click node_share_modal "https://github.com/gangonekarunya09-maker/gk_apartment_care/blob/main/src/components/resident/WhatsAppShareModal.tsx"
click node_campaign_page "https://github.com/gangonekarunya09-maker/gk_apartment_care/blob/main/src/components/public/PublicCampaignPage.tsx"
click node_community_portal "https://github.com/gangonekarunya09-maker/gk_apartment_care/blob/main/src/components/public/CommunityCustomerPortal.tsx"
click node_admin_dashboard "https://github.com/gangonekarunya09-maker/gk_apartment_care/blob/main/src/components/admin/AdminDashboard.tsx"
click node_admin_login "https://github.com/gangonekarunya09-maker/gk_apartment_care/blob/main/src/components/admin/AdminLogin.tsx"
click node_apartment_manager "https://github.com/gangonekarunya09-maker/gk_apartment_care/blob/main/src/components/admin/ApartmentsManager.tsx"
click node_campaign_manager "https://github.com/gangonekarunya09-maker/gk_apartment_care/blob/main/src/components/admin/CampaignsManager.tsx"
click node_service_manager "https://github.com/gangonekarunya09-maker/gk_apartment_care/blob/main/src/components/admin/ServicesManager.tsx"
click node_provider_manager "https://github.com/gangonekarunya09-maker/gk_apartment_care/blob/main/src/components/admin/ProvidersManager.tsx"
click node_booking_manager "https://github.com/gangonekarunya09-maker/gk_apartment_care/blob/main/src/components/admin/BookingsManager.tsx"
click node_demand_manager "https://github.com/gangonekarunya09-maker/gk_apartment_care/blob/main/src/components/admin/DemandManager.tsx"
click node_request_manager "https://github.com/gangonekarunya09-maker/gk_apartment_care/blob/main/src/components/admin/ResidentRequestsManager.tsx"
click node_analytics "https://github.com/gangonekarunya09-maker/gk_apartment_care/blob/main/src/components/admin/AdminAnalytics.tsx"
click node_context "https://github.com/gangonekarunya09-maker/gk_apartment_care/blob/main/src/context/AppContext.tsx"
click node_supabase_client "https://github.com/gangonekarunya09-maker/gk_apartment_care/blob/main/src/lib/supabase.ts"
click node_demo_seeds "https://github.com/gangonekarunya09-maker/gk_apartment_care/blob/main/src/data/mockData.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_main,node_app,node_router toneBlue
class node_hero,node_catalog,node_service_card,node_booking_modal,node_my_bookings,node_status_tracker,node_share_modal toneAmber
class node_campaign_page,node_community_portal toneMint
class node_admin_dashboard,node_admin_login,node_apartment_manager,node_campaign_manager,node_service_manager,node_provider_manager,node_booking_manager,node_demand_manager,node_request_manager,node_analytics toneRose
class node_context,node_supabase_client,node_demo_seeds,node_database,node_resident_actor,node_operator_actor,node_whatsapp toneIndigo
```

## Components

### App routing

- [React entry](https://github.com/gangonekarunya09-maker/gk_apartment_care/blob/main/src/main.tsx): `src/main.tsx`
- [Route composer](https://github.com/gangonekarunya09-maker/gk_apartment_care/blob/main/src/App.tsx): `src/App.tsx`
- [URL resolver](https://github.com/gangonekarunya09-maker/gk_apartment_care/blob/main/src/lib/router.ts): `src/lib/router.ts`

### Resident services

- [Storefront](https://github.com/gangonekarunya09-maker/gk_apartment_care/blob/main/src/components/resident/Hero.tsx): `src/components/resident/Hero.tsx`
- [Service catalog](https://github.com/gangonekarunya09-maker/gk_apartment_care/blob/main/src/components/resident/ServiceCatalog.tsx): `src/components/resident/ServiceCatalog.tsx`
- [Service offers](https://github.com/gangonekarunya09-maker/gk_apartment_care/blob/main/src/components/resident/ServiceCard.tsx): `src/components/resident/ServiceCard.tsx`
- [Booking flow](https://github.com/gangonekarunya09-maker/gk_apartment_care/blob/main/src/components/resident/BookingModal.tsx): `src/components/resident/BookingModal.tsx`
- [My bookings](https://github.com/gangonekarunya09-maker/gk_apartment_care/blob/main/src/components/resident/MyBookingsView.tsx): `src/components/resident/MyBookingsView.tsx`
- [Booking tracker](https://github.com/gangonekarunya09-maker/gk_apartment_care/blob/main/src/components/resident/StatusTracker.tsx): `src/components/resident/StatusTracker.tsx`
- [WhatsApp sharing](https://github.com/gangonekarunya09-maker/gk_apartment_care/blob/main/src/components/resident/WhatsAppShareModal.tsx): `src/components/resident/WhatsAppShareModal.tsx`

### Shared link journeys

- [Campaign page](https://github.com/gangonekarunya09-maker/gk_apartment_care/blob/main/src/components/public/PublicCampaignPage.tsx): `src/components/public/PublicCampaignPage.tsx`
- [Community portal](https://github.com/gangonekarunya09-maker/gk_apartment_care/blob/main/src/components/public/CommunityCustomerPortal.tsx): `src/components/public/CommunityCustomerPortal.tsx`

### Operator portal

- [Admin dashboard](https://github.com/gangonekarunya09-maker/gk_apartment_care/blob/main/src/components/admin/AdminDashboard.tsx): `src/components/admin/AdminDashboard.tsx`
- [Admin sign-in](https://github.com/gangonekarunya09-maker/gk_apartment_care/blob/main/src/components/admin/AdminLogin.tsx): `src/components/admin/AdminLogin.tsx`
- [Community management](https://github.com/gangonekarunya09-maker/gk_apartment_care/blob/main/src/components/admin/ApartmentsManager.tsx): `src/components/admin/ApartmentsManager.tsx`
- [Campaign management](https://github.com/gangonekarunya09-maker/gk_apartment_care/blob/main/src/components/admin/CampaignsManager.tsx): `src/components/admin/CampaignsManager.tsx`
- [Service management](https://github.com/gangonekarunya09-maker/gk_apartment_care/blob/main/src/components/admin/ServicesManager.tsx): `src/components/admin/ServicesManager.tsx`
- [Provider onboarding](https://github.com/gangonekarunya09-maker/gk_apartment_care/blob/main/src/components/admin/ProvidersManager.tsx): `src/components/admin/ProvidersManager.tsx`
- [Booking operations](https://github.com/gangonekarunya09-maker/gk_apartment_care/blob/main/src/components/admin/BookingsManager.tsx): `src/components/admin/BookingsManager.tsx`
- [Demand management](https://github.com/gangonekarunya09-maker/gk_apartment_care/blob/main/src/components/admin/DemandManager.tsx): `src/components/admin/DemandManager.tsx`
- [Resident requests](https://github.com/gangonekarunya09-maker/gk_apartment_care/blob/main/src/components/admin/ResidentRequestsManager.tsx): `src/components/admin/ResidentRequestsManager.tsx`
- [Admin analytics](https://github.com/gangonekarunya09-maker/gk_apartment_care/blob/main/src/components/admin/AdminAnalytics.tsx): `src/components/admin/AdminAnalytics.tsx`

### State and persistence

- [App state and mutations](https://github.com/gangonekarunya09-maker/gk_apartment_care/blob/main/src/context/AppContext.tsx): `src/context/AppContext.tsx`
- [Supabase adapter](https://github.com/gangonekarunya09-maker/gk_apartment_care/blob/main/src/lib/supabase.ts): `src/lib/supabase.ts`
- [Demo seed data](https://github.com/gangonekarunya09-maker/gk_apartment_care/blob/main/src/data/mockData.ts): `src/data/mockData.ts`
- **Supabase database**

### Other components

- **Resident**
- **Operator**
- **WhatsApp**

## Connections

- Resident → Route composer: opens app
- Operator → Route composer: opens portal
- React entry → Route composer: mounts
- Route composer → URL resolver: resolves URL
- Route composer → Storefront: renders default
- Route composer → Service catalog: renders resident view
- Route composer → Campaign page: renders campaign route
- Route composer → Community portal: renders portal route
- Route composer → Admin dashboard: renders admin route
- Route composer → Admin sign-in: renders login route
- Service catalog → Service offers: renders offers
- Service offers → Booking flow: opens booking
- Resident → Booking flow: submits details
- Route composer → My bookings: renders bookings tab
- Route composer → Booking tracker: renders tracking view
- Service offers → WhatsApp sharing: opens share
- WhatsApp sharing → WhatsApp: shares link
- Campaign page → App state and mutations: loads campaign
- Community portal → App state and mutations: loads community data
- Admin dashboard → Community management: hosts manager
- Admin dashboard → Campaign management: hosts manager
- Admin dashboard → Service management: hosts manager
- Admin dashboard → Provider onboarding: hosts manager
- Admin dashboard → Booking operations: hosts manager
- Admin dashboard → Demand management: hosts manager
- Admin dashboard → Resident requests: hosts manager
- Admin dashboard → Admin analytics: hosts analytics
- Community management → App state and mutations: manages communities
- Campaign management → App state and mutations: manages campaigns
- Service management → App state and mutations: manages services
- Provider onboarding → App state and mutations: manages providers
- Booking operations → App state and mutations: manages bookings
- Demand management → App state and mutations: manages demand
- Resident requests → App state and mutations: manages requests
- Admin analytics → App state and mutations: reads app data
- Admin sign-in → App state and mutations: authenticates
- Booking flow → App state and mutations: submits booking
- My bookings → App state and mutations: reads bookings
- Booking tracker → App state and mutations: reads status
- App state and mutations → Supabase adapter: queries and mutates
- Supabase adapter → Supabase database: reads and writes
- App state and mutations → Demo seed data: loads demo data
