Skip to content

Repository files navigation

Estate API

Production-oriented NestJS + Prisma + PostgreSQL backend for real-estate listings.

Stack

  • NestJS 11 / TypeScript
  • Prisma 7 + PostgreSQL
  • JWT auth (admin password + client OTP)
  • Helmet, CORS, throttling, global validation

Quick start

  1. Copy env and adjust secrets:
cp .env.example .env
  1. Start Postgres (Docker):
docker compose up -d db
  1. Install, migrate, run:
npm install
npx prisma migrate dev
npm run start:dev

API base: http://127.0.0.1:4000/api
Health: GET /api/health

Auth

Endpoint Access Description
POST /api/auth/admin/register Public (first admin only) Bootstrap super-admin
POST /api/auth/admin/login Public Admin login → JWT
POST /api/auth/admin/create Super admin Create another admin
POST /api/auth/otp/request Public Request client OTP
POST /api/auth/otp/verify Public Verify OTP → JWT

Send Authorization: Bearer <token> on protected routes.

Roles

  • CLIENT — own profile, apartments, favorites
  • ADMIN — catalog CRUD, client management
  • SUPER_ADMIN — admin management + all admin powers

Public read access: apartments, categories, cities, districts, locations.

Docker (full stack)

cp .env.example .env
# set JWT_SECRET and NODE_ENV=production
docker compose up --build

Scripts

Script Purpose
npm run start:dev Watch mode
npm run build Compile
npm run start:prod Run dist/main
npm run lint ESLint
npx prisma migrate dev Create/apply migrations
npx prisma studio DB UI

About

Scalable real estate marketplace where users can list, discover, buy, sell, and rent apartments, houses, and commercial properties with advanced search, property management, and secure user authentication.

Topics

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages