Skip to content
AbdullahNayan
All projects

RentNest

Find your next home. Manage rentals with confidence.

RentNest preview

Overview

RentNest is a full-stack rental property marketplace built to simplify the process of finding, listing, and renting properties. It provides dedicated experiences for tenants, landlords, and administrators, connecting property discovery, rental request management, and online payments through a centralized platform. The frontend is built with Next.js and TypeScript, while a separate Express.js REST API handles backend operations and PostgreSQL data persistence.

The problem

Finding a suitable rental property and coordinating the rental process can involve scattered listings, manual communication, unclear request statuses, and complicated payment arrangements. Landlords also need an organized way to manage property listings and review incoming requests, while administrators need visibility into platform activity.

The solution

I developed RentNest as a role-based rental marketplace with separate dashboards and workflows for tenants, landlords, and administrators. Tenants can search and filter properties, inspect listing details, and submit rental requests. Landlords can manage listings and approve or reject requests. Once a request is approved, tenants can complete payment through Stripe Checkout. The backend uses a separate REST API, Prisma, and PostgreSQL to manage application data and business workflows.

Key features

  • Role-based authentication for tenants, landlords, and administrators
  • User profile management
  • Property listing creation, editing, and availability management
  • Property search and filtering by search term, location, category, and price
  • Detailed property information pages
  • Rental request submission and status tracking
  • Landlord approval and rejection workflows
  • Optimistic UI updates for responsive request management
  • Stripe Checkout integration for rental payments
  • Stripe webhook handling for payment confirmation
  • Payment status tracking
  • Property reviews and ratings after rental payment
  • Admin dashboard for managing users, properties, and rental requests
  • Responsive layouts for desktop, tablet, and mobile
  • Form validation, loading skeletons, toast notifications, and error handling

Challenges and how I solved them

Coordinating rental requests and payment workflows

A rental request must move through the appropriate approval and payment stages before the property is considered rented. I structured the application around these connected workflows so tenants, landlords, and administrators can see and manage the relevant rental statuses.

Handling reliable payment confirmation

A successful redirect from a payment provider should not be the only source of truth for a transaction. I integrated Stripe Checkout with backend webhook handling so payment events can be verified server-side and the corresponding payment, rental request, and property records can be updated.

Building role-specific experiences

Tenants, landlords, and administrators have different permissions and responsibilities. I implemented role-aware application flows and protected dashboard access, with backend authorization helping ensure that sensitive operations are restricted to permitted users.

Keeping property discovery and rental actions responsive

Property browsing, filtering, and request management need to feel responsive without compromising data consistency. I implemented URL-synchronized search filters and optimistic UI updates for selected actions, while retaining backend API responses as the source of truth.

Outcome

RentNest brings property discovery, landlord listing management, rental approvals, online payments, reviews, and administrative oversight into one deployed full-stack application. The project demonstrates practical experience with frontend and backend integration, role-based access control, relational data modeling, payment workflows, and responsive UI development.

What I learned

  • Designing and integrating a separate frontend and backend architecture
  • Building REST APIs with Node.js and Express.js
  • Modeling relational data with Prisma and PostgreSQL
  • Implementing role-based authentication and authorization
  • Integrating Stripe Checkout and server-side webhook verification
  • Managing rental request and payment state transitions
  • Implementing search, filtering, and URL-synchronized state
  • Using optimistic UI updates with error handling
  • Building validated forms with React Hook Form and Zod
  • Designing responsive dashboards and reusable UI components