# narasimhagupta2004/astrolive-hackthon architecture

> Architecture diagram of the GitHub repository narasimhagupta2004/astrolive-hackthon, 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/narasimhagupta2004/astrolive-hackthon
- Repository: https://github.com/narasimhagupta2004/astrolive-hackthon

## Overview

AstroLive is a client-only astrology consultation app. Users discover advisors by topic, start simulated chat or calls, and can return to recent advisors; they can also shop for remedies, manage coins and subscriptions, and request auspicious timing. Cosmic Chemistry provides a separate two-person invite-and-result flow, using Firebase live sync when available and link/local-storage fallback otherwise. The map combines README capabilities with sampled runtime code; several page-level connections are documented but their implementations were not sampled, so uncertain calls are omitted.

Main entry points: [`src/app/App.jsx`](https://github.com/narasimhagupta2004/astrolive-hackthon/blob/main/src/app/App.jsx) (Route coordinator), [`src/state/CosmicContext.jsx`](https://github.com/narasimhagupta2004/astrolive-hackthon/blob/main/src/state/CosmicContext.jsx) (Cosmic flow state), [`src/data/appData.js`](https://github.com/narasimhagupta2004/astrolive-hackthon/blob/main/src/data/appData.js) (Advisor and product data), [`src/pages/SearchPage.jsx`](https://github.com/narasimhagupta2004/astrolive-hackthon/blob/main/src/pages/SearchPage.jsx) (Advisor search)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_app["App navigation"]
  node_app["Route coordinator<br/>[App.jsx]"]
end

subgraph group_consult["Consultation"]
  node_home["Home discovery<br/>[HomePage.jsx]"]
  node_search["Advisor search<br/>[SearchPage.jsx]"]
  node_chat["Chat discovery<br/>[ChatPage.jsx]"]
  node_conversation["Consultation session"]
  node_call["Call session<br/>[CallPage.jsx]"]
  node_connected["Astrologer follow-up"]
  node_session["Session state<br/>[SessionContext.jsx]"]
  node_catalog["Advisor and product data<br/>[appData.js]"]
end

subgraph group_commerce["Commerce and rewards"]
  node_shop["Shubh Kart<br/>[ShubhKartPage.jsx]"]
  node_cart["Cart and checkout<br/>[CartPage.jsx]"]
  node_address["Order address<br/>[AddressPage.jsx]"]
  node_order["Order confirmation"]
  node_wallet["Wallet and recharge<br/>[WalletPage.jsx]"]
  node_ledger[("Coins and subscription<br/>[index.js]")]
  node_storage[("Browser storage<br/>[storage.js]")]
  node_payment["Razorpay checkout<br/>[razorpay.js]"]
end

subgraph group_cosmic["Cosmic Chemistry"]
  node_cosmic["Cosmic flow state<br/>[CosmicContext.jsx]"]
  node_cosmic_start["Start reading"]
  node_cosmic_share["Share invite"]
  node_cosmic_join["Join reading<br/>[CosmicJoinPage.jsx]"]
  node_cosmic_reveal["Reveal result"]
  node_room["Room sync<br/>[cosmicRoom.js]"]
  node_firebase[("Firebase services")]
end

subgraph group_muhurat["Muhurat AI"]
  node_muhurat_page["Muhurat request<br/>[MuhuratPage.jsx]"]
  node_engine["Timing recommendations<br/>[muhuratEngine.js]"]
  node_gemini_client["Gemini client<br/>[geminiClient.js]"]
  node_gemini["Gemini API"]
  node_panchang["Panchang and intent data<br/>[muhuratData.js]"]
end

node_user(("App user"))

node_user -->|"opens"| node_app
node_app -->|"routes"| node_home
node_app -->|"routes"| node_search
node_app -->|"routes"| node_chat
node_app -->|"routes"| node_conversation
node_app -->|"routes"| node_call
node_app -->|"routes"| node_connected
node_app -->|"routes"| node_shop
node_app -->|"routes"| node_cart
node_app -->|"routes"| node_address
node_app -->|"routes"| node_order
node_app -->|"routes"| node_wallet
node_app -->|"routes"| node_cosmic_start
node_app -->|"routes"| node_cosmic_share
node_app -->|"routes"| node_cosmic_join
node_app -->|"routes"| node_cosmic_reveal
node_app -->|"routes"| node_muhurat_page
node_home -->|"reads"| node_catalog
node_search -->|"searches"| node_catalog
node_search -->|"starts session"| node_session
node_search -->|"navigates"| node_conversation
node_chat -->|"reads"| node_catalog
node_conversation -->|"uses"| node_session
node_call -->|"uses"| node_session
node_connected -->|"reads"| node_catalog
node_shop -->|"reads"| node_catalog
node_cart -->|"continues checkout"| node_address
node_address -->|"continues checkout"| node_order
node_wallet -->|"reads and updates"| node_ledger
node_ledger -->|"persists"| node_storage
node_ledger -->|"requests payment"| node_payment
node_cosmic_start -->|"starts host flow"| node_cosmic
node_cosmic_share -->|"shares room"| node_cosmic
node_cosmic_join -->|"submits guest"| node_cosmic
node_cosmic_reveal -->|"shows result"| node_cosmic
node_cosmic -->|"creates and syncs rooms"| node_room
node_room -.->|"auth and Firestore"| node_firebase
node_cosmic -.->|"stores fallback result"| node_storage
node_muhurat_page -->|"requests windows"| node_engine
node_engine -->|"reads rules data"| node_panchang
node_engine -.->|"requests recommendations"| node_gemini_client
node_gemini_client -.->|"sends prompt"| node_gemini
node_muhurat_page -->|"buys Plus"| node_payment
node_muhurat_page -->|"checks free use"| node_ledger

click node_app "https://github.com/narasimhagupta2004/astrolive-hackthon/blob/main/src/app/App.jsx"
click node_home "https://github.com/narasimhagupta2004/astrolive-hackthon/blob/main/src/pages/HomePage.jsx"
click node_search "https://github.com/narasimhagupta2004/astrolive-hackthon/blob/main/src/pages/SearchPage.jsx"
click node_chat "https://github.com/narasimhagupta2004/astrolive-hackthon/blob/main/src/pages/ChatPage.jsx"
click node_conversation "https://github.com/narasimhagupta2004/astrolive-hackthon/blob/main/src/pages/ConversationPage.jsx"
click node_call "https://github.com/narasimhagupta2004/astrolive-hackthon/blob/main/src/pages/CallPage.jsx"
click node_connected "https://github.com/narasimhagupta2004/astrolive-hackthon/blob/main/src/pages/ConnectedUsersPage.jsx"
click node_session "https://github.com/narasimhagupta2004/astrolive-hackthon/blob/main/src/state/SessionContext.jsx"
click node_catalog "https://github.com/narasimhagupta2004/astrolive-hackthon/blob/main/src/data/appData.js"
click node_shop "https://github.com/narasimhagupta2004/astrolive-hackthon/blob/main/src/pages/ShubhKartPage.jsx"
click node_cart "https://github.com/narasimhagupta2004/astrolive-hackthon/blob/main/src/pages/CartPage.jsx"
click node_address "https://github.com/narasimhagupta2004/astrolive-hackthon/blob/main/src/pages/AddressPage.jsx"
click node_order "https://github.com/narasimhagupta2004/astrolive-hackthon/blob/main/src/pages/OrderConfirmPage.jsx"
click node_wallet "https://github.com/narasimhagupta2004/astrolive-hackthon/blob/main/src/pages/WalletPage.jsx"
click node_ledger "https://github.com/narasimhagupta2004/astrolive-hackthon/blob/main/src/store/index.js"
click node_storage "https://github.com/narasimhagupta2004/astrolive-hackthon/blob/main/src/utils/storage.js"
click node_payment "https://github.com/narasimhagupta2004/astrolive-hackthon/blob/main/src/utils/razorpay.js"
click node_cosmic "https://github.com/narasimhagupta2004/astrolive-hackthon/blob/main/src/state/CosmicContext.jsx"
click node_cosmic_start "https://github.com/narasimhagupta2004/astrolive-hackthon/blob/main/src/pages/CosmicStartPage.jsx"
click node_cosmic_share "https://github.com/narasimhagupta2004/astrolive-hackthon/blob/main/src/pages/CosmicSharePage.jsx"
click node_cosmic_join "https://github.com/narasimhagupta2004/astrolive-hackthon/blob/main/src/pages/CosmicJoinPage.jsx"
click node_cosmic_reveal "https://github.com/narasimhagupta2004/astrolive-hackthon/blob/main/src/pages/CosmicRevealPage.jsx"
click node_room "https://github.com/narasimhagupta2004/astrolive-hackthon/blob/main/src/utils/cosmicRoom.js"
click node_muhurat_page "https://github.com/narasimhagupta2004/astrolive-hackthon/blob/main/src/pages/MuhuratPage.jsx"
click node_engine "https://github.com/narasimhagupta2004/astrolive-hackthon/blob/main/src/utils/muhuratEngine.js"
click node_gemini_client "https://github.com/narasimhagupta2004/astrolive-hackthon/blob/main/src/utils/geminiClient.js"
click node_panchang "https://github.com/narasimhagupta2004/astrolive-hackthon/blob/main/src/data/muhuratData.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_app,node_user toneBlue
class node_home,node_search,node_chat,node_conversation,node_call,node_connected,node_session,node_catalog toneAmber
class node_shop,node_cart,node_address,node_order,node_wallet,node_ledger,node_storage,node_payment toneMint
class node_cosmic,node_cosmic_start,node_cosmic_share,node_cosmic_join,node_cosmic_reveal,node_room,node_firebase toneRose
class node_muhurat_page,node_engine,node_gemini_client,node_gemini,node_panchang toneIndigo
```

## Components

### App navigation

- [Route coordinator](https://github.com/narasimhagupta2004/astrolive-hackthon/blob/main/src/app/App.jsx): `src/app/App.jsx`

### Consultation

- [Home discovery](https://github.com/narasimhagupta2004/astrolive-hackthon/blob/main/src/pages/HomePage.jsx): `src/pages/HomePage.jsx`
- [Advisor search](https://github.com/narasimhagupta2004/astrolive-hackthon/blob/main/src/pages/SearchPage.jsx): `src/pages/SearchPage.jsx`
- [Chat discovery](https://github.com/narasimhagupta2004/astrolive-hackthon/blob/main/src/pages/ChatPage.jsx): `src/pages/ChatPage.jsx`
- [Consultation session](https://github.com/narasimhagupta2004/astrolive-hackthon/blob/main/src/pages/ConversationPage.jsx): `src/pages/ConversationPage.jsx`
- [Call session](https://github.com/narasimhagupta2004/astrolive-hackthon/blob/main/src/pages/CallPage.jsx): `src/pages/CallPage.jsx`
- [Astrologer follow-up](https://github.com/narasimhagupta2004/astrolive-hackthon/blob/main/src/pages/ConnectedUsersPage.jsx): `src/pages/ConnectedUsersPage.jsx`
- [Session state](https://github.com/narasimhagupta2004/astrolive-hackthon/blob/main/src/state/SessionContext.jsx): `src/state/SessionContext.jsx`
- [Advisor and product data](https://github.com/narasimhagupta2004/astrolive-hackthon/blob/main/src/data/appData.js): `src/data/appData.js`

### Commerce and rewards

- [Shubh Kart](https://github.com/narasimhagupta2004/astrolive-hackthon/blob/main/src/pages/ShubhKartPage.jsx): `src/pages/ShubhKartPage.jsx`
- [Cart and checkout](https://github.com/narasimhagupta2004/astrolive-hackthon/blob/main/src/pages/CartPage.jsx): `src/pages/CartPage.jsx`
- [Order address](https://github.com/narasimhagupta2004/astrolive-hackthon/blob/main/src/pages/AddressPage.jsx): `src/pages/AddressPage.jsx`
- [Order confirmation](https://github.com/narasimhagupta2004/astrolive-hackthon/blob/main/src/pages/OrderConfirmPage.jsx): `src/pages/OrderConfirmPage.jsx`
- [Wallet and recharge](https://github.com/narasimhagupta2004/astrolive-hackthon/blob/main/src/pages/WalletPage.jsx): `src/pages/WalletPage.jsx`
- [Coins and subscription](https://github.com/narasimhagupta2004/astrolive-hackthon/blob/main/src/store/index.js): `src/store/index.js`
- [Browser storage](https://github.com/narasimhagupta2004/astrolive-hackthon/blob/main/src/utils/storage.js): `src/utils/storage.js`
- [Razorpay checkout](https://github.com/narasimhagupta2004/astrolive-hackthon/blob/main/src/utils/razorpay.js): `src/utils/razorpay.js`

### Cosmic Chemistry

- [Cosmic flow state](https://github.com/narasimhagupta2004/astrolive-hackthon/blob/main/src/state/CosmicContext.jsx): `src/state/CosmicContext.jsx`
- [Start reading](https://github.com/narasimhagupta2004/astrolive-hackthon/blob/main/src/pages/CosmicStartPage.jsx): `src/pages/CosmicStartPage.jsx`
- [Share invite](https://github.com/narasimhagupta2004/astrolive-hackthon/blob/main/src/pages/CosmicSharePage.jsx): `src/pages/CosmicSharePage.jsx`
- [Join reading](https://github.com/narasimhagupta2004/astrolive-hackthon/blob/main/src/pages/CosmicJoinPage.jsx): `src/pages/CosmicJoinPage.jsx`
- [Reveal result](https://github.com/narasimhagupta2004/astrolive-hackthon/blob/main/src/pages/CosmicRevealPage.jsx): `src/pages/CosmicRevealPage.jsx`
- [Room sync](https://github.com/narasimhagupta2004/astrolive-hackthon/blob/main/src/utils/cosmicRoom.js): `src/utils/cosmicRoom.js`
- **Firebase services**

### Muhurat AI

- [Muhurat request](https://github.com/narasimhagupta2004/astrolive-hackthon/blob/main/src/pages/MuhuratPage.jsx): `src/pages/MuhuratPage.jsx`
- [Timing recommendations](https://github.com/narasimhagupta2004/astrolive-hackthon/blob/main/src/utils/muhuratEngine.js): `src/utils/muhuratEngine.js`
- [Gemini client](https://github.com/narasimhagupta2004/astrolive-hackthon/blob/main/src/utils/geminiClient.js): `src/utils/geminiClient.js`
- **Gemini API**
- [Panchang and intent data](https://github.com/narasimhagupta2004/astrolive-hackthon/blob/main/src/data/muhuratData.js): `src/data/muhuratData.js`

### Other components

- **App user**

## Connections

- App user → Route coordinator: opens
- Route coordinator → Home discovery: routes
- Route coordinator → Advisor search: routes
- Route coordinator → Chat discovery: routes
- Route coordinator → Consultation session: routes
- Route coordinator → Call session: routes
- Route coordinator → Astrologer follow-up: routes
- Route coordinator → Shubh Kart: routes
- Route coordinator → Cart and checkout: routes
- Route coordinator → Order address: routes
- Route coordinator → Order confirmation: routes
- Route coordinator → Wallet and recharge: routes
- Route coordinator → Start reading: routes
- Route coordinator → Share invite: routes
- Route coordinator → Join reading: routes
- Route coordinator → Reveal result: routes
- Route coordinator → Muhurat request: routes
- Home discovery → Advisor and product data: reads
- Advisor search → Advisor and product data: searches
- Advisor search → Session state: starts session
- Advisor search → Consultation session: navigates
- Chat discovery → Advisor and product data: reads
- Consultation session → Session state: uses
- Call session → Session state: uses
- Astrologer follow-up → Advisor and product data: reads
- Shubh Kart → Advisor and product data: reads
- Cart and checkout → Order address: continues checkout
- Order address → Order confirmation: continues checkout
- Wallet and recharge → Coins and subscription: reads and updates
- Coins and subscription → Browser storage: persists
- Coins and subscription → Razorpay checkout: requests payment
- Start reading → Cosmic flow state: starts host flow
- Share invite → Cosmic flow state: shares room
- Join reading → Cosmic flow state: submits guest
- Reveal result → Cosmic flow state: shows result
- Cosmic flow state → Room sync: creates and syncs rooms
- Room sync → Firebase services: auth and Firestore
- Cosmic flow state → Browser storage: stores fallback result
- Muhurat request → Timing recommendations: requests windows
- Timing recommendations → Panchang and intent data: reads rules data
- Timing recommendations → Gemini client: requests recommendations
- Gemini client → Gemini API: sends prompt
- Muhurat request → Razorpay checkout: buys Plus
- Muhurat request → Coins and subscription: checks free use
