# africk-hunter/intraconnected architecture

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

- Interactive diagram: https://gitdiagram.com/africk-hunter/intraconnected
- Repository: https://github.com/africk-hunter/intraconnected

## Overview

Intraconnected is a visual idea-tracking application for creating and exploring linked ideas, notes, and checklists. Users sign in, open their idea space, create or edit content, navigate into a node as the current root, and reorganize nodes by dragging; the Idea page coordinates views and persistence. The tree and excerpts support authentication with encrypted-key handling, local/Firebase idea storage, mobile and map views, and a feature-request service. Several component and utility internals were not sampled, so their wiring is shown only where documented or directly evidenced.

Main entry points: [`src/pages/Idea.tsx`](https://github.com/africk-hunter/intraconnected/blob/main/src/pages/Idea.tsx) (Idea Workspace), [`src/components/Auth.tsx`](https://github.com/africk-hunter/intraconnected/blob/main/src/components/Auth.tsx) (Auth UI), [`src/Index.tsx`](https://github.com/africk-hunter/intraconnected/blob/main/src/Index.tsx) (Router & Provider), [`src/utilities/idea/storage.tsx`](https://github.com/africk-hunter/intraconnected/blob/main/src/utilities/idea/storage.tsx) (Idea Storage)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_app["Application"]
  node_entry["Router &amp; Provider<br/>[Index.tsx]"]
end

subgraph group_ideas["Idea Workspace"]
  node_workspace["Idea Workspace<br/>[Idea.tsx]"]
  node_context["Workspace State<br/>[IdeaContext.tsx]"]
  node_creation["Content Creation<br/>[CreationModal.tsx]"]
  node_mindmap["Mind Map Views<br/>[MindMap.tsx]"]
  node_mobilemap["Mobile Map<br/>[MobileMindMap.tsx]"]
  node_node["Idea Nodes<br/>[IdeaNode.tsx]"]
  node_organizers["Idea Organization<br/>[organizers.tsx]"]
  node_ideahelpers["Idea Helpers<br/>[helpers.tsx]"]
end

subgraph group_identity["Identity &amp; Security"]
  node_login["Login Page<br/>[Login.tsx]"]
  node_authui["Auth UI<br/>[Auth.tsx]"]
  node_authfb["Auth Operations<br/>[authFirebase.tsx]"]
  node_crypto["Key Encryption<br/>[crypto.ts]"]
  node_dek["Session Key<br/>[dekStore.ts]"]
end

subgraph group_persistence["Persistence"]
  node_storage["Idea Storage<br/>[storage.tsx]"]
  node_firebasehelpers["Firestore Helpers"]
  node_local[("Browser Storage")]
end

subgraph group_requests["Feature Requests"]
  node_featureclient["Feature Requests<br/>[featureRequests.ts]"]
  node_submit["Submit Request"]
  node_status["Request Status"]
  node_admin["Admin Firestore<br/>[firebaseAdmin.ts]"]
end

node_user(("User"))
node_firebaseauth{{"Firebase Auth"}}
node_firestore[("Firestore")]
node_github{{"GitHub Issues"}}

node_user -->|"opens app"| node_entry
node_entry -->|"routes"| node_login
node_entry -->|"routes"| node_workspace
node_entry -->|"provides state"| node_context
node_login -->|"renders"| node_authui
node_authui -->|"authenticates"| node_firebaseauth
node_authui -->|"wraps keys"| node_crypto
node_authui -->|"stores key"| node_dek
node_authui -->|"key metadata"| node_firebasehelpers
node_authui -->|"account actions"| node_authfb
node_authfb -->|"signs out"| node_firebaseauth
node_authfb -->|"deletes user data"| node_firestore
node_workspace -->|"reads state"| node_context
node_workspace -->|"loads ideas"| node_ideahelpers
node_workspace -->|"fetches ideas"| node_firebasehelpers
node_workspace -->|"renders creation"| node_creation
node_workspace -->|"renders map"| node_mindmap
node_workspace -->|"renders mobile map"| node_mobilemap
node_workspace -->|"displays nodes"| node_node
node_workspace -->|"updates parent"| node_storage
node_creation -->|"submits content"| node_workspace
node_storage -->|"reads idea list"| node_ideahelpers
node_storage -->|"reads and writes"| node_local
node_storage -->|"syncs changes"| node_firebasehelpers
node_firebasehelpers -->|"reads and writes"| node_firestore
node_user -->|"requests feature"| node_featureclient
node_featureclient -->|"submits request"| node_submit
node_featureclient -->|"checks status"| node_status
node_submit -->|"verifies and tracks"| node_admin
node_status -->|"checks tracking"| node_admin
node_submit -.->|"creates issue"| node_github
node_admin -->|"tracks requests"| node_firestore

click node_entry "https://github.com/africk-hunter/intraconnected/blob/main/src/Index.tsx"
click node_login "https://github.com/africk-hunter/intraconnected/blob/main/src/pages/Login.tsx"
click node_authui "https://github.com/africk-hunter/intraconnected/blob/main/src/components/Auth.tsx"
click node_authfb "https://github.com/africk-hunter/intraconnected/blob/main/src/utilities/firebase/authFirebase.tsx"
click node_crypto "https://github.com/africk-hunter/intraconnected/blob/main/src/utilities/crypto.ts"
click node_dek "https://github.com/africk-hunter/intraconnected/blob/main/src/utilities/dekStore.ts"
click node_workspace "https://github.com/africk-hunter/intraconnected/blob/main/src/pages/Idea.tsx"
click node_context "https://github.com/africk-hunter/intraconnected/blob/main/src/context/IdeaContext.tsx"
click node_creation "https://github.com/africk-hunter/intraconnected/blob/main/src/components/modals/CreationModal.tsx"
click node_mindmap "https://github.com/africk-hunter/intraconnected/blob/main/src/components/MindMap.tsx"
click node_mobilemap "https://github.com/africk-hunter/intraconnected/blob/main/src/components/MobileMindMap.tsx"
click node_node "https://github.com/africk-hunter/intraconnected/blob/main/src/components/IdeaNode.tsx"
click node_organizers "https://github.com/africk-hunter/intraconnected/blob/main/src/utilities/idea/organizers.tsx"
click node_ideahelpers "https://github.com/africk-hunter/intraconnected/blob/main/src/utilities/idea/helpers.tsx"
click node_storage "https://github.com/africk-hunter/intraconnected/blob/main/src/utilities/idea/storage.tsx"
click node_firebasehelpers "https://github.com/africk-hunter/intraconnected/blob/main/src/utilities/firebase/firebaseHelpers.tsx"
click node_featureclient "https://github.com/africk-hunter/intraconnected/blob/main/src/utilities/firebase/featureRequests.ts"
click node_submit "https://github.com/africk-hunter/intraconnected/blob/main/netlify/functions/submit-feature-request.ts"
click node_status "https://github.com/africk-hunter/intraconnected/blob/main/netlify/functions/check-feature-request-status.ts"
click node_admin "https://github.com/africk-hunter/intraconnected/blob/main/netlify/functions/lib/firebaseAdmin.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_entry,node_user toneBlue
class node_workspace,node_context,node_creation,node_mindmap,node_mobilemap,node_node,node_organizers,node_ideahelpers,node_firestore toneAmber
class node_login,node_authui,node_authfb,node_crypto,node_dek toneMint
class node_storage,node_firebasehelpers,node_local toneRose
class node_featureclient,node_submit,node_status,node_admin,node_firebaseauth,node_github toneIndigo
```

## Components

### Application

- [Router & Provider](https://github.com/africk-hunter/intraconnected/blob/main/src/Index.tsx): `src/Index.tsx`

### Idea Workspace

- [Idea Workspace](https://github.com/africk-hunter/intraconnected/blob/main/src/pages/Idea.tsx): `src/pages/Idea.tsx`
- [Workspace State](https://github.com/africk-hunter/intraconnected/blob/main/src/context/IdeaContext.tsx): `src/context/IdeaContext.tsx`
- [Content Creation](https://github.com/africk-hunter/intraconnected/blob/main/src/components/modals/CreationModal.tsx): `src/components/modals/CreationModal.tsx`
- [Mind Map Views](https://github.com/africk-hunter/intraconnected/blob/main/src/components/MindMap.tsx): `src/components/MindMap.tsx`
- [Mobile Map](https://github.com/africk-hunter/intraconnected/blob/main/src/components/MobileMindMap.tsx): `src/components/MobileMindMap.tsx`
- [Idea Nodes](https://github.com/africk-hunter/intraconnected/blob/main/src/components/IdeaNode.tsx): `src/components/IdeaNode.tsx`
- [Idea Organization](https://github.com/africk-hunter/intraconnected/blob/main/src/utilities/idea/organizers.tsx): `src/utilities/idea/organizers.tsx`
- [Idea Helpers](https://github.com/africk-hunter/intraconnected/blob/main/src/utilities/idea/helpers.tsx): `src/utilities/idea/helpers.tsx`

### Identity & Security

- [Login Page](https://github.com/africk-hunter/intraconnected/blob/main/src/pages/Login.tsx): `src/pages/Login.tsx`
- [Auth UI](https://github.com/africk-hunter/intraconnected/blob/main/src/components/Auth.tsx): `src/components/Auth.tsx`
- [Auth Operations](https://github.com/africk-hunter/intraconnected/blob/main/src/utilities/firebase/authFirebase.tsx): `src/utilities/firebase/authFirebase.tsx`
- [Key Encryption](https://github.com/africk-hunter/intraconnected/blob/main/src/utilities/crypto.ts): `src/utilities/crypto.ts`
- [Session Key](https://github.com/africk-hunter/intraconnected/blob/main/src/utilities/dekStore.ts): `src/utilities/dekStore.ts`

### Persistence

- [Idea Storage](https://github.com/africk-hunter/intraconnected/blob/main/src/utilities/idea/storage.tsx): `src/utilities/idea/storage.tsx`
- [Firestore Helpers](https://github.com/africk-hunter/intraconnected/blob/main/src/utilities/firebase/firebaseHelpers.tsx): `src/utilities/firebase/firebaseHelpers.tsx`
- **Browser Storage**

### Feature Requests

- [Feature Requests](https://github.com/africk-hunter/intraconnected/blob/main/src/utilities/firebase/featureRequests.ts): `src/utilities/firebase/featureRequests.ts`
- [Submit Request](https://github.com/africk-hunter/intraconnected/blob/main/netlify/functions/submit-feature-request.ts): `netlify/functions/submit-feature-request.ts`
- [Request Status](https://github.com/africk-hunter/intraconnected/blob/main/netlify/functions/check-feature-request-status.ts): `netlify/functions/check-feature-request-status.ts`
- [Admin Firestore](https://github.com/africk-hunter/intraconnected/blob/main/netlify/functions/lib/firebaseAdmin.ts): `netlify/functions/lib/firebaseAdmin.ts`

### Other components

- **User**
- **Firebase Auth**
- **Firestore**
- **GitHub Issues**

## Connections

- User → Router & Provider: opens app
- Router & Provider → Login Page: routes
- Router & Provider → Idea Workspace: routes
- Router & Provider → Workspace State: provides state
- Login Page → Auth UI: renders
- Auth UI → Firebase Auth: authenticates
- Auth UI → Key Encryption: wraps keys
- Auth UI → Session Key: stores key
- Auth UI → Firestore Helpers: key metadata
- Auth UI → Auth Operations: account actions
- Auth Operations → Firebase Auth: signs out
- Auth Operations → Firestore: deletes user data
- Idea Workspace → Workspace State: reads state
- Idea Workspace → Idea Helpers: loads ideas
- Idea Workspace → Firestore Helpers: fetches ideas
- Idea Workspace → Content Creation: renders creation
- Idea Workspace → Mind Map Views: renders map
- Idea Workspace → Mobile Map: renders mobile map
- Idea Workspace → Idea Nodes: displays nodes
- Idea Workspace → Idea Storage: updates parent
- Content Creation → Idea Workspace: submits content
- Idea Storage → Idea Helpers: reads idea list
- Idea Storage → Browser Storage: reads and writes
- Idea Storage → Firestore Helpers: syncs changes
- Firestore Helpers → Firestore: reads and writes
- User → Feature Requests: requests feature
- Feature Requests → Submit Request: submits request
- Feature Requests → Request Status: checks status
- Submit Request → Admin Firestore: verifies and tracks
- Request Status → Admin Firestore: checks tracking
- Submit Request → GitHub Issues: creates issue
- Admin Firestore → Firestore: tracks requests
