"Find & List Rental Properties with Ease"
RentNest is a backend API for a rental property marketplace. It allows Landlords to list properties and manage rental requests, Tenants to browse listings, book properties, and make payments, and Admins to oversee the entire platform, manage users, and moderate content.
The backend application is successfully deployed and live at:
- Production Link: https://assignment-4-vnjw.onrender.com
- Base API Path:
https://assignment-4-vnjw.onrender.com/api/
- Runtime Environment: Node.js
- Framework: Express.js
- Database: MongoDB (with Mongoose)
- Authentication: JSON Web Tokens (JWT) & bcrypt
- Payment Gateway: SSLCommerz Integration
| Role | Description | Key Permissions |
|---|---|---|
| Tenant | Users looking for rental properties | Browse listings, submit rental requests, make payments, manage profile |
| Landlord | Property owners who list rentals | Create/manage listings, approve/reject requests, view history |
| Admin | Platform moderators | Manage all users, oversee listings, manage categories |
💡 Note: Users select their respective role during the registration process.
To test admin-only features (such as creating/managing categories or moderating users), please use the following credentials:
- Email:
sabiha13@admin.com - Password:
sabiha404?
The complete Postman Collection is included in the root directory as collection.json. You can easily import it into Postman.
POST /auth/register- Register a new user (Tenant/Landlord)POST /auth/login- User login (Returns JWT token)
POST /properties/create- Create a new property listing (Admin/Landlord)GET /properties- Get all properties (Supports query filtering:?category=APPOINTMENTor?category=APARTMENT)
POST /rentals/create- Book a rental request (Tenant)PATCH /rentals/:id/status- Accept or confirm booking request (Landlord)
POST /payments/create- Initialize SSLCommerz payment session (Tenant)POST /payments/confirm- SSLCommerz Success Callback (Server-to-Server)POST /payments/fail- SSLCommerz Fail CallbackPOST /payments/cancel- SSLCommerz Cancel Callback
- Browse & Request: Tenant browses properties ➡️ Submits a rental request (
PENDING). - Approval: Landlord reviews the request ➡️ Approves/Accepts it (
APPROVED). - Payment: Tenant initializes payment via SSLCommerz session.
- Active: Once payment is confirmed (
SUCCESS), the booking/rental status updates toACTIVE.
Make sure you have Node.js and npm installed on your machine.
- Clone the repository:
git clone [https://github.com/immohammadRakib/Assignment_4](https://github.com/immohammadRakib/Assignment_4) cd Assignment_4