How devag04/full-stack-estate-app works
This is a buyer/seller real-estate application. Users enter through role-specific static pages; buyers browse/search listings, manage favourites and message sellers, while sellers manage property listings. The Express API handles authentication and domain requests, with MongoDB for users/properties and PostgreSQL for chat history; Socket.IO provides live chat and Cloudinary handles listing images. The client-to-API wiring and several backend internals were not excerpted, so those relationships are omitted or marked unverified.
Main entry points: buyer.routes.js Buyer routes · seller.routes.js Seller routes · buyer Buyer pages · app.js Express app
Components 23
Static clients
- Buyer pages
Client/buyer - Seller pages
Client/seller - Client utilities
Client/utility - API client config
Client/api.js
HTTP API
- Express app
Server/app.js - Buyer routes
Server/routes/buyer.routes.js - Seller routes
Server/routes/seller.routes.js - Session guards
Server/middleware/auth.js - Request validation
Server/middleware/validate.js
Domain services
- Buyer accounts
Server/controllers/buyer.controller.js - Seller accounts
Server/controllers/seller.controller.js - Property workflow
Server/controllers/property.controller.js - Message history API
Server/controllers/message.controller.js
Persistence and media
- Buyer records
Server/models/buyer.model.js - Seller records
Server/models/seller.model.js - Property records
Server/models/property.model.js - MongoDB
Server/db/mongo.js - PostgreSQL
Server/db/postgres.js - Image upload
Server/middleware/upload.js - Cloudinary
Server/config/cloudinary.js
Realtime chat
- Socket.IO chat
Server/socket/index.js
Other components
- Buyer
- Seller
Connections 32
- Express app → Buyer routes: mounts
Server/app.js - Express app → Seller routes: mounts
Server/app.js - Express app → Socket.IO chat: attaches
Server/app.js - Express app → MongoDB: connects at startup
Server/app.js - Buyer routes → Buyer accounts: dispatches
Server/routes/buyer.routes.js - Buyer routes → Property workflow: dispatches
Server/routes/buyer.routes.js - Buyer routes → Message history API: dispatches
Server/routes/buyer.routes.js - Seller routes → Seller accounts: dispatches
Server/routes/seller.routes.js - Seller routes → Property workflow: dispatches
Server/routes/seller.routes.js - Buyer routes → Session guards: guards dashboard
Server/routes/buyer.routes.js - Seller routes → Session guards: guards dashboard
Server/routes/seller.routes.js - Buyer routes → Request validation: validates signup/login
Server/routes/buyer.routes.js - Seller routes → Request validation: validates signup/login
Server/routes/seller.routes.js - Buyer accounts → Buyer records: reads/writes
Server/controllers/buyer.controller.js - Seller accounts → Seller records: reads/writes
Server/controllers/seller.controller.js - Property workflow → Property records: queries listings
Server/controllers/property.controller.js - Property workflow → Buyer records: updates favourites
Server/controllers/property.controller.js - Buyer records → MongoDB: uses connection
Server/models/buyer.model.js - Seller records → MongoDB: uses connection
Server/models/seller.model.js - Property records → MongoDB: uses connection
Server/models/property.model.js - Seller routes → Image upload: uploads listing images
Server/routes/seller.routes.js - Image upload → Cloudinary: stores images
Server/middleware/upload.js - Socket.IO chat → PostgreSQL: reads/writes chat
Server/socket/index.js - Message history API → PostgreSQL: queries history
Server/controllers/message.controller.js - Buyer → Buyer pages: uses
README.md - Seller → Seller pages: uses
README.md - Buyer pages → Client utilities: uses chat/property helpers
Client/buyer/dashboard.js - Buyer pages → Client utilities: uses chat helpers
Client/buyer/message.js - Buyer pages → Client utilities: uses property helper
Client/buyer/favourite.js - Buyer pages → API client config: API wiring unverified
- Seller pages → API client config: API wiring unverified
- API client config → Express app: HTTP requests unverified