How reluctant-king/trendz-upholstery works
Trendz Furnishing is a public upholstery and custom-furniture showcase paired with an admin content and enquiry-management dashboard. Visitors browse projects and business content, then submit quote enquiries; administrators authenticate, maintain that content, and track enquiry progress. The frontend uses a shared site-data context and API client, while the Express API dispatches to domain controllers backed by MongoDB. README-described capabilities are included where source excerpts were unavailable; their internal wiring is shown only at the subsystem level.
Main entry points: routes API routes · api.js API client · App.jsx React routes · imageUpload.js Image storage adapter
Components 21
Website Experience
- React routes
client/src/App.jsx - Public pages
client/src/pages - Site content
client/src/context/SiteContext.jsx - Quote form
client/src/components/quote/QuoteForm.jsx - API client
client/src/lib/api.js
Admin Operations
- Admin pages
client/src/pages/admin - Admin access
client/src/components/admin/RequireAuth.jsx - Auth state
client/src/context/AuthContext.jsx
API Services
- Express API
server/index.js - API routes
server/routes - Authentication
server/controllers/authController.js - Content controllers
server/controllers - Enquiry workflow
server/controllers/enquiryController.js - Image uploads
server/controllers/uploadController.js
Persistence & Media
- MongoDB
server/config/db.js - Domain models
server/models - Image storage adapter
server/utils/imageUpload.js - Local image files
Other components
- Visitor
- Business owner
- Cloudinary
Connections 26
- Visitor → React routes: opens site
- Business owner → React routes: opens dashboard
- React routes → Public pages: routes visitors
- React routes → Admin access: guards admin
- Admin access → Admin pages: permits access
- Admin pages → Auth state: uses session
- Public pages → Site content: reads content
- Public pages → Quote form: offers enquiry
- Site content → API client: loads content
- Quote form → API client: submits request
- Admin pages → API client: manages records
- Auth state → API client: authenticates
- API client → Express API: sends API requests
- Express API → API routes: dispatches requests
- API routes → Authentication: dispatches auth
- API routes → Content controllers: dispatches content
- API routes → Enquiry workflow: dispatches enquiries
- API routes → Image uploads: dispatches uploads
- Authentication → Domain models: reads/writes admin
- Content controllers → Domain models: reads/writes content
- Enquiry workflow → Domain models: reads/writes enquiries
- Domain models → MongoDB: persists records
- Enquiry workflow → Image storage adapter: uploads enquiry images
- Image uploads → Image storage adapter: uploads images
- Image storage adapter → Cloudinary: stores images
- Image storage adapter → Local image files: stores images