This project is a clone of the popular vacation rental platform, Airbnb. It is created for the purpose of practicing and honing frontend and backend development skills.
The frontend of this application is built using Astro.js + React + Tailwind CSS. Astro.js is a front-end framework that allows you to build faster, modern websites with less client-side JavaScript.
The backend of this application is built using Golang, also known as Go, is a statically typed, compiled language with clean syntax and efficient concurrency handling.
To get started with this project, clone the repository and install the necessary dependencies.
git clone https://github.com/yourusername/airbnb.git
cd airbnb
This project can also be set up using Docker Desktop. Docker allows you to package an application with all of its dependencies into a standardized unit for software development.
-
Install Docker Desktop from here.
-
Once Docker Desktop is installed, you can verify the installation by opening a terminal and typing:
docker --version
This should display the installed version of Docker.
VS Code Dev Containers provide a fully configured development environment without needing to install and configure a development environment locally.
-
Install the Remote - Containers extension in VS Code.
-
After cloning the project, open the project folder in VS Code.
git clone https://github.com/dexter0323/airbnb.git
cd airbnb
code .
-
VS Code should prompt you to reopen the project in a container. If it doesn't, press
F1
, typeRemote-Containers: Reopen in Container
, and pressEnter
. -
VS Code will build the Docker container and install all the necessary dependencies. This process may take a few minutes.
-
Once the container is built, you can start developing in the container just like you would in a local environment.
We are using a Taskfile.yml
(also known as Taskfile) to centralize our scripts. This helps in maintaining consistency and ease of use across different development environments. You can find this file in the root directory of the project.
task <task-name>
To see all available tasks, run:
task --list-all