How yousefshihan152-rgb/last-book works
Last Book is a session-based online bookstore. Shoppers browse categories and books, register or sign in, manage a cart, and submit delivery orders. The main request path runs through Express routing and controllers; the controllers handle catalog, account, cart, and order operations against MySQL. The graph separates these domain responsibilities even though they share one controller file. Source excerpts show the main routing and database interactions; unsampled view behavior and schema details are not inferred.
Main entry points: router.js Route dispatch · db.js MySQL pool · index.js Express app · controllers.js Catalog handlers
Components 14
HTTP application
- Express app
index.js - Route dispatch
router/router.js - Page views
views
Book catalog
- Catalog handlers
controllers/controllers.js - Category definitions
model/categories.js
Accounts and sessions
- Account handlers
controllers/controllers.js - Login guards
middlewares/auth.js - Session setup
index.js
Cart and orders
- Cart handlers
controllers/controllers.js - Order handlers
controllers/controllers.js
Shared services
- MySQL pool
model/db.js - Input checks
middlewares/security.js - Error handling
middlewares/error.js
Other components
- Shopper
Connections 19
- Shopper → Express app: sends requests
- Express app → Route dispatch: mounts routes
index.js - Express app → Input checks: checks inputs
index.js - Express app → Error handling: handles errors
index.js - Route dispatch → Catalog handlers: dispatches catalog
router/router.js - Route dispatch → Account handlers: dispatches account
router/router.js - Route dispatch → Cart handlers: dispatches cart
router/router.js - Route dispatch → Order handlers: dispatches orders
router/router.js - Route dispatch → Login guards: guards private routes
router/router.js - Catalog handlers → Category definitions: looks up categories
controllers/controllers.js - Catalog handlers → MySQL pool: queries books
controllers/controllers.js - Catalog handlers → Page views: serves pages
controllers/controllers.js - Account handlers → MySQL pool: reads and writes users
controllers/controllers.js - Account handlers → Page views: serves login page
controllers/controllers.js - Cart handlers → MySQL pool: reads and writes cart
controllers/controllers.js - Order handlers → MySQL pool: creates orders
controllers/controllers.js - Session setup → MySQL pool: stores sessions
index.js - Account handlers → Error handling: wraps async errors
controllers/controllers.js - Input checks → Error handling: forwards rejected input
middlewares/security.js