UrbanRent is a full-stack rental platform for tenants, property managers, and administrators. It covers property discovery, rental applications, approval workflows, invoicing, Razorpay test payments, messaging, and role-based operations.
- Frontend: urban-rent-amber.vercel.app
- API: urban-rent-f94j.onrender.com/api
- API health: health check
Open the demo role selector. Choose Tenant, Property Manager, or Admin to inspect the main dashboards and navigation without creating an account.
This is a preview mode. It is intentionally separate from authenticated data mutations and payments.
For the end-to-end workflow, use Clerk test accounts:
- Create one test account with the
tenantrole. - Create a second test account with the
managerrole. - Use the tenant account to browse a verified property and submit an application.
- Sign in as the manager, open Applications, and approve the application.
- Return to the tenant account, open Payments, and complete the invoice using Razorpay test mode.
No production credentials are stored in this repository. Admin access is reserved for local or private review environments.
The primary product flow is:
Browse map and listings -> View property -> Apply -> Manager approval -> Invoice -> Razorpay test payment
The flow demonstrates the core data relationships between Property, Application, Invoice, and Payment, with Clerk identity verification and MongoDB-managed roles at the API boundary.
- Clerk authentication with server-verified Bearer tokens
- MongoDB as the authoritative source for user roles
- Property discovery with Leaflet maps and filters
- Tenant applications and manager approval workflows
- Invoice generation and Razorpay test-mode payments
- Socket.IO messaging and notifications
- Cloudinary-backed property media uploads
- Admin review, suspension, and diagnostic workflows
- AI-assisted editor prototype with mocked enhancement actions
| Area | Technology |
|---|---|
| Frontend | React 19, Vite, Tailwind CSS |
| Backend | Node.js, Express, Socket.IO |
| Authentication | Clerk, Svix webhook verification |
| Database | MongoDB Atlas, Mongoose |
| Maps | Leaflet, React-Leaflet |
| Payments | Razorpay Node SDK |
| Media | Cloudinary, Multer |
cd client
npm install
npm run devIn a second terminal:
cd server
npm install
npm run devThe server requires a private server/.env file. See client/.env.production for the frontend variable names and keep server secrets out of the client bundle.
client/ React application and role-based user interfaces
server/ Express API, authentication middleware, controllers, and models
Nityam Savaliya


