# juma1-hub/crystal-investment- architecture

> Architecture diagram of the GitHub repository juma1-hub/crystal-investment-, generated by GitDiagram from its file tree, README and a sample of source files (last updated 2026-11-11). It is an AI-made overview: check details against the source.

- Interactive diagram: https://gitdiagram.com/juma1-hub/crystal-investment-
- Repository: https://github.com/juma1-hub/crystal-investment-

## Overview

Crystal Investments is a frontend investment-company site with an investor portal and a browser-storage admin workspace. The main workflow is an administrator reviewing contribution and withdrawal records, recording decisions and allocations, and viewing analytics; investors use account pages for profile, investment, and referral services. Public pages describe the firm and its opportunities. The README emphasizes that records and role changes are local prototype data, not centrally enforced financial operations. Some capabilities are documented but their implementation details were not sampled, so those links are omitted.

Main entry points: [`components/AdminConsole.tsx`](https://github.com/juma1-hub/crystal-investment-/blob/main/components/AdminConsole.tsx) (Admin workspace), [`lib/supabase.ts`](https://github.com/juma1-hub/crystal-investment-/blob/main/lib/supabase.ts) (Supabase client), [`app/investor/page.tsx`](https://github.com/juma1-hub/crystal-investment-/blob/main/app/investor/page.tsx) (Investor routes), [`components/InvestorPortal.tsx`](https://github.com/juma1-hub/crystal-investment-/blob/main/components/InvestorPortal.tsx) (Investor portal)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_public["Public website"]
  node_home["Home page<br/>[page.tsx]"]
  node_opportunities["Opportunities<br/>[page.tsx]"]
  node_company_pages["Company pages<br/>[page.tsx]"]
  node_site_content["Editable site text"]
end

subgraph group_investor["Investor services"]
  node_investor_routes["Investor routes<br/>[page.tsx]"]
  node_investor_portal["Investor portal<br/>[InvestorPortal.tsx]"]
  node_live_overview["Live overview"]
  node_referral_panel["Referral panel"]
end

subgraph group_admin["Admin workspace"]
  node_admin_route["Admin route<br/>[page.tsx]"]
  node_admin_console["Admin workspace<br/>[AdminConsole.tsx]"]
  node_portfolio_manager["Portfolio allocations"]
  node_site_manager["Site settings"]
  node_market_admin["Market conditions"]
  node_referral_admin["Referral commissions"]
end

subgraph group_integrations["Data services"]
  node_storage[("Browser localStorage")]
  node_supabase_client["Supabase client<br/>[supabase.ts]"]
end

node_visitor(("Site visitor"))
node_investor(("Investor"))
node_admin_user(("Administrator"))
node_supabase[("Supabase service")]

node_visitor -->|"browses"| node_home
node_visitor -->|"explores"| node_opportunities
node_home -->|"renders"| node_site_content
node_opportunities -->|"renders"| node_site_content
node_investor -->|"opens"| node_investor_routes
node_investor_routes -->|"renders"| node_investor_portal
node_investor_routes -->|"renders"| node_live_overview
node_investor_portal -->|"renders"| node_referral_panel
node_investor_portal -->|"uses"| node_supabase_client
node_live_overview -->|"uses"| node_supabase_client
node_referral_panel -->|"uses"| node_supabase_client
node_admin_user -->|"opens"| node_admin_route
node_admin_route -->|"renders"| node_admin_console
node_admin_console -->|"renders"| node_portfolio_manager
node_admin_console -->|"renders"| node_site_manager
node_admin_console -->|"renders"| node_market_admin
node_admin_console -->|"renders"| node_referral_admin
node_admin_console -->|"reads and writes"| node_storage
node_portfolio_manager -->|"reads and writes"| node_storage
node_site_manager -->|"reads and writes"| node_storage
node_referral_admin -->|"calls"| node_supabase_client
node_supabase_client -->|"connects"| node_supabase

click node_home "https://github.com/juma1-hub/crystal-investment-/blob/main/app/page.tsx"
click node_opportunities "https://github.com/juma1-hub/crystal-investment-/blob/main/app/opportunities/page.tsx"
click node_company_pages "https://github.com/juma1-hub/crystal-investment-/blob/main/app/about/page.tsx"
click node_site_content "https://github.com/juma1-hub/crystal-investment-/blob/main/components/SiteContentText.tsx"
click node_investor_routes "https://github.com/juma1-hub/crystal-investment-/blob/main/app/investor/page.tsx"
click node_investor_portal "https://github.com/juma1-hub/crystal-investment-/blob/main/components/InvestorPortal.tsx"
click node_live_overview "https://github.com/juma1-hub/crystal-investment-/blob/main/components/InvestorLiveOverview.tsx"
click node_referral_panel "https://github.com/juma1-hub/crystal-investment-/blob/main/components/InvestorReferralPanel.tsx"
click node_admin_route "https://github.com/juma1-hub/crystal-investment-/blob/main/app/admin/page.tsx"
click node_admin_console "https://github.com/juma1-hub/crystal-investment-/blob/main/components/AdminConsole.tsx"
click node_portfolio_manager "https://github.com/juma1-hub/crystal-investment-/blob/main/components/AdminPortfolioManager.tsx"
click node_site_manager "https://github.com/juma1-hub/crystal-investment-/blob/main/components/AdminSiteManager.tsx"
click node_market_admin "https://github.com/juma1-hub/crystal-investment-/blob/main/components/MarketConditionsAdmin.tsx"
click node_referral_admin "https://github.com/juma1-hub/crystal-investment-/blob/main/components/AdminReferralManager.tsx"
click node_supabase_client "https://github.com/juma1-hub/crystal-investment-/blob/main/lib/supabase.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_home,node_opportunities,node_company_pages,node_site_content toneBlue
class node_investor_routes,node_investor_portal,node_live_overview,node_referral_panel,node_supabase toneAmber
class node_admin_route,node_admin_console,node_portfolio_manager,node_site_manager,node_market_admin,node_referral_admin toneMint
class node_storage,node_supabase_client toneRose
class node_visitor,node_investor,node_admin_user toneIndigo
```

## Components

### Public website

- [Home page](https://github.com/juma1-hub/crystal-investment-/blob/main/app/page.tsx): `app/page.tsx`
- [Opportunities](https://github.com/juma1-hub/crystal-investment-/blob/main/app/opportunities/page.tsx): `app/opportunities/page.tsx`
- [Company pages](https://github.com/juma1-hub/crystal-investment-/blob/main/app/about/page.tsx): `app/about/page.tsx`
- [Editable site text](https://github.com/juma1-hub/crystal-investment-/blob/main/components/SiteContentText.tsx): `components/SiteContentText.tsx`

### Investor services

- [Investor routes](https://github.com/juma1-hub/crystal-investment-/blob/main/app/investor/page.tsx): `app/investor/page.tsx`
- [Investor portal](https://github.com/juma1-hub/crystal-investment-/blob/main/components/InvestorPortal.tsx): `components/InvestorPortal.tsx`
- [Live overview](https://github.com/juma1-hub/crystal-investment-/blob/main/components/InvestorLiveOverview.tsx): `components/InvestorLiveOverview.tsx`
- [Referral panel](https://github.com/juma1-hub/crystal-investment-/blob/main/components/InvestorReferralPanel.tsx): `components/InvestorReferralPanel.tsx`

### Admin workspace

- [Admin route](https://github.com/juma1-hub/crystal-investment-/blob/main/app/admin/page.tsx): `app/admin/page.tsx`
- [Admin workspace](https://github.com/juma1-hub/crystal-investment-/blob/main/components/AdminConsole.tsx): `components/AdminConsole.tsx`
- [Portfolio allocations](https://github.com/juma1-hub/crystal-investment-/blob/main/components/AdminPortfolioManager.tsx): `components/AdminPortfolioManager.tsx`
- [Site settings](https://github.com/juma1-hub/crystal-investment-/blob/main/components/AdminSiteManager.tsx): `components/AdminSiteManager.tsx`
- [Market conditions](https://github.com/juma1-hub/crystal-investment-/blob/main/components/MarketConditionsAdmin.tsx): `components/MarketConditionsAdmin.tsx`
- [Referral commissions](https://github.com/juma1-hub/crystal-investment-/blob/main/components/AdminReferralManager.tsx): `components/AdminReferralManager.tsx`

### Data services

- **Browser localStorage**
- [Supabase client](https://github.com/juma1-hub/crystal-investment-/blob/main/lib/supabase.ts): `lib/supabase.ts`

### Other components

- **Site visitor**
- **Investor**
- **Administrator**
- **Supabase service**

## Connections

- Site visitor → Home page: browses (evidence: `app/page.tsx`)
- Site visitor → Opportunities: explores (evidence: `app/opportunities/page.tsx`)
- Home page → Editable site text: renders (evidence: `app/page.tsx`)
- Opportunities → Editable site text: renders (evidence: `app/opportunities/page.tsx`)
- Investor → Investor routes: opens (evidence: `app/investor/page.tsx`)
- Investor routes → Investor portal: renders (evidence: `app/investor/page.tsx`)
- Investor routes → Live overview: renders (evidence: `app/investor/page.tsx`)
- Investor portal → Referral panel: renders (evidence: `components/InvestorPortal.tsx`)
- Investor portal → Supabase client: uses (evidence: `components/InvestorPortal.tsx`)
- Live overview → Supabase client: uses (evidence: `components/InvestorLiveOverview.tsx`)
- Referral panel → Supabase client: uses (evidence: `components/InvestorReferralPanel.tsx`)
- Administrator → Admin route: opens (evidence: `app/admin/page.tsx`)
- Admin route → Admin workspace: renders (evidence: `app/admin/page.tsx`)
- Admin workspace → Portfolio allocations: renders (evidence: `components/AdminConsole.tsx`)
- Admin workspace → Site settings: renders (evidence: `components/AdminConsole.tsx`)
- Admin workspace → Market conditions: renders (evidence: `components/AdminConsole.tsx`)
- Admin workspace → Referral commissions: renders (evidence: `components/AdminConsole.tsx`)
- Admin workspace → Browser localStorage: reads and writes (evidence: `components/AdminConsole.tsx`)
- Portfolio allocations → Browser localStorage: reads and writes (evidence: `components/AdminPortfolioManager.tsx`)
- Site settings → Browser localStorage: reads and writes (evidence: `components/AdminSiteManager.tsx`)
- Referral commissions → Supabase client: calls (evidence: `components/AdminReferralManager.tsx`)
- Supabase client → Supabase service: connects (evidence: `lib/supabase.ts`)
