# juma1-hub/skillspace001 architecture

> Architecture diagram of the GitHub repository juma1-hub/skillspace001, 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/juma1-hub/skillspace001
- Repository: https://github.com/juma1-hub/skillspace001

## Overview

Crystal Investments is a frontend investment-company site with investor account pages and a browser-based admin workspace. Visitors explore the firm and opportunities; investors use the portal for account services; administrators review records and manage allocations, content, settings, referrals, and workspace roles. The README describes analytics and approval synchronization, but warns that localStorage is device-local and role changes are not security controls. Edges reflect documented references and shown calls; unsampled capabilities are represented without inferred internal flows.

Main entry points: [`lib/supabase.ts`](https://github.com/juma1-hub/skillspace001/blob/main/lib/supabase.ts) (Supabase Client), [`components/AdminConsole.tsx`](https://github.com/juma1-hub/skillspace001/blob/main/components/AdminConsole.tsx) (Admin Workspace), [`app/investor/page.tsx`](https://github.com/juma1-hub/skillspace001/blob/main/app/investor/page.tsx) (Investor Routes), [`components/InvestorPortal.tsx`](https://github.com/juma1-hub/skillspace001/blob/main/components/InvestorPortal.tsx) (Account Services)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_public["Public Website"]
  node_home["Homepage<br/>[page.tsx]"]
  node_opportunities["Opportunities<br/>[page.tsx]"]
  node_public_pages["Company Pages<br/>[page.tsx]"]
  node_site_shell["Site Header/Footer<br/>[layout.tsx]"]
  node_content_text["Editable Page Text"]
end

subgraph group_investor["Investor Portal"]
  node_investor_routes["Investor Routes<br/>[page.tsx]"]
  node_investor_portal["Account Services<br/>[InvestorPortal.tsx]"]
  node_live_overview["Live Overview"]
  node_referral_panel["Investor Referrals"]
  node_login_register["Login and Registration<br/>[page.tsx]"]
end

subgraph group_admin["Admin Workspace"]
  node_admin_route["Admin Route<br/>[page.tsx]"]
  node_admin_console["Admin Workspace<br/>[AdminConsole.tsx]"]
  node_portfolio_admin["Allocation Manager"]
  node_site_admin["Site Configuration"]
  node_market_admin["Market Conditions"]
  node_referral_admin["Referral Commissions"]
end

subgraph group_integration["Data Integrations"]
  node_browser_store[("Browser Storage")]
  node_supabase_client["Supabase Client<br/>[supabase.ts]"]
end

node_visitor(("Visitor"))
node_investor_actor(("Investor"))
node_admin_actor(("Administrator"))
node_supabase_service[("Supabase")]

node_visitor -->|"visits"| node_home
node_visitor -->|"explores"| node_opportunities
node_visitor -->|"browses"| node_public_pages
node_home -->|"renders"| node_content_text
node_opportunities -->|"renders"| node_content_text
node_public_pages -->|"renders"| node_content_text
node_site_shell -->|"frames pages"| node_visitor
node_investor_actor -->|"opens account"| 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_actor -->|"signs in or registers"| node_login_register
node_login_register -->|"uses"| node_supabase_client
node_admin_actor -->|"opens workspace"| node_admin_route
node_admin_route -->|"renders"| node_admin_console
node_admin_console -->|"uses"| node_portfolio_admin
node_admin_console -->|"uses"| node_site_admin
node_admin_console -->|"uses"| node_market_admin
node_admin_console -->|"uses"| node_referral_admin
node_admin_console -->|"reads and writes"| node_browser_store
node_portfolio_admin -->|"reads and writes"| node_browser_store
node_site_admin -->|"uses"| node_supabase_client
node_referral_admin -->|"uses"| node_supabase_client
node_investor_portal -->|"uses"| node_supabase_client
node_live_overview -->|"uses"| node_supabase_client
node_referral_panel -->|"uses"| node_supabase_client
node_supabase_client -->|"connects"| node_supabase_service

click node_home "https://github.com/juma1-hub/skillspace001/blob/main/app/page.tsx"
click node_opportunities "https://github.com/juma1-hub/skillspace001/blob/main/app/opportunities/page.tsx"
click node_public_pages "https://github.com/juma1-hub/skillspace001/blob/main/app/about/page.tsx"
click node_site_shell "https://github.com/juma1-hub/skillspace001/blob/main/app/layout.tsx"
click node_content_text "https://github.com/juma1-hub/skillspace001/blob/main/components/SiteContentText.tsx"
click node_investor_routes "https://github.com/juma1-hub/skillspace001/blob/main/app/investor/page.tsx"
click node_investor_portal "https://github.com/juma1-hub/skillspace001/blob/main/components/InvestorPortal.tsx"
click node_live_overview "https://github.com/juma1-hub/skillspace001/blob/main/components/InvestorLiveOverview.tsx"
click node_referral_panel "https://github.com/juma1-hub/skillspace001/blob/main/components/InvestorReferralPanel.tsx"
click node_login_register "https://github.com/juma1-hub/skillspace001/blob/main/app/login/page.tsx"
click node_admin_route "https://github.com/juma1-hub/skillspace001/blob/main/app/admin/page.tsx"
click node_admin_console "https://github.com/juma1-hub/skillspace001/blob/main/components/AdminConsole.tsx"
click node_portfolio_admin "https://github.com/juma1-hub/skillspace001/blob/main/components/AdminPortfolioManager.tsx"
click node_site_admin "https://github.com/juma1-hub/skillspace001/blob/main/components/AdminSiteManager.tsx"
click node_market_admin "https://github.com/juma1-hub/skillspace001/blob/main/components/MarketConditionsAdmin.tsx"
click node_referral_admin "https://github.com/juma1-hub/skillspace001/blob/main/components/AdminReferralManager.tsx"
click node_supabase_client "https://github.com/juma1-hub/skillspace001/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_public_pages,node_site_shell,node_content_text toneBlue
class node_investor_routes,node_investor_portal,node_live_overview,node_referral_panel,node_login_register,node_supabase_service toneAmber
class node_admin_route,node_admin_console,node_portfolio_admin,node_site_admin,node_market_admin,node_referral_admin toneMint
class node_browser_store,node_supabase_client toneRose
class node_visitor,node_investor_actor,node_admin_actor toneIndigo
```

## Components

### Public Website

- [Homepage](https://github.com/juma1-hub/skillspace001/blob/main/app/page.tsx): `app/page.tsx`
- [Opportunities](https://github.com/juma1-hub/skillspace001/blob/main/app/opportunities/page.tsx): `app/opportunities/page.tsx`
- [Company Pages](https://github.com/juma1-hub/skillspace001/blob/main/app/about/page.tsx): `app/about/page.tsx`
- [Site Header/Footer](https://github.com/juma1-hub/skillspace001/blob/main/app/layout.tsx): `app/layout.tsx`
- [Editable Page Text](https://github.com/juma1-hub/skillspace001/blob/main/components/SiteContentText.tsx): `components/SiteContentText.tsx`

### Investor Portal

- [Investor Routes](https://github.com/juma1-hub/skillspace001/blob/main/app/investor/page.tsx): `app/investor/page.tsx`
- [Account Services](https://github.com/juma1-hub/skillspace001/blob/main/components/InvestorPortal.tsx): `components/InvestorPortal.tsx`
- [Live Overview](https://github.com/juma1-hub/skillspace001/blob/main/components/InvestorLiveOverview.tsx): `components/InvestorLiveOverview.tsx`
- [Investor Referrals](https://github.com/juma1-hub/skillspace001/blob/main/components/InvestorReferralPanel.tsx): `components/InvestorReferralPanel.tsx`
- [Login and Registration](https://github.com/juma1-hub/skillspace001/blob/main/app/login/page.tsx): `app/login/page.tsx`

### Admin Workspace

- [Admin Route](https://github.com/juma1-hub/skillspace001/blob/main/app/admin/page.tsx): `app/admin/page.tsx`
- [Admin Workspace](https://github.com/juma1-hub/skillspace001/blob/main/components/AdminConsole.tsx): `components/AdminConsole.tsx`
- [Allocation Manager](https://github.com/juma1-hub/skillspace001/blob/main/components/AdminPortfolioManager.tsx): `components/AdminPortfolioManager.tsx`
- [Site Configuration](https://github.com/juma1-hub/skillspace001/blob/main/components/AdminSiteManager.tsx): `components/AdminSiteManager.tsx`
- [Market Conditions](https://github.com/juma1-hub/skillspace001/blob/main/components/MarketConditionsAdmin.tsx): `components/MarketConditionsAdmin.tsx`
- [Referral Commissions](https://github.com/juma1-hub/skillspace001/blob/main/components/AdminReferralManager.tsx): `components/AdminReferralManager.tsx`

### Data Integrations

- **Browser Storage**
- [Supabase Client](https://github.com/juma1-hub/skillspace001/blob/main/lib/supabase.ts): `lib/supabase.ts`

### Other components

- **Visitor**
- **Investor**
- **Administrator**
- **Supabase**

## Connections

- Visitor → Homepage: visits (evidence: `app/page.tsx`)
- Visitor → Opportunities: explores (evidence: `app/opportunities/page.tsx`)
- Visitor → Company Pages: browses (evidence: `app/about/page.tsx`)
- Homepage → Editable Page Text: renders (evidence: `app/page.tsx`)
- Opportunities → Editable Page Text: renders (evidence: `app/opportunities/page.tsx`)
- Company Pages → Editable Page Text: renders (evidence: `app/about/page.tsx`)
- Site Header/Footer → Visitor: frames pages (evidence: `app/layout.tsx`)
- Investor → Investor Routes: opens account (evidence: `app/investor/page.tsx`)
- Investor Routes → Account Services: renders (evidence: `app/investor/page.tsx`)
- Investor Routes → Live Overview: renders (evidence: `app/investor/page.tsx`)
- Account Services → Investor Referrals: renders (evidence: `components/InvestorPortal.tsx`)
- Investor → Login and Registration: signs in or registers (evidence: `app/login/page.tsx`)
- Login and Registration → Supabase Client: uses (evidence: `app/login/page.tsx`)
- Administrator → Admin Route: opens workspace (evidence: `app/admin/page.tsx`)
- Admin Route → Admin Workspace: renders (evidence: `app/admin/page.tsx`)
- Admin Workspace → Allocation Manager: uses (evidence: `components/AdminConsole.tsx`)
- Admin Workspace → Site Configuration: uses (evidence: `components/AdminConsole.tsx`)
- Admin Workspace → Market Conditions: uses (evidence: `components/AdminConsole.tsx`)
- Admin Workspace → Referral Commissions: uses (evidence: `components/AdminConsole.tsx`)
- Admin Workspace → Browser Storage: reads and writes (evidence: `components/AdminConsole.tsx`)
- Allocation Manager → Browser Storage: reads and writes
- Site Configuration → Supabase Client: uses (evidence: `components/AdminSiteManager.tsx`)
- Referral Commissions → Supabase Client: uses (evidence: `components/AdminReferralManager.tsx`)
- Account Services → Supabase Client: uses (evidence: `components/InvestorPortal.tsx`)
- Live Overview → Supabase Client: uses (evidence: `components/InvestorLiveOverview.tsx`)
- Investor Referrals → Supabase Client: uses (evidence: `components/InvestorReferralPanel.tsx`)
- Supabase Client → Supabase: connects (evidence: `lib/supabase.ts`)
