ShareBnB is an Airbnb clone created during my time at Rithm School with my partner, @ndrjao, built over the course of 4 days.
The backend was built with: Python, Flask, WTForms, SQLAlchemy, PostgreSQL.
The frontend was built with Javascript, React, Tailwind.
Images are stored within AWS S3 buckets.
To run this app locally:
- Clone the repo
git clone https://github.com/alicechang29/sharebnb.git
- cd into backend/
- Start Python Virtual Environment
python3 -m venv venv
- Activate Venv and Pip install requirements
$ source venv/bin/activate
(venv) $ pip3 install -r requirements.txt
- Start the Flask server
flask run -p 5001
- Open another terminal window
- cd into frontend/
- NPM install
npm i
- Start npm
npm run start
I learned a lot during this project, such as:
- How to setup and AWS S3 bucket along with AWS IAM user accounts and permissions
- It is possible to send multi-part forms using Insomnia (we did not know this initially and created an entire form in React to test if the image upload to S3 worked)
- Using the POST listings route as a "conductor function" to handle adding listings data to the database, generating a UUID for images uploaded in order to store it in S3, and uploading the image to S3
- Form data is sent to backend as an object, and if there are images, it will be within request.files
There are many more features that I want to add to this project, which include:
- Finishing user authentication/authorization
- Adding Tests
- Search and filtering
- User Profiles