# harashsuq-ui/harashsuq architecture

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

## Overview

Harashsuq is a browser-based marketplace for AI-work assets, with seller uploads and reviewed listings, buyer checkout, and access to purchased files. The browser app calls the Node HTTP server, which dispatches API routes to business services and persists marketplace state in SQLite. Payments use an external on-chain fee-splitting rail; the repository also documents a PYMSTR checkout option. The graph preserves these product areas while grouping unsampled route and service details at their existing directories; some internal wiring is therefore shown only where supported by the README or excerpts.

Main entry points: [`marketplace/src/routes`](https://github.com/harashsuq-ui/harashsuq/tree/main/marketplace/src/routes) (Marketplace routes), [`marketplace/src/db/index.js`](https://github.com/harashsuq-ui/harashsuq/blob/main/marketplace/src/db/index.js) (SQLite database), [`marketplace/server.js`](https://github.com/harashsuq-ui/harashsuq/blob/main/marketplace/server.js) (HTTP server), [`marketplace/src/routes/index.js`](https://github.com/harashsuq-ui/harashsuq/blob/main/marketplace/src/routes/index.js) (API dispatch)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_web["Browser application"]
  node_browser["Marketplace UI<br/>[app.js]"]
  node_pages["Product pages"]
  node_clientapi["Browser API<br/>[api.js]"]
end

subgraph group_api["HTTP and identity"]
  node_http["HTTP server<br/>[server.js]"]
  node_routeindex["API dispatch<br/>[index.js]"]
  node_authroutes["Identity routes<br/>[auth.js]"]
  node_routes["Marketplace routes"]
end

subgraph group_market["Marketplace operations"]
  node_authservice["Account services<br/>[userService.js]"]
  node_assets["Listings and search<br/>[assetService.js]"]
  node_upload["Upload review<br/>[review.js]"]
  node_reviews["Buyer reviews<br/>[reviewService.js]"]
end

subgraph group_commerce["Orders and payments"]
  node_orders["Cart and orders<br/>[orderService.js]"]
  node_invoices["On-chain checkout<br/>[invoiceService.js]"]
  node_pymstr["PYMSTR checkout<br/>[pymstrRail.js]"]
  node_entitlements["Purchase access"]
  node_downloads["File delivery<br/>[downloadService.js]"]
end

subgraph group_infra["State and integrations"]
  node_db[("SQLite database<br/>[index.js]")]
  node_storage["Asset storage<br/>[storage.js]"]
  node_chain["BSC and fee proxy"]
  node_r2["Cloudflare R2"]
  node_pymstrservice["PYMSTR provider"]
end

node_buyer(("Buyer"))
node_seller(("Seller"))

node_buyer -->|"browses and buys"| node_browser
node_seller -->|"lists assets"| node_browser
node_browser -->|"renders routes"| node_pages
node_pages -->|"requests data"| node_clientapi
node_clientapi -->|"sends API requests"| node_http
node_http -->|"dispatches requests"| node_routeindex
node_routeindex -->|"dispatches auth"| node_authroutes
node_routeindex -->|"dispatches marketplace"| node_routes
node_authroutes -->|"uses account logic"| node_authservice
node_routes -->|"uses listing logic"| node_assets
node_routes -->|"reviews uploads"| node_upload
node_routes -->|"uses review logic"| node_reviews
node_routes -->|"uses order logic"| node_orders
node_routes -->|"uses checkout logic"| node_invoices
node_routes -.->|"uses alternate rail"| node_pymstr
node_routes -->|"uses access logic"| node_entitlements
node_routes -->|"serves downloads"| node_downloads
node_assets -->|"reads and writes"| node_db
node_reviews -->|"reads and writes"| node_db
node_orders -->|"reads and writes"| node_db
node_invoices -->|"reads and writes"| node_db
node_authservice -->|"reads and writes"| node_db
node_orders -->|"activates purchases"| node_entitlements
node_downloads -->|"reads asset files"| node_storage
node_upload -->|"stores uploads"| node_storage
node_storage -.->|"stores large assets"| node_r2
node_invoices -->|"verifies payments"| node_chain
node_pymstr -.->|"uses provider"| node_pymstrservice
node_http -->|"initializes database"| node_db

click node_browser "https://github.com/harashsuq-ui/harashsuq/blob/main/marketplace/public/js/app.js"
click node_pages "https://github.com/harashsuq-ui/harashsuq/tree/main/marketplace/public/js/pages"
click node_clientapi "https://github.com/harashsuq-ui/harashsuq/blob/main/marketplace/public/js/api.js"
click node_http "https://github.com/harashsuq-ui/harashsuq/blob/main/marketplace/server.js"
click node_routeindex "https://github.com/harashsuq-ui/harashsuq/blob/main/marketplace/src/routes/index.js"
click node_authroutes "https://github.com/harashsuq-ui/harashsuq/blob/main/marketplace/src/routes/auth.js"
click node_routes "https://github.com/harashsuq-ui/harashsuq/tree/main/marketplace/src/routes"
click node_authservice "https://github.com/harashsuq-ui/harashsuq/blob/main/marketplace/src/services/userService.js"
click node_assets "https://github.com/harashsuq-ui/harashsuq/blob/main/marketplace/src/services/assetService.js"
click node_upload "https://github.com/harashsuq-ui/harashsuq/blob/main/marketplace/src/lib/review.js"
click node_reviews "https://github.com/harashsuq-ui/harashsuq/blob/main/marketplace/src/services/reviewService.js"
click node_orders "https://github.com/harashsuq-ui/harashsuq/blob/main/marketplace/src/services/orderService.js"
click node_invoices "https://github.com/harashsuq-ui/harashsuq/blob/main/marketplace/src/services/invoiceService.js"
click node_pymstr "https://github.com/harashsuq-ui/harashsuq/blob/main/marketplace/src/services/pymstrRail.js"
click node_entitlements "https://github.com/harashsuq-ui/harashsuq/blob/main/marketplace/src/services/entitlementService.js"
click node_downloads "https://github.com/harashsuq-ui/harashsuq/blob/main/marketplace/src/services/downloadService.js"
click node_db "https://github.com/harashsuq-ui/harashsuq/blob/main/marketplace/src/db/index.js"
click node_storage "https://github.com/harashsuq-ui/harashsuq/blob/main/marketplace/src/lib/storage.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_pages,node_clientapi toneBlue
class node_http,node_routeindex,node_authroutes,node_routes toneAmber
class node_authservice,node_assets,node_upload,node_reviews toneMint
class node_orders,node_invoices,node_pymstr,node_entitlements,node_downloads toneRose
class node_db,node_storage,node_chain,node_r2,node_pymstrservice,node_buyer,node_seller toneIndigo
```

## Components

### Browser application

- [Marketplace UI](https://github.com/harashsuq-ui/harashsuq/blob/main/marketplace/public/js/app.js): `marketplace/public/js/app.js`
- [Product pages](https://github.com/harashsuq-ui/harashsuq/tree/main/marketplace/public/js/pages): `marketplace/public/js/pages`
- [Browser API](https://github.com/harashsuq-ui/harashsuq/blob/main/marketplace/public/js/api.js): `marketplace/public/js/api.js`

### HTTP and identity

- [HTTP server](https://github.com/harashsuq-ui/harashsuq/blob/main/marketplace/server.js): `marketplace/server.js`
- [API dispatch](https://github.com/harashsuq-ui/harashsuq/blob/main/marketplace/src/routes/index.js): `marketplace/src/routes/index.js`
- [Identity routes](https://github.com/harashsuq-ui/harashsuq/blob/main/marketplace/src/routes/auth.js): `marketplace/src/routes/auth.js`
- [Marketplace routes](https://github.com/harashsuq-ui/harashsuq/tree/main/marketplace/src/routes): `marketplace/src/routes`

### Marketplace operations

- [Account services](https://github.com/harashsuq-ui/harashsuq/blob/main/marketplace/src/services/userService.js): `marketplace/src/services/userService.js`
- [Listings and search](https://github.com/harashsuq-ui/harashsuq/blob/main/marketplace/src/services/assetService.js): `marketplace/src/services/assetService.js`
- [Upload review](https://github.com/harashsuq-ui/harashsuq/blob/main/marketplace/src/lib/review.js): `marketplace/src/lib/review.js`
- [Buyer reviews](https://github.com/harashsuq-ui/harashsuq/blob/main/marketplace/src/services/reviewService.js): `marketplace/src/services/reviewService.js`

### Orders and payments

- [Cart and orders](https://github.com/harashsuq-ui/harashsuq/blob/main/marketplace/src/services/orderService.js): `marketplace/src/services/orderService.js`
- [On-chain checkout](https://github.com/harashsuq-ui/harashsuq/blob/main/marketplace/src/services/invoiceService.js): `marketplace/src/services/invoiceService.js`
- [PYMSTR checkout](https://github.com/harashsuq-ui/harashsuq/blob/main/marketplace/src/services/pymstrRail.js): `marketplace/src/services/pymstrRail.js`
- [Purchase access](https://github.com/harashsuq-ui/harashsuq/blob/main/marketplace/src/services/entitlementService.js): `marketplace/src/services/entitlementService.js`
- [File delivery](https://github.com/harashsuq-ui/harashsuq/blob/main/marketplace/src/services/downloadService.js): `marketplace/src/services/downloadService.js`

### State and integrations

- [SQLite database](https://github.com/harashsuq-ui/harashsuq/blob/main/marketplace/src/db/index.js): `marketplace/src/db/index.js`
- [Asset storage](https://github.com/harashsuq-ui/harashsuq/blob/main/marketplace/src/lib/storage.js): `marketplace/src/lib/storage.js`
- **BSC and fee proxy**
- **Cloudflare R2**
- **PYMSTR provider**

### Other components

- **Buyer**
- **Seller**

## Connections

- Buyer → Marketplace UI: browses and buys
- Seller → Marketplace UI: lists assets
- Marketplace UI → Product pages: renders routes
- Product pages → Browser API: requests data
- Browser API → HTTP server: sends API requests
- HTTP server → API dispatch: dispatches requests
- API dispatch → Identity routes: dispatches auth
- API dispatch → Marketplace routes: dispatches marketplace
- Identity routes → Account services: uses account logic
- Marketplace routes → Listings and search: uses listing logic
- Marketplace routes → Upload review: reviews uploads
- Marketplace routes → Buyer reviews: uses review logic
- Marketplace routes → Cart and orders: uses order logic
- Marketplace routes → On-chain checkout: uses checkout logic
- Marketplace routes → PYMSTR checkout: uses alternate rail
- Marketplace routes → Purchase access: uses access logic
- Marketplace routes → File delivery: serves downloads
- Listings and search → SQLite database: reads and writes
- Buyer reviews → SQLite database: reads and writes
- Cart and orders → SQLite database: reads and writes
- On-chain checkout → SQLite database: reads and writes
- Account services → SQLite database: reads and writes
- Cart and orders → Purchase access: activates purchases
- File delivery → Asset storage: reads asset files
- Upload review → Asset storage: stores uploads
- Asset storage → Cloudflare R2: stores large assets
- On-chain checkout → BSC and fee proxy: verifies payments
- PYMSTR checkout → PYMSTR provider: uses provider
- HTTP server → SQLite database: initializes database
