How pero4l/idu_group-backend works
RentULO is a property-rental marketplace backend. Users enter through the Express API and access rental listings, shortlet bookings, accounts, and wallet payments; administrators also manage marketplace activity. The graph keeps these domain capabilities distinct and shows shared persistence and notification layers. Relationships are limited to routes and dependencies visible in the supplied excerpts or SOURCE INDEX; several documented-by-name subsystems have unsampled implementations, so their internal flows are not asserted.
Main entry points: models/index.js Sequelize data store · shortlet.controller.js Shortlet bookings · notification.controller.js Notifications · index.js Express API
Components 22
API and access
- Express API
index.js - Authentication
middleware/authUserMiddleware.js - Rental routes
routes/rental.routes.js - Shortlet routes
routes/shortlet.routes.js - Admin routes
routes/superAdmin.routes.js - Wallet routes
routes/wallet.routes.js
Property marketplace
- Rental listings
controllers/rental.controller.js - Shortlet bookings
controllers/shortlet.controller.js - Rental progress
controllers/progreess.controller.js
Payments and wallet
- Wallet operations
controllers/wallet.controller.js - Coupons
controllers/coupon.controller.js
Accounts and support
- User accounts
controllers/users.controller.js - Support tickets
controllers/support.controller.js - AI support
controllers/aiSupport.controller.js - Chat and messages
routes/chat.routes.js
Shared services
- Notifications
controllers/notification.controller.js - Sequelize data store
models/index.js - Transaction handling
utils/rollback.js - Email delivery
utils/mailer.js
Other components
- User or admin
- Flutterwave
- Cloudinary media
Connections 34
- User or admin → Express API: sends requests
index.js - Express API → Rental routes: mounts routes
index.js - Express API → Shortlet routes: mounts routes
index.js - Express API → Admin routes: mounts routes
index.js - Express API → Wallet routes: mounts routes
index.js - Rental routes → Authentication: applies auth
routes/rental.routes.js - Rental routes → Rental listings: routes to
routes/rental.routes.js - Shortlet routes → Authentication: applies auth
routes/shortlet.routes.js - Shortlet routes → Shortlet bookings: routes to
routes/shortlet.routes.js - Admin routes → Authentication: applies auth
routes/superAdmin.routes.js - Admin routes → Shortlet bookings: routes to
routes/superAdmin.routes.js - Admin routes → Rental listings: routes to
routes/superAdmin.routes.js - Wallet routes → Authentication: applies auth
routes/wallet.routes.js - Wallet routes → Wallet operations: routes to
routes/wallet.routes.js - Wallet routes → Coupons: routes to
routes/wallet.routes.js - Rental listings → Sequelize data store: reads and writes
controllers/rental.controller.js - Shortlet bookings → Sequelize data store: reads and writes
controllers/shortlet.controller.js - Wallet operations → Sequelize data store: reads and writes
controllers/wallet.controller.js - Coupons → Sequelize data store: uses models
controllers/coupon.controller.js - User accounts → Sequelize data store: uses models
controllers/users.controller.js - Support tickets → Sequelize data store: uses models
controllers/support.controller.js - Notifications → Sequelize data store: stores notifications
controllers/notification.controller.js - Notifications → Email delivery: sends email
controllers/notification.controller.js - Wallet operations → Flutterwave: initializes payment
controllers/wallet.controller.js - Rental listings → Cloudinary media: uploads media
controllers/rental.controller.js - Shortlet bookings → Cloudinary media: uploads media
controllers/shortlet.controller.js - Rental listings → Notifications: notifies users
controllers/rental.controller.js - Shortlet bookings → Notifications: notifies users
controllers/shortlet.controller.js - Wallet operations → Notifications: notifies users
controllers/wallet.controller.js - User accounts → Notifications: notifies users
controllers/users.controller.js - Transaction handling → Sequelize data store: manages transactions
utils/rollback.js - Shortlet bookings → Transaction handling: uses transactions
controllers/shortlet.controller.js - Wallet operations → Transaction handling: uses transactions
controllers/wallet.controller.js - Coupons → Transaction handling: uses transactions
controllers/coupon.controller.js