# yourswaroop/bookzs-backend architecture

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

- Interactive diagram: https://gitdiagram.com/yourswaroop/bookzs-backend
- Repository: https://github.com/yourswaroop/bookzs-backend

## Overview

Bookzs is a backend API for a book marketplace, supporting user accounts, book and listing management, sales, exchanges, and messaging. Users enter through the Express app; authenticated routes pass requests to domain controllers, which invoke services and, in sampled flows, query modules. The server also initializes Socket.IO. The tree and excerpts establish the major domains, but most route, service, and query implementations were not sampled, so their internal wiring is left unspecified.

Main entry points: [`src/app.js`](https://github.com/yourswaroop/bookzs-backend/blob/main/src/app.js) (Express app), [`src/server.js`](https://github.com/yourswaroop/bookzs-backend/blob/main/src/server.js) (HTTP server), [`src/routes/order.routes.js`](https://github.com/yourswaroop/bookzs-backend/blob/main/src/routes/order.routes.js) (Order routes), [`src/controllers/order.controller.js`](https://github.com/yourswaroop/bookzs-backend/blob/main/src/controllers/order.controller.js) (Order controller)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_entry["API entry"]
  node_app["Express app<br/>[app.js]"]
  node_server["HTTP server<br/>[server.js]"]
  node_db[("PostgreSQL<br/>[db.js]")]
end

subgraph group_catalog["Books and listings"]
  node_book_routes["Book routes<br/>[book.routes.js]"]
  node_book_controller["Book controller<br/>[book.controller.js]"]
  node_book_service["Book service<br/>[book.service.js]"]
  node_book_queries["Book queries<br/>[book.queries.js]"]
  node_listing_routes["Listing routes<br/>[listing.routes.js]"]
  node_listing_controller["Listing controller"]
  node_listing_service["Listing service<br/>[listing.service.js]"]
  node_listing_queries["Listing queries<br/>[listing.queries.js]"]
end

subgraph group_transactions["Sales and exchanges"]
  node_order_routes["Order routes<br/>[order.routes.js]"]
  node_order_controller["Order controller"]
  node_order_service["Order service<br/>[order.service.js]"]
  node_order_queries["Order queries<br/>[order.queries.js]"]
  node_exchange_routes["Exchange routes<br/>[exchange.routes.js]"]
  node_exchange_controller["Exchange controller"]
  node_exchange_service["Exchange service"]
  node_exchange_queries["Exchange queries"]
end

subgraph group_accounts["Accounts and messaging"]
  node_auth_routes["Auth routes<br/>[auth.routes.js]"]
  node_auth_controller["Auth controller<br/>[auth.controller.js]"]
  node_auth_service["Auth service<br/>[auth.service.js]"]
  node_user_queries["User queries<br/>[user.queries.js]"]
  node_user_routes["User routes<br/>[user.routes.js]"]
  node_user_controller["User controller<br/>[user.controller.js]"]
  node_chat_routes["Chat routes<br/>[chat.routes.js]"]
  node_chat_controller["Chat controller<br/>[chat.controller.js]"]
  node_chat_service["Chat service<br/>[chat.service.js]"]
  node_chat_queries["Chat queries<br/>[chat.queries.js]"]
  node_socket["Socket.IO setup<br/>[socket.js]"]
end

node_user(("API user"))

node_user -->|"sends requests"| node_app
node_server -->|"serves"| node_app
node_app -->|"health-check query"| node_db
node_app -->|"mounts"| node_auth_routes
node_app -->|"mounts"| node_user_routes
node_app -->|"mounts"| node_book_routes
node_app -->|"mounts"| node_listing_routes
node_app -->|"mounts"| node_order_routes
node_app -->|"mounts"| node_exchange_routes
node_app -->|"mounts"| node_chat_routes
node_server -->|"initializes"| node_socket
node_order_routes -->|"dispatches"| node_order_controller
node_order_controller -->|"calls"| node_order_service
node_exchange_routes -->|"dispatches"| node_exchange_controller
node_exchange_controller -->|"calls"| node_exchange_service
node_exchange_service -->|"calls"| node_exchange_queries
node_chat_routes -->|"dispatches"| node_chat_controller
node_chat_controller -->|"calls"| node_chat_service
node_auth_service -->|"calls"| node_user_queries

click node_app "https://github.com/yourswaroop/bookzs-backend/blob/main/src/app.js"
click node_server "https://github.com/yourswaroop/bookzs-backend/blob/main/src/server.js"
click node_db "https://github.com/yourswaroop/bookzs-backend/blob/main/src/config/db.js"
click node_book_routes "https://github.com/yourswaroop/bookzs-backend/blob/main/src/routes/book.routes.js"
click node_book_controller "https://github.com/yourswaroop/bookzs-backend/blob/main/src/controllers/book.controller.js"
click node_book_service "https://github.com/yourswaroop/bookzs-backend/blob/main/src/services/book.service.js"
click node_book_queries "https://github.com/yourswaroop/bookzs-backend/blob/main/src/queries/book.queries.js"
click node_listing_routes "https://github.com/yourswaroop/bookzs-backend/blob/main/src/routes/listing.routes.js"
click node_listing_controller "https://github.com/yourswaroop/bookzs-backend/blob/main/src/controllers/listing.controller.js"
click node_listing_service "https://github.com/yourswaroop/bookzs-backend/blob/main/src/services/listing.service.js"
click node_listing_queries "https://github.com/yourswaroop/bookzs-backend/blob/main/src/queries/listing.queries.js"
click node_order_routes "https://github.com/yourswaroop/bookzs-backend/blob/main/src/routes/order.routes.js"
click node_order_controller "https://github.com/yourswaroop/bookzs-backend/blob/main/src/controllers/order.controller.js"
click node_order_service "https://github.com/yourswaroop/bookzs-backend/blob/main/src/services/order.service.js"
click node_order_queries "https://github.com/yourswaroop/bookzs-backend/blob/main/src/queries/order.queries.js"
click node_exchange_routes "https://github.com/yourswaroop/bookzs-backend/blob/main/src/routes/exchange.routes.js"
click node_exchange_controller "https://github.com/yourswaroop/bookzs-backend/blob/main/src/controllers/exchange.controller.js"
click node_exchange_service "https://github.com/yourswaroop/bookzs-backend/blob/main/src/services/exchange.service.js"
click node_exchange_queries "https://github.com/yourswaroop/bookzs-backend/blob/main/src/queries/exchange.queries.js"
click node_auth_routes "https://github.com/yourswaroop/bookzs-backend/blob/main/src/routes/auth.routes.js"
click node_auth_controller "https://github.com/yourswaroop/bookzs-backend/blob/main/src/controllers/auth.controller.js"
click node_auth_service "https://github.com/yourswaroop/bookzs-backend/blob/main/src/services/auth.service.js"
click node_user_queries "https://github.com/yourswaroop/bookzs-backend/blob/main/src/queries/user.queries.js"
click node_user_routes "https://github.com/yourswaroop/bookzs-backend/blob/main/src/routes/user.routes.js"
click node_user_controller "https://github.com/yourswaroop/bookzs-backend/blob/main/src/controllers/user.controller.js"
click node_chat_routes "https://github.com/yourswaroop/bookzs-backend/blob/main/src/routes/chat.routes.js"
click node_chat_controller "https://github.com/yourswaroop/bookzs-backend/blob/main/src/controllers/chat.controller.js"
click node_chat_service "https://github.com/yourswaroop/bookzs-backend/blob/main/src/services/chat.service.js"
click node_chat_queries "https://github.com/yourswaroop/bookzs-backend/blob/main/src/queries/chat.queries.js"
click node_socket "https://github.com/yourswaroop/bookzs-backend/blob/main/src/socket/socket.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_app,node_server,node_db,node_user toneBlue
class node_book_routes,node_book_controller,node_book_service,node_book_queries,node_listing_routes,node_listing_controller,node_listing_service,node_listing_queries toneAmber
class node_order_routes,node_order_controller,node_order_service,node_order_queries,node_exchange_routes,node_exchange_controller,node_exchange_service,node_exchange_queries toneMint
class node_auth_routes,node_auth_controller,node_auth_service,node_user_queries,node_user_routes,node_user_controller,node_chat_routes,node_chat_controller,node_chat_service,node_chat_queries,node_socket toneRose
```

## Components

### API entry

- [Express app](https://github.com/yourswaroop/bookzs-backend/blob/main/src/app.js): `src/app.js`
- [HTTP server](https://github.com/yourswaroop/bookzs-backend/blob/main/src/server.js): `src/server.js`
- [PostgreSQL](https://github.com/yourswaroop/bookzs-backend/blob/main/src/config/db.js): `src/config/db.js`

### Books and listings

- [Book routes](https://github.com/yourswaroop/bookzs-backend/blob/main/src/routes/book.routes.js): `src/routes/book.routes.js`
- [Book controller](https://github.com/yourswaroop/bookzs-backend/blob/main/src/controllers/book.controller.js): `src/controllers/book.controller.js`
- [Book service](https://github.com/yourswaroop/bookzs-backend/blob/main/src/services/book.service.js): `src/services/book.service.js`
- [Book queries](https://github.com/yourswaroop/bookzs-backend/blob/main/src/queries/book.queries.js): `src/queries/book.queries.js`
- [Listing routes](https://github.com/yourswaroop/bookzs-backend/blob/main/src/routes/listing.routes.js): `src/routes/listing.routes.js`
- [Listing controller](https://github.com/yourswaroop/bookzs-backend/blob/main/src/controllers/listing.controller.js): `src/controllers/listing.controller.js`
- [Listing service](https://github.com/yourswaroop/bookzs-backend/blob/main/src/services/listing.service.js): `src/services/listing.service.js`
- [Listing queries](https://github.com/yourswaroop/bookzs-backend/blob/main/src/queries/listing.queries.js): `src/queries/listing.queries.js`

### Sales and exchanges

- [Order routes](https://github.com/yourswaroop/bookzs-backend/blob/main/src/routes/order.routes.js): `src/routes/order.routes.js`
- [Order controller](https://github.com/yourswaroop/bookzs-backend/blob/main/src/controllers/order.controller.js): `src/controllers/order.controller.js`
- [Order service](https://github.com/yourswaroop/bookzs-backend/blob/main/src/services/order.service.js): `src/services/order.service.js`
- [Order queries](https://github.com/yourswaroop/bookzs-backend/blob/main/src/queries/order.queries.js): `src/queries/order.queries.js`
- [Exchange routes](https://github.com/yourswaroop/bookzs-backend/blob/main/src/routes/exchange.routes.js): `src/routes/exchange.routes.js`
- [Exchange controller](https://github.com/yourswaroop/bookzs-backend/blob/main/src/controllers/exchange.controller.js): `src/controllers/exchange.controller.js`
- [Exchange service](https://github.com/yourswaroop/bookzs-backend/blob/main/src/services/exchange.service.js): `src/services/exchange.service.js`
- [Exchange queries](https://github.com/yourswaroop/bookzs-backend/blob/main/src/queries/exchange.queries.js): `src/queries/exchange.queries.js`

### Accounts and messaging

- [Auth routes](https://github.com/yourswaroop/bookzs-backend/blob/main/src/routes/auth.routes.js): `src/routes/auth.routes.js`
- [Auth controller](https://github.com/yourswaroop/bookzs-backend/blob/main/src/controllers/auth.controller.js): `src/controllers/auth.controller.js`
- [Auth service](https://github.com/yourswaroop/bookzs-backend/blob/main/src/services/auth.service.js): `src/services/auth.service.js`
- [User queries](https://github.com/yourswaroop/bookzs-backend/blob/main/src/queries/user.queries.js): `src/queries/user.queries.js`
- [User routes](https://github.com/yourswaroop/bookzs-backend/blob/main/src/routes/user.routes.js): `src/routes/user.routes.js`
- [User controller](https://github.com/yourswaroop/bookzs-backend/blob/main/src/controllers/user.controller.js): `src/controllers/user.controller.js`
- [Chat routes](https://github.com/yourswaroop/bookzs-backend/blob/main/src/routes/chat.routes.js): `src/routes/chat.routes.js`
- [Chat controller](https://github.com/yourswaroop/bookzs-backend/blob/main/src/controllers/chat.controller.js): `src/controllers/chat.controller.js`
- [Chat service](https://github.com/yourswaroop/bookzs-backend/blob/main/src/services/chat.service.js): `src/services/chat.service.js`
- [Chat queries](https://github.com/yourswaroop/bookzs-backend/blob/main/src/queries/chat.queries.js): `src/queries/chat.queries.js`
- [Socket.IO setup](https://github.com/yourswaroop/bookzs-backend/blob/main/src/socket/socket.js): `src/socket/socket.js`

### Other components

- **API user**

## Connections

- API user → Express app: sends requests
- HTTP server → Express app: serves
- Express app → PostgreSQL: health-check query
- Express app → Auth routes: mounts
- Express app → User routes: mounts
- Express app → Book routes: mounts
- Express app → Listing routes: mounts
- Express app → Order routes: mounts
- Express app → Exchange routes: mounts
- Express app → Chat routes: mounts
- HTTP server → Socket.IO setup: initializes
- Order routes → Order controller: dispatches
- Order controller → Order service: calls
- Exchange routes → Exchange controller: dispatches
- Exchange controller → Exchange service: calls
- Exchange service → Exchange queries: calls
- Chat routes → Chat controller: dispatches
- Chat controller → Chat service: calls
- Auth service → User queries: calls
