Welcome to BABETSY!
BABETSY is a shopping website for users to browse and purchase baby products, such as baby clothing, furniture, bedding and toys. It's inspired by Etsy in name and H&M in UX design.
-
Clone this repository (only this branch)
git clone https://github.com/xwnnie/babetsy.git
-
Install dependencies
pipenv install --dev -r dev-requirements.txt && pipenv install -r requirements.txt
-
Create a .env file based on the example with proper settings for your development environment
-
Setup your PostgreSQL user, password and database and make sure it matches your .env file
-
Get into your pipenv, migrate your database, seed your database, and run your flask app
pipenv shell
flask db upgrade
flask seed all
flask run
-
To run the React App in development, checkout the README inside the
react-app
directory.
Users can log into an existing account, sign up or test the site by clicking on the Demo User feature.
- A user can view all product listings by clicking on a category on the category navigation bar.
- A user can view details of a single product, such as name, image, price, description and reviews.
- A logged in user can add a product to the shopping bag, update the quantity and remove the product from their shopping bag.
- A logged in user can check out items in their shopping cart. On the checkout page, they can update their shipping address.
- After an order is placed, they can cancel it within one hour on order history page.
- A logged in user can view all placed orders in order history.
A logged in user can post, edit and delete review on purchased products
A user can add and remove products from their favortie products page.
- Clicking on the heart icon on a product image will add or remove the product from their favorites list
- view all favorite products on the my-favorite page.
A user can search for products by entering a keyword on search bar, which will redirect them to their search results page
Accessing a path that does not exist will render a page not found and redirects the user to the homepage automatically after 3 seconds