# mishraaryan6387/sih26090-artisan-platform architecture

> Architecture diagram of the GitHub repository mishraaryan6387/sih26090-artisan-platform, 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/mishraaryan6387/sih26090-artisan-platform
- Repository: https://github.com/mishraaryan6387/sih26090-artisan-platform

## Overview

SIH26090 is an artisan-to-buyer market-linkage platform: artisans create and publish multilingual product catalogs, buyers discover products and place orders, and artisans process those orders through fulfillment. The Flutter app is the user-facing client; the Node service owns application data and API orchestration, while FastAPI provides image, audio, text, and pricing inference. The sampled source confirms product, order, authentication, and media-storage behavior; some README-listed capabilities and mobile internals are represented only at their documented subsystem boundary.

Main entry points: [`backend-service/src/app.js`](https://github.com/mishraaryan6387/sih26090-artisan-platform/blob/master/backend-service/src/app.js) (Express API), [`ml-service/app/main.py`](https://github.com/mishraaryan6387/sih26090-artisan-platform/blob/master/ml-service/app/main.py) (Inference API), [`backend-service/src/controllers/productController.js`](https://github.com/mishraaryan6387/sih26090-artisan-platform/blob/master/backend-service/src/controllers/productController.js) (Catalog management), [`backend-service/src/routes/orderRoutes.js`](https://github.com/mishraaryan6387/sih26090-artisan-platform/blob/master/backend-service/src/routes/orderRoutes.js) (Order routes)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_client["Mobile client"]
  node_mobile["Flutter app"]
end

subgraph group_backend["Node backend"]
  node_api["Express API<br/>[app.js]"]
  node_auth["Authentication<br/>[authController.js]"]
  node_authroutes["Auth routes<br/>[authRoutes.js]"]
end

subgraph group_marketplace["Marketplace workflows"]
  node_productroutes["Product routes<br/>[productRoutes.js]"]
  node_products["Catalog management"]
  node_ordersroutes["Order routes<br/>[orderRoutes.js]"]
  node_orders["Order lifecycle<br/>[orderController.js]"]
  node_payments["Order payments"]
  node_profiles["Artisan and buyer"]
  node_enquiries["Buyer enquiries"]
  node_notifications["Notifications"]
end

subgraph group_ai["AI cataloging"]
  node_ai_routes["AI routes<br/>[aiRoutes.js]"]
  node_ai_controller["AI orchestration<br/>[aiController.js]"]
  node_llm["Structured catalog<br/>[llmService.js]"]
  node_media["Media storage<br/>[b2Storage.js]"]
  node_mlclient["ML client<br/>[mlClient.js]"]
end

subgraph group_ml["ML inference"]
  node_mlapi["Inference API<br/>[main.py]"]
  node_image["Image enhancement<br/>[image.py]"]
  node_audio["Speech recognition<br/>[audio.py]"]
  node_text["Translation and description<br/>[text.py]"]
  node_pricing["Pricing estimates<br/>[pricing.py]"]
end

node_artisan(("Artisan"))
node_buyer(("Buyer"))
node_database[("PostgreSQL")]
node_b2[("Backblaze B2")]

node_artisan -->|"uses"| node_mobile
node_buyer -->|"uses"| node_mobile
node_mobile -->|"API requests"| node_api
node_api -->|"mounts"| node_authroutes
node_api -->|"mounts"| node_productroutes
node_api -->|"mounts"| node_ordersroutes
node_api -->|"mounts"| node_ai_routes
node_authroutes -->|"dispatches"| node_auth
node_productroutes -->|"dispatches"| node_products
node_ordersroutes -->|"dispatches"| node_orders
node_ordersroutes -->|"dispatches"| node_payments
node_ai_routes -->|"dispatches"| node_ai_controller
node_auth -->|"reads and writes"| node_database
node_products -->|"reads and writes"| node_database
node_orders -->|"reads and writes"| node_database
node_orders -->|"creates alerts"| node_notifications
node_products -.->|"uploads catalog media"| node_media
node_media -->|"stores media"| node_b2
node_ai_controller -->|"generates catalog"| node_llm
node_ai_controller -->|"requests inference"| node_mlclient
node_mlclient -->|"calls"| node_mlapi
node_mlapi -->|"routes image"| node_image
node_mlapi -->|"routes audio"| node_audio
node_mlapi -->|"routes text"| node_text
node_mlapi -->|"routes pricing"| node_pricing

click node_mobile "https://github.com/mishraaryan6387/sih26090-artisan-platform/tree/master/mobile"
click node_api "https://github.com/mishraaryan6387/sih26090-artisan-platform/blob/master/backend-service/src/app.js"
click node_auth "https://github.com/mishraaryan6387/sih26090-artisan-platform/blob/master/backend-service/src/controllers/authController.js"
click node_authroutes "https://github.com/mishraaryan6387/sih26090-artisan-platform/blob/master/backend-service/src/routes/authRoutes.js"
click node_productroutes "https://github.com/mishraaryan6387/sih26090-artisan-platform/blob/master/backend-service/src/routes/productRoutes.js"
click node_products "https://github.com/mishraaryan6387/sih26090-artisan-platform/blob/master/backend-service/src/controllers/productController.js"
click node_ordersroutes "https://github.com/mishraaryan6387/sih26090-artisan-platform/blob/master/backend-service/src/routes/orderRoutes.js"
click node_orders "https://github.com/mishraaryan6387/sih26090-artisan-platform/blob/master/backend-service/src/controllers/orderController.js"
click node_payments "https://github.com/mishraaryan6387/sih26090-artisan-platform/blob/master/backend-service/src/controllers/paymentController.js"
click node_profiles "https://github.com/mishraaryan6387/sih26090-artisan-platform/blob/master/backend-service/src/controllers/artisanController.js"
click node_enquiries "https://github.com/mishraaryan6387/sih26090-artisan-platform/blob/master/backend-service/src/controllers/enquiryController.js"
click node_notifications "https://github.com/mishraaryan6387/sih26090-artisan-platform/blob/master/backend-service/src/controllers/notificationController.js"
click node_ai_routes "https://github.com/mishraaryan6387/sih26090-artisan-platform/blob/master/backend-service/src/routes/aiRoutes.js"
click node_ai_controller "https://github.com/mishraaryan6387/sih26090-artisan-platform/blob/master/backend-service/src/controllers/aiController.js"
click node_llm "https://github.com/mishraaryan6387/sih26090-artisan-platform/blob/master/backend-service/src/services/llmService.js"
click node_media "https://github.com/mishraaryan6387/sih26090-artisan-platform/blob/master/backend-service/src/services/b2Storage.js"
click node_mlclient "https://github.com/mishraaryan6387/sih26090-artisan-platform/blob/master/backend-service/src/services/mlClient.js"
click node_mlapi "https://github.com/mishraaryan6387/sih26090-artisan-platform/blob/master/ml-service/app/main.py"
click node_image "https://github.com/mishraaryan6387/sih26090-artisan-platform/blob/master/ml-service/app/routers/image.py"
click node_audio "https://github.com/mishraaryan6387/sih26090-artisan-platform/blob/master/ml-service/app/routers/audio.py"
click node_text "https://github.com/mishraaryan6387/sih26090-artisan-platform/blob/master/ml-service/app/routers/text.py"
click node_pricing "https://github.com/mishraaryan6387/sih26090-artisan-platform/blob/master/ml-service/app/routers/pricing.py"

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_mobile toneBlue
class node_api,node_auth,node_authroutes,node_database,node_b2 toneAmber
class node_productroutes,node_products,node_ordersroutes,node_orders,node_payments,node_profiles,node_enquiries,node_notifications toneMint
class node_ai_routes,node_ai_controller,node_llm,node_media,node_mlclient toneRose
class node_mlapi,node_image,node_audio,node_text,node_pricing,node_artisan,node_buyer toneIndigo
```

## Components

### Mobile client

- [Flutter app](https://github.com/mishraaryan6387/sih26090-artisan-platform/tree/master/mobile): `mobile`

### Node backend

- [Express API](https://github.com/mishraaryan6387/sih26090-artisan-platform/blob/master/backend-service/src/app.js): `backend-service/src/app.js`
- [Authentication](https://github.com/mishraaryan6387/sih26090-artisan-platform/blob/master/backend-service/src/controllers/authController.js): `backend-service/src/controllers/authController.js`
- [Auth routes](https://github.com/mishraaryan6387/sih26090-artisan-platform/blob/master/backend-service/src/routes/authRoutes.js): `backend-service/src/routes/authRoutes.js`

### Marketplace workflows

- [Product routes](https://github.com/mishraaryan6387/sih26090-artisan-platform/blob/master/backend-service/src/routes/productRoutes.js): `backend-service/src/routes/productRoutes.js`
- [Catalog management](https://github.com/mishraaryan6387/sih26090-artisan-platform/blob/master/backend-service/src/controllers/productController.js): `backend-service/src/controllers/productController.js`
- [Order routes](https://github.com/mishraaryan6387/sih26090-artisan-platform/blob/master/backend-service/src/routes/orderRoutes.js): `backend-service/src/routes/orderRoutes.js`
- [Order lifecycle](https://github.com/mishraaryan6387/sih26090-artisan-platform/blob/master/backend-service/src/controllers/orderController.js): `backend-service/src/controllers/orderController.js`
- [Order payments](https://github.com/mishraaryan6387/sih26090-artisan-platform/blob/master/backend-service/src/controllers/paymentController.js): `backend-service/src/controllers/paymentController.js`
- [Artisan and buyer](https://github.com/mishraaryan6387/sih26090-artisan-platform/blob/master/backend-service/src/controllers/artisanController.js): `backend-service/src/controllers/artisanController.js`
- [Buyer enquiries](https://github.com/mishraaryan6387/sih26090-artisan-platform/blob/master/backend-service/src/controllers/enquiryController.js): `backend-service/src/controllers/enquiryController.js`
- [Notifications](https://github.com/mishraaryan6387/sih26090-artisan-platform/blob/master/backend-service/src/controllers/notificationController.js): `backend-service/src/controllers/notificationController.js`

### AI cataloging

- [AI routes](https://github.com/mishraaryan6387/sih26090-artisan-platform/blob/master/backend-service/src/routes/aiRoutes.js): `backend-service/src/routes/aiRoutes.js`
- [AI orchestration](https://github.com/mishraaryan6387/sih26090-artisan-platform/blob/master/backend-service/src/controllers/aiController.js): `backend-service/src/controllers/aiController.js`
- [Structured catalog](https://github.com/mishraaryan6387/sih26090-artisan-platform/blob/master/backend-service/src/services/llmService.js): `backend-service/src/services/llmService.js`
- [Media storage](https://github.com/mishraaryan6387/sih26090-artisan-platform/blob/master/backend-service/src/services/b2Storage.js): `backend-service/src/services/b2Storage.js`
- [ML client](https://github.com/mishraaryan6387/sih26090-artisan-platform/blob/master/backend-service/src/services/mlClient.js): `backend-service/src/services/mlClient.js`

### ML inference

- [Inference API](https://github.com/mishraaryan6387/sih26090-artisan-platform/blob/master/ml-service/app/main.py): `ml-service/app/main.py`
- [Image enhancement](https://github.com/mishraaryan6387/sih26090-artisan-platform/blob/master/ml-service/app/routers/image.py): `ml-service/app/routers/image.py`
- [Speech recognition](https://github.com/mishraaryan6387/sih26090-artisan-platform/blob/master/ml-service/app/routers/audio.py): `ml-service/app/routers/audio.py`
- [Translation and description](https://github.com/mishraaryan6387/sih26090-artisan-platform/blob/master/ml-service/app/routers/text.py): `ml-service/app/routers/text.py`
- [Pricing estimates](https://github.com/mishraaryan6387/sih26090-artisan-platform/blob/master/ml-service/app/routers/pricing.py): `ml-service/app/routers/pricing.py`

### Other components

- **Artisan**
- **Buyer**
- **PostgreSQL**
- **Backblaze B2**

## Connections

- Artisan → Flutter app: uses
- Buyer → Flutter app: uses
- Flutter app → Express API: API requests
- Express API → Auth routes: mounts
- Express API → Product routes: mounts
- Express API → Order routes: mounts
- Express API → AI routes: mounts
- Auth routes → Authentication: dispatches
- Product routes → Catalog management: dispatches
- Order routes → Order lifecycle: dispatches
- Order routes → Order payments: dispatches
- AI routes → AI orchestration: dispatches
- Authentication → PostgreSQL: reads and writes
- Catalog management → PostgreSQL: reads and writes
- Order lifecycle → PostgreSQL: reads and writes
- Order lifecycle → Notifications: creates alerts
- Catalog management → Media storage: uploads catalog media
- Media storage → Backblaze B2: stores media
- AI orchestration → Structured catalog: generates catalog
- AI orchestration → ML client: requests inference
- ML client → Inference API: calls
- Inference API → Image enhancement: routes image
- Inference API → Speech recognition: routes audio
- Inference API → Translation and description: routes text
- Inference API → Pricing estimates: routes pricing
