wtorresjr / Craftsy-Etsy-Clone

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Welcome to Craftsy!!!

Navigation

About The Project

Craftsy is an Etsy clone, an app designed to connect consumers with sellers of handcrafted and vintage goods.

The Team

Technologies Used

Python JavaScript HTML5 CSS3 Flask React Redux AWS

Screenshots

Sign up

sign-up

Homepage

homepage

Search

search

Product detail

product-detail

Favorites

favorites

Cart

cart

Getting Started

I. Clone the repository:

git clone https://github.com/wtorresjr/Craftsy-Etsy-Clone.git

II. Install the dependencies (in root directory):

pipenv install -r requirements.txt

III. Set up your environmental variables:

  1. Run: echo > ".env"
  2. Open the .env.example file and copy its contents into your newly created .env file
  3. Replace placeholder values with actual values for S3-related keys (See the AWS S3 Setup Instructions page)

IV. Run the following commands:

To run the backend server of application:

  1. Enter your virtual environment: pipenv shell
  2. Migrate your database: flask db upgrade
  3. Seed your database: flask seed all
  4. Run your server: flask run

To run the frontend of application:

  1. In another terminal, change directory into react-app: cd react-app
  2. Install node modules: npm install
  3. Run your application: npm start

Helpful Commands

Command Description
pipenv shell Automatically activates a virtual environment specifically for your project, keeping any dependencies installed isolated.

Run deactivate to exit the virtual environment and return to your shell environment.
pipenv run Can activate a virtual environment and run commands like the pipenv shell command; however flask commands must be prepended with this command (e.g., pipenv run flask db upgrade and pipenv run flask run).
flask run When prepended with pipenv run, it activates a virtual environment for your project.

Press CTRL + C to exit the virtual envrionment and return to your shell environment.
flask db upgrade Syncs the database schema.
flask db downgrade Reverts the database schema to the previous state. This is run, followed by flask db upgrade to update the application with any schema changes.
flask seed all Populates the database with seed file data.

Features

New account creation Log in, log out, and guest/demo login:

  • Users can sign up, log in, and log out.
  • Users can use a demo log in to try the site.
  • Users can't use certain features without logging in (like Creating Products, leaving reviews, etc.)
  • Users who log in while browsing a product will be redirected to the home page.
  • Logged out users are redirected to home page.

Products

All Users:

  • Should be able to view all Products.

Authenticated & Authorized Users:

  • Should be able to create a Product.
  • Should be able to update their Product(s).
  • Should be able to delete their Product(s).

Reviews

All Users:

  • Should be able to view all reviews on a Product.

Authenticated & Authorized Users:

  • Should be able to create a review for a Product.
  • Should be able to update their review for a Product.
  • Should be able to delete their review from a Product.

Shopping Cart

All Users:

  • Should be able to view all products added to their cart.
  • Should be able to add products to their shopping cart.
  • Should be able to remove products from their shopping cart.

Authenticated Users:

  • Should be able to preform a "transaction" to complete their purchase.

Favorites

Authenticated & Authorized Users:

  • Should be able to view all of their favorite products.
  • Should be able to favorite products.
  • Should be able to delete products from their favorites.

Acknowledgments

About


Languages

Language:Python 71.9%Language:CSS 27.3%Language:HTML 0.5%Language:Mako 0.3%Language:Shell 0.0%