# meno-g/marketplace-website architecture

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

- Interactive diagram: https://gitdiagram.com/meno-g/marketplace-website
- Repository: https://github.com/meno-g/marketplace-website

## Overview

Vitrina is a Georgian classifieds marketplace. The main workflow is browsing or searching listings, opening a listing, then contacting its seller or saving it; sellers can create and manage listings through a validated posting flow. The README describes routes, UI areas, services, authentication, and both development and PostgreSQL storage. Source excerpts were not available for the application modules, so edges below rely on documented relationships in the README; the PostgreSQL implementation is a documented migration target.

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_experience["Marketplace experience"]
  node_routes["App routes"]
  node_search_ui["Search UI"]
  node_listing_ui["Listing UI"]
  node_messaging_ui["Messaging UI"]
  node_search["Listing search"]
  node_listing_detail["Listing details"]
  node_seller_profile["Seller profiles"]
  node_favorites["Saved listings"]
  node_messages["Buyer seller chat"]
end

subgraph group_seller_tools["Seller tools"]
  node_posting["Listing wizard"]
  node_dashboard["Listing management"]
end

subgraph group_application["Application services"]
  node_actions["Server actions"]
  node_auth["Session auth"]
  node_validation["Input validation"]
  node_services["Marketplace services"]
end

subgraph group_storage["Data storage"]
  node_dev_store[("Development store")]
  node_seed_data["Demo seed data"]
  node_postgres_schema[("PostgreSQL schema")]
  node_prisma_client["Prisma client"]
end

node_visitor(("Visitor"))

node_visitor -->|"uses marketplace"| node_routes
node_routes -->|"renders search"| node_search_ui
node_routes -->|"renders listings"| node_listing_ui
node_routes -->|"renders chat"| node_messaging_ui
node_routes -->|"calls services"| node_services
node_actions -->|"checks session"| node_auth
node_actions -->|"validates input"| node_validation
node_actions -->|"handles mutations"| node_services
node_search -->|"serves search"| node_routes
node_listing_detail -->|"serves listing"| node_routes
node_seller_profile -->|"serves profile"| node_routes
node_posting -->|"serves posting"| node_routes
node_dashboard -->|"serves management"| node_routes
node_favorites -->|"serves favorites"| node_routes
node_messages -->|"serves conversations"| node_routes
node_services -->|"reads and writes"| node_dev_store
node_dev_store -->|"loads demo data"| node_seed_data
node_services -.->|"can use instead"| node_prisma_client
node_prisma_client -.->|"targets schema"| node_postgres_schema

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_routes,node_search_ui,node_listing_ui,node_messaging_ui,node_search,node_listing_detail,node_seller_profile,node_favorites,node_messages toneBlue
class node_posting,node_dashboard toneAmber
class node_actions,node_auth,node_validation,node_services toneMint
class node_dev_store,node_seed_data,node_postgres_schema,node_prisma_client toneRose
class node_visitor toneIndigo
```

## Components

### Marketplace experience

- **App routes**
- **Search UI**
- **Listing UI**
- **Messaging UI**
- **Listing search**
- **Listing details**
- **Seller profiles**
- **Saved listings**
- **Buyer seller chat**

### Seller tools

- **Listing wizard**
- **Listing management**

### Application services

- **Server actions**
- **Session auth**
- **Input validation**
- **Marketplace services**

### Data storage

- **Development store**
- **Demo seed data**
- **PostgreSQL schema**
- **Prisma client**

### Other components

- **Visitor**

## Connections

- Visitor → App routes: uses marketplace (evidence: `README.md`)
- App routes → Search UI: renders search (evidence: `README.md`)
- App routes → Listing UI: renders listings (evidence: `README.md`)
- App routes → Messaging UI: renders chat (evidence: `README.md`)
- App routes → Marketplace services: calls services (evidence: `README.md`)
- Server actions → Session auth: checks session (evidence: `README.md`)
- Server actions → Input validation: validates input (evidence: `README.md`)
- Server actions → Marketplace services: handles mutations (evidence: `README.md`)
- Listing search → App routes: serves search (evidence: `README.md`)
- Listing details → App routes: serves listing (evidence: `README.md`)
- Seller profiles → App routes: serves profile (evidence: `README.md`)
- Listing wizard → App routes: serves posting (evidence: `README.md`)
- Listing management → App routes: serves management (evidence: `README.md`)
- Saved listings → App routes: serves favorites (evidence: `README.md`)
- Buyer seller chat → App routes: serves conversations (evidence: `README.md`)
- Marketplace services → Development store: reads and writes (evidence: `README.md`)
- Development store → Demo seed data: loads demo data (evidence: `README.md`)
- Marketplace services → Prisma client: can use instead (evidence: `README.md`)
- Prisma client → PostgreSQL schema: targets schema (evidence: `README.md`)
