Skip to content

An Airbnb clone developed via Next.js 13 app router, React, Tailwind, Prisma, MongoDB, NextAuth

Notifications You must be signed in to change notification settings

VasilGVasilev/airbnb

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 

Repository files navigation

Full Stack Airbnb Clone with Next.js 13 App Router: React, Tailwind, Prisma, MongoDB, NextAuth

alt text


alt text

What's in the stack

Features:

  • Full responsiveness
  • Credential authentication
  • Google authentication
  • Github authentication
  • Image upload using Cloudinary CDN
  • Client form validation and handling using react-hook-form
  • Server error handling using react-toast
  • Calendars with react-date-range
  • Page loading state
  • Page empty state
  • Booking / Reservation system
  • Guest reservation cancellation
  • Owner reservation cancellation
  • Creation and deletion of properties
  • Pricing calculation
  • Advanced search algorithm by category, date range, map location, number of guests, rooms and bathrooms
    • For example we will filter out properties that have a reservation in your desired date range to travel
  • Favorites system
  • Shareable URL filters (see Category and CategoryBox components)
    • Lets say you select a category, location and date range, you will be able to share URL with a logged out friend in another browser and they will see the same results
  • How to write POST and DELETE routes in route handlers (app/api)
  • How to fetch data in server react components by directly accessing database (see /actions)
  • How to handle files like error.tsx and loading.tsx which are new Next 13 templating files to unify loading and error handling

Learning achievements:

  • Basic understanding of Typescript
  • Utilizing advanced library for authentication
  • Deep dive into modularity and reusablility of components
  • Understanding useCallback() and useMemo() hooks
  • Reflecting on the need to sanitize data from DB to be useable in React

Other dependencies:

  • react-icons
  • zustand
  • axios
  • react-hook-form
  • react-hot-toast
  • next-auth @prisma/client @next-auth/prisma-adapter
  • bcrypt + -D @types/bcrypt
  • query-string
  • world-countries
  • react-select
  • leaflet + -D @types/leaflet
  • react-leaflet
  • next-cloudinary + cloudinary for imageupload
  • date-fns
  • react-date-range + -D @types/react-date-range
  • react-spinners

About

An Airbnb clone developed via Next.js 13 app router, React, Tailwind, Prisma, MongoDB, NextAuth

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages