GithubHelp home page GithubHelp logo

nathaniel81 / easebnb Goto Github PK

View Code? Open in Web Editor NEW
0.0 1.0 0.0 829 KB

A web application inspired by Airbnb, built with React, TypeScript, Tailwind CSS, Django REST Framework, and PostgreSQL. Includes Google OAuth authentication via Kinde

Home Page: https://easebnb.onrender.com

TypeScript 70.71% CSS 1.03% JavaScript 1.48% Python 26.22% HTML 0.20% Dockerfile 0.37%
airbnb-clone cloudinary django django-rest-framework googleoauth2 kinde-auth react shadcn-ui tailwindcss typescript

easebnb's Introduction

EaseBnb

Welcome to the easebnb! This repository houses a web application inspired by Airbnb, built with a modern tech stack to demonstrate a high level of proficiency in full-stack development. This project combines the power of React (with TypeScript), Tailwind CSS (with Shadcn UI), Django (with Django REST Framework), and PostgreSQL.

Introduction

Easebnb aims to replicate the core functionalities of the popular accommodation rental platform, Airbnb. The project serves as a comprehensive example of a full-stack application, showcasing the integration of a front-end built with React and TypeScript and a back-end developed with Django REST Framework, all powered by a robust PostgreSQL database.

Features

Easebnb comes packed with a variety of features to provide a seamless user experience:

  • User Authentication: Secure login and registration system, including authentication with Google accounts via Kinde.
  • Property Listings: Users can list, browse, search, and view property listings.
  • Booking System: Users can book properties, specifying dates and number of guests.
  • Responsive Design: A fully responsive design ensuring compatibility across various devices.

Tech Stack

This project leverages a modern tech stack to deliver a robust and efficient application:

  • Frontend:

    • React: A powerful JavaScript library for building user interfaces.
    • TypeScript: A statically typed superset of JavaScript to enhance code quality and maintainability.
    • Tailwind CSS: A utility-first CSS framework for rapid UI development.
    • Shadcn UI: A highly customizable component library that complements Tailwind CSS for a consistent design system and extensible library
  • Backend:

    • Django: A high-level Python web framework that encourages rapid development.
    • Django REST Framework: A powerful and flexible toolkit for building Web APIs.
  • Database:

    • PostgreSQL: A powerful, open-source object-relational database system.
  • Authentication:

    • Kinde: A secure and easy-to-integrate authentication service used for Google account authentication.

Getting Started

Prerequisites

Ensure you have the following installed on your system:

  • Node.js (v14 or later)
  • Python (v3.8 or later)
  • PostgreSQL

Installation

  1. Clone the repository:

    git clone https://github.com/Nathaniel81/easebnb.git; cd easebnb
    
  2. Install frontend dependencies::

    cd frontend; npm install
    
  3. Install backend dependencies:

    cd ../backend; pip install -r requirements.txt
    
  4. Set up PostgreSQL database:

    Create a database and update the DATABASES settings in backend/settings.py with your database credentials.

  5. Run database migrations:

    python manage.py migrate
    
  6. Configure Kinde for Google authentication:

    Follow Kinde's documentation to set up your Google OAuth credentials and configure the settings in your application.

  7. Start the development server:

    • Backend:

      python manage.py runserver
      
    • Frontend:

      cd ../frontend; npm run dev
      

Usage

Once the servers are running, you can access the application by navigating to http://localhost:5173 in your web browser. Register a new user, browse listings, make bookings, and explore the features of Easebnb. You can also use your Google account to log in via Kinde.

Contributing

I welcome contributions to enhance this project. To contribute:

  1. Fork the repository.
  2. Create a new branch (git checkout -b feature-branch).
  3. Make your changes.
  4. Commit your changes (git commit -m 'Add new feature').
  5. Push to the branch (git push origin feature-branch).
  6. Open a Pull Request.

Learning Journey

This project represents a significant learning journey in full-stack development, encompassing the integration of frontend and backend technologies. It demonstrates proficiency in building responsive and dynamic user interfaces using React and TypeScript, styling with Tailwind CSS, and managing data persistence and API services with Django and PostgreSQL. Additionally, it includes implementing secure authentication using Kinde for Google OAuth, showcasing a comprehensive approach to modern web application development.

Live Demo

Explore the live version of this project on https://easebnb.onrender.com.

easebnb's People

Contributors

nathaniel81 avatar

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.