CodePath WEB103 Final Project
Designed and developed by: Noel Alfaro & Mohamed Reda Falh
๐ Link to deployed app:
Sneak-Peak is a web application designed to cater to sneaker enthusiasts, and newcomers. It is a web app built with Node.js/Express and PostgresSQL on the backend and React on the frontend. The purpose of this app is to allow users to be able to manage, share & showcase their shoe collections.
We were inspired by shoe buying apps like GOAT, which allow users to buy new and vintage shoes. We wanted to create an app that users can treat as their digital locker room to store & update their collections, upvote other users shoes, and highlight their favorites.
Frontend: React, Tailwind CSS
Backend: Node, Express, PostgresSQL database
- Built using an Express backend and a React frontend.
- Dynamic routes implemented for both frontend and backend.
- Hosted and deployed via Railway.
User & Sneaker: One-to-many relationship where each user can upload multiple shoes. User & Sneaker: Many-to-many relationship where many users can upvote/downvote multiple shoes. User & Profile: One-to-One relationship is established between users and their profiles. Users can customize their profiles to add additional information, enhancing their personalization within the app.
- GET
/shoes
: Fetch all shoe collections. - POST
/shoes
: Add a new shoe to a user's collection. - PATCH
/shoes/:id
: Update shoe details. - DELETE
/shoes/:id
: Remove a shoe from the collection.
API endpoint to reset the database to its initial state.
The user should be able to fill out a form to upload a new 'Shoe' to add to their collection [gif goes here]
After creating a Shoe, users are navigated to the Sneak-Peak gallery. [gif goes here]
Users can upvote/downvote shoes in the highlight gallery. [gif goes here]
The user should be able to 'Highlight' a shoe so that their shoe can be added to the highlighted dashboard on the homepage [gif goes here]
Logged in Users edit or delete shoes listed in their collection [gif goes here]
Landing page, user profiles, individual shoe details, and Sneak-Peak Dashboard, all facilitated via React Router.
Hierarchically designed components segmented into pages and component types.
The web app displays an error message to the user if something goes wrong. [gif goes here]
- The user can log in via Github [gif goes here]
- Clone the repository.
- Install dependencies using
npm install
. - Start the server using
npm start
. - Navigate to
localhost:3000
to see the app in action.
Feel free to fork the repository, make changes, and submit a pull request. We appreciate all contributions!