villalb4 /
windbnb
Pequeño clon de Airbnb - devChallenge
33/100 healthLoading repository data…
GhersonSA / repository
Clon de Airbnb con arquitectura de microservicios | Next.js 15 + NestJS + Prisma + Stripe | JWT Auth, Booking System, Payments, Reviews & Favorites | 33 REST API endpoints | shadcn/ui + TailwindCSS | TypeScript monorepo
A transparent discovery signal based on current public GitHub metadata.
This score does not audit code, security, maintainers, documentation quality, or suitability. Verify the repository and its current documentation before adoption.
A production-ready full-stack Airbnb clone built with modern technologies and best practices.
airbnb-full-clone/
├── apps/
│ ├── api-gateway/ # NestJS Backend
│ │ ├── src/
│ │ │ ├── auth/ # Authentication module
│ │ │ ├── properties/ # Property management
│ │ │ ├── bookings/ # Booking system
│ │ │ ├── payments/ # Stripe integration
│ │ │ ├── reviews/ # Review system
│ │ │ ├── favorites/ # Wishlist functionality
│ │ │ └── common/ # Shared utilities
│ │ └── test/ # API tests
│ │
│ └── web/ # Next.js Frontend
│ ├── src/
│ │ ├── app/ # App router pages
│ │ ├── components/ # React components
│ │ ├── lib/ # Utilities & API clients
│ │ └── types/ # TypeScript types
│
└── packages/
└── database/ # Prisma schema & migrations
└── prisma/
git clone https://github.com/YOUR_USERNAME/airbnb-fullstack-clone.git
cd airbnb-fullstack-clone
pnpm install
cd packages/database
npx prisma generate
npx prisma migrate dev --name init
Backend (apps/api-gateway/.env):
DATABASE_URL="file:../../packages/database/prisma/dev.db"
JWT_SECRET=your_jwt_secret_key
STRIPE_SECRET_KEY=sk_test_...
STRIPE_PUBLISHABLE_KEY=pk_test_...
STRIPE_WEBHOOK_SECRET=whsec_...
Frontend (apps/web/.env.local):
NEXT_PUBLIC_API_URL=http://localhost:3001/api
NEXT_PUBLIC_STRIPE_PUBLISHABLE_KEY=pk_test_...
Backend:
cd apps/api-gateway
pnpm run start:dev
# Server runs on http://localhost:3001
Frontend:
cd apps/web
pnpm run dev
# App runs on http://localhost:3000
# Backend
cd apps/api-gateway
pnpm run build
pnpm run start:prod
# Frontend
cd apps/web
pnpm run build
pnpm run start
POST /api/auth/register - Register new userPOST /api/auth/login - Login userGET /api/auth/me - Get current userGET /api/properties - List all propertiesGET /api/properties/:id - Get property detailsPOST /api/properties - Create property (Host only)PATCH /api/properties/:id - Update propertyDELETE /api/properties/:id - Delete propertyPATCH /api/properties/:id/publish - Publish propertyGET /api/properties/my-properties - Get my propertiesPOST /api/bookings - Create bookingGET /api/bookings/my-bookings - Get my bookingsGET /api/bookings/host-bookings - Get bookings (Host)GET /api/bookings/:id - Get booking detailsPATCH /api/bookings/:id/confirm - Confirm booking (Host)PATCH /api/bookings/:id/cancel - Cancel bookingPOST /api/payments/create-intent - Create payment intentPOST /api/payments/confirm - Confirm paymentGET /api/payments/booking/:id - Get payment by bookingPOST /api/payments/:id/refund - Refund paymentPOST /api/payments/webhook - Stripe webhookPOST /api/reviews - Create reviewGET /api/reviews/property/:id - Get property reviewsGET /api/reviews/my-reviews - Get my reviewsGET /api/reviews/:id - Get review detailsPATCH /api/reviews/:id - Update reviewDELETE /api/reviews/:id - Delete reviewPOST /api/favorites/:propertyId - Add to favoritesDELETE /api/favorites/:propertyId - Remove from favoritesPOST /api/favorites/toggle/:propertyId - Toggle favoriteGET /api/favorites - Get my favoritesGET /api/favorites/check/:propertyId - Check if favoritedGET /api/favorites/count/:propertyId - Get favorite count# Use REST Client extension in VS Code
# Open apps/api-gateway/test/complete-test.http
model User {
id String @id @default(cuid())
email String @unique
password String
name String
role Role @default(GUEST)
avatar String?
createdAt DateTime @default(now())
updatedAt DateTime @updatedAt
}
model Property {
id String @id @default(cuid())
title String
description String
price Float
propertyType PropertyType
maxGuests Int
bedrooms Int
bathrooms Int
city String
country String
images String // JSON array
status PropertyStatus @default(DRAFT)
hostId String
host User @relation(fields: [hostId])
}
model Booking {
id String @id @default(cuid())
propertyId String
guestId String
checkIn DateTime
checkOut DateTime
guests Int
totalPrice Float
status BookingStatus @default(PENDING)
}
model Payment {
id String @id @default(cuid())
bookingId String @unique
amount Float
stripePaymentIntentId String
status PaymentStatus @default(PENDING)
}
model Review {
id String @id @default(cuid())
bookingId String @unique
propertyId String
userId String
rating Int
comment String?
}
model Favorite {
id String @id @default(cuid())
userId String
propertyId String
@@unique([userId, propertyId])
}
Built with shadcn/ui:
cd apps/api-gateway
pnpm run build
# Deploy to Railway or Render
cd apps/web
pnpm run build
# Deploy to Vercel
MIT License - feel free to use this project for learning purposes.
Gherson
For questions or collaboration: your.email@example.com
⭐ If you found this project helpful, please give it a star!
Selected from shared topics, language and repository description—not editorial ratings.
villalb4 /
Pequeño clon de Airbnb - devChallenge
33/100 healthAlecOrtiz20 /
Proyecto con react y TypeScript
34/100 healthchristopherdavi /
Este es un clon de airbnb construido con Nuxt 3, TailwindCSS y Typescript🚀
/100 healthDota43ver /
Clone de Airbnb Next y Typescript
27/100 healthyvanflorian /
A (somewhat) clone of AirBnb based on public data using React, TypeScript, Graphql, MongoDB...
44/100 healthyuriassuncx /
Clone do Airbnb com MongoDB, Google e Github Authentication, Upload de Imagens com Cloudinary CDN, Prisma, Typescript, Zustand, Axios, TailwindCSS para estilização e a nova versão do NextJS.
30/100 health