How masonrose115/trading-website works
This is an Express/EJS trading application for listing parts, managing user accounts, watching trades, and exchanging offers. Users browse listings or register and log in; authenticated users can create and manage their own trades, maintain a watchlist, and send, accept, decline, or cancel offers. Routes dispatch to controllers, which read and update Mongoose models and render pages. The excerpts show trade and account workflows; offer behavior is partly sampled, so the graph limits its detail to relationships evidenced by the controller and route files.
Main entry points: userController.js Account and offers · app.js Express app · tradeController.js Trade workflow · TradeRotute.js Trade routes
Components 18
Web entry and routing
- Express app
app.js - Main routes
routes/mainRoute.js - Trade routes
routes/TradeRotute.js - User routes
routes/userRoute.js - Login checks
middleware/auth.js - Input validation
middleware/validator.js - Site pages
controllers/mainController.js - Info pages
views/trades
Trade listings
- Trade workflow
controllers/tradeController.js - Trade pages
views/trades
Accounts and offers
- Account and offers
controllers/userController.js - Account pages
views/users
Persistent models
- Trade records
models/trade.js - User records
models/user.js - Watchlist records
models/watchlist.js - Offer records
models/offer.js
Other components
- Visitor
- MongoDB
Connections 22
- Visitor → Express app: requests pages
- Express app → Main routes: mounts routes
app.js - Express app → Trade routes: mounts routes
app.js - Express app → User routes: mounts routes
app.js - Main routes → Site pages: dispatches to
routes/mainRoute.js - Site pages → Info pages: renders pages
controllers/mainController.js - Trade routes → Trade workflow: dispatches to
routes/TradeRotute.js - Trade routes → Login checks: checks login
routes/TradeRotute.js - Trade routes → Input validation: validates requests
routes/TradeRotute.js - Trade workflow → Trade records: reads and writes
controllers/tradeController.js - Trade workflow → User records: looks up seller
controllers/tradeController.js - Trade workflow → Watchlist records: manages watches
controllers/tradeController.js - Trade workflow → Trade pages: renders pages
controllers/tradeController.js - Login checks → Trade records: checks ownership
middleware/auth.js - User routes → Account and offers: dispatches to
routes/userRoute.js - User routes → Login checks: checks login
routes/userRoute.js - Account and offers → User records: manages accounts
controllers/userController.js - Account and offers → Trade records: reads and updates
controllers/userController.js - Account and offers → Watchlist records: loads watchlist
controllers/userController.js - Account and offers → Offer records: manages offers
controllers/userController.js - Account and offers → Account pages: renders pages
controllers/userController.js - Express app → MongoDB: connects and stores sessions
app.js