Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

Awesome Lists | Featured Topics | Projects

https://github.com/tariqkichawele/airbnb-clone

An Airbnb clone built using Next.js
https://github.com/tariqkichawele/airbnb-clone

Last synced: 18 days ago
JSON representation

An Airbnb clone built using Next.js

Awesome Lists containing this project

README

        

# Airbnb Clone

Welcome to the Airbnb Clone, a full-stack web application built with Next.js 14, Kinde, Supabase, Prisma, Tailwind CSS, and Shadcn/UI. This project replicates the core features of Airbnb, providing users with a seamless experience for searching and booking accommodations.

![airbnb](https://github.com/TariqKichawele/airbnb-clone/assets/105932024/bca88643-25e6-40b9-af7b-e7175097536a)

**TECHNOLOGIES USED**

**Frontend:**
- Next.js 14: A React framework for building server-side rendered (SSR) and static web applications.
- Tailwind CSS: A utility-first CSS framework for styling web interfaces.
- Shadcn/UI: A UI component library for creating modern and responsive user interfaces.

**Backend:**
- Kinde: A flexible and scalable authentication solution for Next.js applications.
- Supabase: An open-source Firebase alternative with real-time GraphQL capabilities.
- Prisma: A modern database toolkit for Node.js and TypeScript applications.

**FEATURES**

Authentication:
- Kinde Authentication: Secure user authentication with Kinde, ensuring seamless and secure access to the platform.
- Passwordless Auth: Passwordless authentication for a frictionless user experience.
- OAuth (Google and Facebook): OAuth integration with Google and Facebook for convenient login options.
-
Database and Storage:
- Supabase Database: A robust database solution for storing user data and application information.
- Supabase Storage: Secure and scalable cloud storage for storing media files and user uploads.
-
ORM:
- Prisma ORM: A modern database toolkit for interacting with the database, ensuring efficient data management and querying.

Styling:
- Tailwind CSS and Shadcn/UI: Utilizing Tailwind CSS and Shadcn/UI for styling the user interface, providing a modern and responsive design.

Deployment:
- Deployment to Vercel: Seamless deployment to Vercel for easy hosting and scaling of the application.

Reservation System:
- Calendar Implementation: Implementation of a calendar feature for selecting dates and scheduling reservations.
- Dynamic Map Implementation: Dynamic maps displaying accommodation locations and nearby attractions.
- Reservation System: Complete reservation system for booking accommodations and managing bookings.

Search and Filtering:
- Filter Bar: Interactive filter bar for refining search results based on criteria such as price, location, and amenities.
- Multi Step Search Modal: Multi-step modal for guiding users through the search process and capturing detailed search preferences.

Listing Creation:
- Multi Step Form Listing Creation: Multi-step form for creating and listing accommodations, allowing hosts to provide detailed information and media.

Performance Optimization:
- Streaming with Suspense Boundaries: Implementation of streaming and suspense boundaries for optimizing performance and loading times.
- Pending States: Effective handling of pending states and loading indicators for a smooth user experience.
- Caching: Caching mechanisms for optimizing data fetching and reducing server load.

Authentication Customization:
- Customized Login Page: Customized login page with personalized branding and user-friendly interface.
- Server-side Implementation: Server-side authentication implementation for enhanced security and performance.

This is a [Next.js](https://nextjs.org/) project bootstrapped with [`create-next-app`](https://github.com/vercel/next.js/tree/canary/packages/create-next-app).

## Getting Started

First, run the development server:

```bash
npm run dev
# or
yarn dev
# or
pnpm dev
# or
bun dev
```

Open [http://localhost:3000](http://localhost:3000) with your browser to see the result.

You can start editing the page by modifying `app/page.tsx`. The page auto-updates as you edit the file.

This project uses [`next/font`](https://nextjs.org/docs/basic-features/font-optimization) to automatically optimize and load Inter, a custom Google Font.

## Learn More

To learn more about Next.js, take a look at the following resources:

- [Next.js Documentation](https://nextjs.org/docs) - learn about Next.js features and API.
- [Learn Next.js](https://nextjs.org/learn) - an interactive Next.js tutorial.

You can check out [the Next.js GitHub repository](https://github.com/vercel/next.js/) - your feedback and contributions are welcome!

## Deploy on Vercel

The easiest way to deploy your Next.js app is to use the [Vercel Platform](https://vercel.com/new?utm_medium=default-template&filter=next.js&utm_source=create-next-app&utm_campaign=create-next-app-readme) from the creators of Next.js.

Check out our [Next.js deployment documentation](https://nextjs.org/docs/deployment) for more details.