# reva599/skillsphere-mvp architecture

> Architecture diagram of the GitHub repository reva599/skillsphere-mvp, 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/reva599/skillsphere-mvp
- Repository: https://github.com/reva599/skillsphere-mvp

## Overview

SkillSphere is a web application for submitting and discovering projects, with blockchain-backed ownership, crowdfunding, DAO governance, certificates, AI-assisted idea planning, and administration. Users enter through the React app, authenticate, then use its project and community features; the API persists domain records and connects selected workflows to blockchain, IPFS, and real-time events. The graph reflects the provided tree and sampled source; without README content or excerpts for most feature controllers and pages, some subsystem wiring is necessarily omitted.

Main entry points: [`client/src/App.jsx`](https://github.com/reva599/skillsphere-mvp/blob/main/client/src/App.jsx) (SkillSphere app), [`server/server.js`](https://github.com/reva599/skillsphere-mvp/blob/main/server/server.js) (Express API), [`client/src/services/api.js`](https://github.com/reva599/skillsphere-mvp/blob/main/client/src/services/api.js) (HTTP client), [`server/controllers/fundingController.js`](https://github.com/reva599/skillsphere-mvp/blob/main/server/controllers/fundingController.js) (Funding workflows)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_client["Web client"]
  node_browser["SkillSphere app<br/>[App.jsx]"]
  node_auth_ui["Authentication UI<br/>[Auth.jsx]"]
  node_dashboard_ui["Dashboard<br/>[Dashboard.jsx]"]
  node_projects_ui["Project discovery<br/>[Projects.jsx]"]
  node_upload_ui["Project submission<br/>[UploadProject.jsx]"]
  node_community_ui["Community features<br/>[DAO.jsx]"]
  node_funding_ui["Crowdfunding<br/>[Crowdfunding.jsx]"]
  node_certificate_ui["Certificates<br/>[Certificate.jsx]"]
  node_ai_ui["Idea collaborator"]
  node_admin_ui["Admin console<br/>[AdminDashboard.jsx]"]
  node_api_client["HTTP client<br/>[api.js]"]
  node_wallet_context["Wallet context<br/>[WalletContext.jsx]"]
end

subgraph group_api["API and domain"]
  node_api_server["Express API<br/>[server.js]"]
  node_auth_api["Auth API<br/>[auth.js]"]
  node_project_api["Project API<br/>[project.js]"]
  node_project_logic["Project workflows"]
  node_dao_api["DAO API<br/>[dao.js]"]
  node_funding_logic["Funding workflows"]
  node_certificate_api["Certificate API<br/>[certificate.js]"]
  node_ai_api["AI API<br/>[aiRoutes.js]"]
  node_admin_logic["Admin operations<br/>[adminController.js]"]
  node_auth_service["Auth service<br/>[authController.js]"]
  node_ipfs_api["IPFS API<br/>[ipfs.js]"]
end

subgraph group_state["Persistence and events"]
  node_project_store[("Project records<br/>[Project.js]")]
  node_funding_store[("Funding records<br/>[Funding.js]")]
  node_user_store[("User records<br/>[User.js]")]
  node_socket["Realtime events<br/>[socket.js]"]
end

subgraph group_integrations["External integrations"]
  node_blockchain_service["Blockchain service"]
  node_ipfs_service["IPFS service<br/>[ipfs.js]"]
end

node_user(("User"))
node_wallet(("Browser wallet"))
node_chain{{"Blockchain network"}}
node_ipfs{{"IPFS"}}

node_user -->|"uses"| node_browser
node_browser -->|"routes to"| node_auth_ui
node_browser -->|"routes to"| node_dashboard_ui
node_browser -->|"routes to"| node_projects_ui
node_browser -->|"routes to"| node_upload_ui
node_browser -->|"routes to"| node_community_ui
node_browser -->|"routes to"| node_funding_ui
node_browser -->|"routes to"| node_certificate_ui
node_browser -->|"routes to"| node_ai_ui
node_browser -->|"routes to"| node_admin_ui
node_auth_ui -->|"requests"| node_api_client
node_dashboard_ui -->|"requests"| node_api_client
node_projects_ui -->|"requests"| node_api_client
node_upload_ui -->|"requests"| node_api_client
node_community_ui -->|"requests"| node_api_client
node_funding_ui -->|"requests"| node_api_client
node_certificate_ui -->|"requests"| node_api_client
node_ai_ui -->|"requests"| node_api_client
node_admin_ui -->|"requests"| node_api_client
node_wallet -->|"connects"| node_wallet_context
node_api_client -->|"HTTP requests"| node_api_server
node_api_server -->|"dispatches"| node_auth_api
node_api_server -->|"dispatches"| node_project_api
node_api_server -->|"dispatches"| node_dao_api
node_api_server -->|"dispatches"| node_certificate_api
node_api_server -->|"dispatches"| node_ai_api
node_api_server -->|"dispatches"| node_ipfs_api
node_api_server -->|"mounts"| node_auth_service
node_api_server -->|"mounts"| node_admin_logic
node_project_api -->|"routes requests"| node_project_logic
node_project_logic -->|"reads and writes"| node_project_store
node_project_logic -->|"hashes and mints"| node_blockchain_service
node_project_logic -->|"emits updates"| node_socket
node_auth_service -->|"reads and writes"| node_user_store
node_admin_logic -->|"manages"| node_project_store
node_admin_logic -->|"manages"| node_funding_store
node_admin_logic -->|"manages"| node_user_store
node_admin_logic -->|"emits updates"| node_socket
node_funding_logic -->|"reads and writes"| node_funding_store
node_funding_logic -->|"reads project"| node_project_store
node_funding_logic -->|"emits updates"| node_socket
node_funding_logic -.->|"creates campaign"| node_chain
node_funding_logic -->|"issues certificate"| node_certificate_api
node_ipfs_api -->|"dispatches"| node_ipfs_service
node_ipfs_service -->|"stores content"| node_ipfs
node_blockchain_service -.->|"hashes and mints"| node_chain

click node_browser "https://github.com/reva599/skillsphere-mvp/blob/main/client/src/App.jsx"
click node_auth_ui "https://github.com/reva599/skillsphere-mvp/blob/main/client/src/pages/Auth.jsx"
click node_dashboard_ui "https://github.com/reva599/skillsphere-mvp/blob/main/client/src/pages/Dashboard.jsx"
click node_projects_ui "https://github.com/reva599/skillsphere-mvp/blob/main/client/src/pages/Projects.jsx"
click node_upload_ui "https://github.com/reva599/skillsphere-mvp/blob/main/client/src/pages/UploadProject.jsx"
click node_community_ui "https://github.com/reva599/skillsphere-mvp/blob/main/client/src/pages/DAO.jsx"
click node_funding_ui "https://github.com/reva599/skillsphere-mvp/blob/main/client/src/pages/Crowdfunding.jsx"
click node_certificate_ui "https://github.com/reva599/skillsphere-mvp/blob/main/client/src/pages/Certificate.jsx"
click node_ai_ui "https://github.com/reva599/skillsphere-mvp/blob/main/client/src/pages/IdeaCollaborator.jsx"
click node_admin_ui "https://github.com/reva599/skillsphere-mvp/blob/main/client/src/pages/AdminDashboard.jsx"
click node_api_client "https://github.com/reva599/skillsphere-mvp/blob/main/client/src/services/api.js"
click node_wallet_context "https://github.com/reva599/skillsphere-mvp/blob/main/client/src/contexts/WalletContext.jsx"
click node_api_server "https://github.com/reva599/skillsphere-mvp/blob/main/server/server.js"
click node_auth_api "https://github.com/reva599/skillsphere-mvp/blob/main/server/routes/auth.js"
click node_project_api "https://github.com/reva599/skillsphere-mvp/blob/main/server/routes/project.js"
click node_project_logic "https://github.com/reva599/skillsphere-mvp/blob/main/server/controllers/projectController.js"
click node_dao_api "https://github.com/reva599/skillsphere-mvp/blob/main/server/routes/dao.js"
click node_funding_logic "https://github.com/reva599/skillsphere-mvp/blob/main/server/controllers/fundingController.js"
click node_certificate_api "https://github.com/reva599/skillsphere-mvp/blob/main/server/routes/certificate.js"
click node_ai_api "https://github.com/reva599/skillsphere-mvp/blob/main/server/routes/aiRoutes.js"
click node_admin_logic "https://github.com/reva599/skillsphere-mvp/blob/main/server/controllers/adminController.js"
click node_auth_service "https://github.com/reva599/skillsphere-mvp/blob/main/server/controllers/authController.js"
click node_blockchain_service "https://github.com/reva599/skillsphere-mvp/blob/main/server/services/blockchainService.js"
click node_ipfs_api "https://github.com/reva599/skillsphere-mvp/blob/main/server/routes/ipfs.js"
click node_project_store "https://github.com/reva599/skillsphere-mvp/blob/main/server/models/Project.js"
click node_funding_store "https://github.com/reva599/skillsphere-mvp/blob/main/server/models/Funding.js"
click node_user_store "https://github.com/reva599/skillsphere-mvp/blob/main/server/models/User.js"
click node_socket "https://github.com/reva599/skillsphere-mvp/blob/main/server/config/socket.js"
click node_ipfs_service "https://github.com/reva599/skillsphere-mvp/blob/main/server/utils/ipfs.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_browser,node_auth_ui,node_dashboard_ui,node_projects_ui,node_upload_ui,node_community_ui,node_funding_ui,node_certificate_ui,node_ai_ui,node_admin_ui,node_api_client,node_wallet_context,node_user,node_wallet toneBlue
class node_api_server,node_auth_api,node_project_api,node_project_logic,node_dao_api,node_funding_logic,node_certificate_api,node_ai_api,node_admin_logic,node_auth_service,node_ipfs_api toneAmber
class node_project_store,node_funding_store,node_user_store,node_socket toneMint
class node_blockchain_service,node_ipfs_service toneRose
class node_chain,node_ipfs toneIndigo
```

## Components

### Web client

- [SkillSphere app](https://github.com/reva599/skillsphere-mvp/blob/main/client/src/App.jsx): `client/src/App.jsx`
- [Authentication UI](https://github.com/reva599/skillsphere-mvp/blob/main/client/src/pages/Auth.jsx): `client/src/pages/Auth.jsx`
- [Dashboard](https://github.com/reva599/skillsphere-mvp/blob/main/client/src/pages/Dashboard.jsx): `client/src/pages/Dashboard.jsx`
- [Project discovery](https://github.com/reva599/skillsphere-mvp/blob/main/client/src/pages/Projects.jsx): `client/src/pages/Projects.jsx`
- [Project submission](https://github.com/reva599/skillsphere-mvp/blob/main/client/src/pages/UploadProject.jsx): `client/src/pages/UploadProject.jsx`
- [Community features](https://github.com/reva599/skillsphere-mvp/blob/main/client/src/pages/DAO.jsx): `client/src/pages/DAO.jsx`
- [Crowdfunding](https://github.com/reva599/skillsphere-mvp/blob/main/client/src/pages/Crowdfunding.jsx): `client/src/pages/Crowdfunding.jsx`
- [Certificates](https://github.com/reva599/skillsphere-mvp/blob/main/client/src/pages/Certificate.jsx): `client/src/pages/Certificate.jsx`
- [Idea collaborator](https://github.com/reva599/skillsphere-mvp/blob/main/client/src/pages/IdeaCollaborator.jsx): `client/src/pages/IdeaCollaborator.jsx`
- [Admin console](https://github.com/reva599/skillsphere-mvp/blob/main/client/src/pages/AdminDashboard.jsx): `client/src/pages/AdminDashboard.jsx`
- [HTTP client](https://github.com/reva599/skillsphere-mvp/blob/main/client/src/services/api.js): `client/src/services/api.js`
- [Wallet context](https://github.com/reva599/skillsphere-mvp/blob/main/client/src/contexts/WalletContext.jsx): `client/src/contexts/WalletContext.jsx`

### API and domain

- [Express API](https://github.com/reva599/skillsphere-mvp/blob/main/server/server.js): `server/server.js`
- [Auth API](https://github.com/reva599/skillsphere-mvp/blob/main/server/routes/auth.js): `server/routes/auth.js`
- [Project API](https://github.com/reva599/skillsphere-mvp/blob/main/server/routes/project.js): `server/routes/project.js`
- [Project workflows](https://github.com/reva599/skillsphere-mvp/blob/main/server/controllers/projectController.js): `server/controllers/projectController.js`
- [DAO API](https://github.com/reva599/skillsphere-mvp/blob/main/server/routes/dao.js): `server/routes/dao.js`
- [Funding workflows](https://github.com/reva599/skillsphere-mvp/blob/main/server/controllers/fundingController.js): `server/controllers/fundingController.js`
- [Certificate API](https://github.com/reva599/skillsphere-mvp/blob/main/server/routes/certificate.js): `server/routes/certificate.js`
- [AI API](https://github.com/reva599/skillsphere-mvp/blob/main/server/routes/aiRoutes.js): `server/routes/aiRoutes.js`
- [Admin operations](https://github.com/reva599/skillsphere-mvp/blob/main/server/controllers/adminController.js): `server/controllers/adminController.js`
- [Auth service](https://github.com/reva599/skillsphere-mvp/blob/main/server/controllers/authController.js): `server/controllers/authController.js`
- [IPFS API](https://github.com/reva599/skillsphere-mvp/blob/main/server/routes/ipfs.js): `server/routes/ipfs.js`

### Persistence and events

- [Project records](https://github.com/reva599/skillsphere-mvp/blob/main/server/models/Project.js): `server/models/Project.js`
- [Funding records](https://github.com/reva599/skillsphere-mvp/blob/main/server/models/Funding.js): `server/models/Funding.js`
- [User records](https://github.com/reva599/skillsphere-mvp/blob/main/server/models/User.js): `server/models/User.js`
- [Realtime events](https://github.com/reva599/skillsphere-mvp/blob/main/server/config/socket.js): `server/config/socket.js`

### External integrations

- [Blockchain service](https://github.com/reva599/skillsphere-mvp/blob/main/server/services/blockchainService.js): `server/services/blockchainService.js`
- [IPFS service](https://github.com/reva599/skillsphere-mvp/blob/main/server/utils/ipfs.js): `server/utils/ipfs.js`

### Other components

- **User**
- **Browser wallet**
- **Blockchain network**
- **IPFS**

## Connections

- User → SkillSphere app: uses
- SkillSphere app → Authentication UI: routes to
- SkillSphere app → Dashboard: routes to
- SkillSphere app → Project discovery: routes to
- SkillSphere app → Project submission: routes to
- SkillSphere app → Community features: routes to
- SkillSphere app → Crowdfunding: routes to
- SkillSphere app → Certificates: routes to
- SkillSphere app → Idea collaborator: routes to
- SkillSphere app → Admin console: routes to
- Authentication UI → HTTP client: requests
- Dashboard → HTTP client: requests
- Project discovery → HTTP client: requests
- Project submission → HTTP client: requests
- Community features → HTTP client: requests
- Crowdfunding → HTTP client: requests
- Certificates → HTTP client: requests
- Idea collaborator → HTTP client: requests
- Admin console → HTTP client: requests
- Browser wallet → Wallet context: connects
- HTTP client → Express API: HTTP requests
- Express API → Auth API: dispatches
- Express API → Project API: dispatches
- Express API → DAO API: dispatches
- Express API → Certificate API: dispatches
- Express API → AI API: dispatches
- Express API → IPFS API: dispatches
- Express API → Auth service: mounts
- Express API → Admin operations: mounts
- Project API → Project workflows: routes requests
- Project workflows → Project records: reads and writes
- Project workflows → Blockchain service: hashes and mints
- Project workflows → Realtime events: emits updates
- Auth service → User records: reads and writes
- Admin operations → Project records: manages
- Admin operations → Funding records: manages
- Admin operations → User records: manages
- Admin operations → Realtime events: emits updates
- Funding workflows → Funding records: reads and writes
- Funding workflows → Project records: reads project
- Funding workflows → Realtime events: emits updates
- Funding workflows → Blockchain network: creates campaign
- Funding workflows → Certificate API: issues certificate
- IPFS API → IPFS service: dispatches
- IPFS service → IPFS: stores content
- Blockchain service → Blockchain network: hashes and mints
