PinThis is a Pinterest clone where users have full CRUD on Pin, Board, Comments and favorite functions. The backend of PinThis is built on Python with a PostgreSQL database. Frontend rendering is handled with React. Check out a live version of PinThis here
- Clone this repository
- Install dependencies
- Backend
pipenv install
- Frontend
npm install
-
Create a .env file based on the example with proper settings for your development environment, you should have these key in the .env file .
- SECRET_KEY
- DATABASE_URL
- SCHEMA
- S3_BUCKET
- S3_KEY
- S3_SECRET
-
Make sure the SQLite3 database connection URL is in the .env file
-
Set up your database with information from your .env and then run the following to create your database, migrate, and seed
pipenv shell
pipenv db init
flask db migrate
flask db upgrade
flask seed all
- Start the app for both backend and frontend using:
- backend :
pipenv run flask run
- frontend :
npm start
- Users should be able to view all posted Pins.
- Users should be able to create new posts.
- Users should be able to update their posts
- Users should be able to delete their posts.
- Users should be able to view all boards on a user's profile.
- Users should be able to create new boards and add/remove Pins.
- Users should be able to update their boards.
- Users should be able to delete their boards.
- Users should be able to view all comments on a pin.
- Users should be able to create new comments on a pin.
- Users should be able to delete their comment from a pin.
- Users should be able to see all Pins they favorited.
- Users should be able to favorite Pins.
- Users should be able to unfavorite Pins.