by Yvonne Yeh
Doge Snappe Shoppe is a full-stack web app that helps doge lovers buy and sell photos of dogs!
- App Overview
- About the Developer
- Technology
- Data Structure
- Installation Instructions
- Future Features
This is a backend-focused project created with the intention of building an image repository. I wanted to implement a shopping feature, which I had never done before. Users buy and sell photos – they can upload images and manage the photo inventory, see photos for sale, and purchase a photo.
Yvonne is a software engineer from the Silicon Valley who has never seen the show. Curiosity, creativity, and a love of learning are at the root of everything Yvonne does. She loves that coding because it is artful – there are infinite ways to code a program! Before she learned how to code, she worked in K-12 education, design, and mental/physical fitness.
- Displays a list of all photos in the inventory on the homepage
- Upload photos from your computer with a title, description, and price.
- Asset are uploaded and stored in Cloudinary, and the public URL saved to the database.
- Modify the inventory
- Add items to the shopping cart
- Process order with credit card verification with the Stripe API
- Frontend: JavaScript, HTML, CSS, Bootstrap
- Backend: Python3, Flask, PostgreSQL, SQLAlchemy, Jinja2, Bash
- APIs: Cloudinary, Stripe
To run Doge Shoppe, you will need the following API keys:
Python3 and PostgreSQL will also need to be installed on your machine.
- Clone this repository:
git clone https://github.com/yvonneyeh/photo-shopping-app.git
Optional: Create and activate a virtual environment:
pip3 install virtualenv
virtualenv env
source env/bin/activate
- Install dependencies:
pip3 install -r requirements.txt
- Create environmental variables to hold your API keys in a
secrets.sh
file:
export DATABASE_URL='{DATABASE_URL}'
export SECRET_KEY='{SECRET_KEY}'
export CLOUD_NAME='{CLOUD_NAME}'
export CLOUD_API_KEY='{CLOUDINARY_API_KEY}'
export CLOUD_API_SECRET='{CLOUDINARY_API_SECRET}'
export ENV_VAR='{cloudinary://...}'
export STRIPE_SECRET_KEY='{STRIPE_SECRET_KEY}'
export STRIPE_PUBLIC_KEY='{STRIPE_PUBLIC_KEY}'
- Create your database & seed sample data:
createdb photos
python3 seed.py
- Run the app on localhost:
source secrets.sh
python3 server.py
- Admin and Client privileges for different views
- Only admins can delete photos
- Additional shopping cart functionality such as checking out with multiple items
- Search functionality
- Ability to add discounts to items