- A website for sneakerheads where you can search for the best price of your favourite sneaker over the internet
-
Implemented a web-scraper that extracts data from prominent sneaker selling websites.
-
Currently integrated 3 websites namely Superkicks.in, VegNonVeg.com, Nike.com. Keeping the project open for contributions for more websites integration.
-
Integrated a scheduler batch file that runs the scraper on scheduled intervals to update the present data in the database.
-
Information regarding APIs & usage given below.
- JavaScript
- Python
- Node.js
- Express.js
- MongoDB
- BeautifulSoup
- Selenium
- Clone the repository locally:
git clone https://github.com/SCube27/SneakerHunt.git
- Install the dependencies:
npm install
- Install python libraries:
pip install -r requirements.txt
- Start the server:
npm run dev
- Refer the
template.env
and setup a.env
file accordingly for the required environment variables for the project.
-
Get the Sneaker Data:
- API:
localhost:<PORT>/api/v1/sneakers/
- Req Type: POST
- Requires: Reqest Body with Sneaker Name String
- Response:
// Dummy Response [ { name: sneaker name (string), price: price of sneaker (number), link: url to buy the sneaker (string), image: image url (string) }, ]
- API:
-
Update Sneaker Data in DB: (Not for users to access)
- API:
localhost:<PORT>/api/v1/sneakers/update_details
- Req Type: PATCH
- Requires: No requirement
- Response:
{ success: true, message: "updated the data successfully" }
- API:
-
Sign Up User:
- API:
localhost:<PORT>/api/v1/auth/signup
- Req Type: POST
- Requires: Request body with username, email and password of user
- Response:
{ username: username of the signed up user, email: email of the user }
- API:
-
Log In User:
- API:
localhost:<PORT>/api/v1/auth/login
- Req Type: POST
- Requires: Request body with username and password of user
- Response:
{ username: username of the signed up user, email: email of the user }
- API:
-
Log Out User:
- API:
localhost:<PORT>/api/v1/auth/logout
- Req Type: POST
- Requires: No requirements
- Response:
{ message: "Logged Out Successfully" }
- API:
[NOTE] The update sneaker data API is used by the scheduler file to update the sneaker data, its not suppose to be accessed on client side.
- To automate the collection of prices from this software simply run the
scheduler/main.py
file at your desired increment while the python flask backend is running.
- I have created a simple
.bat
script calledwin.bat
that you can schedule to execute using the Windows Task Scheduler that will automatically run the backend api and send the appropriate request to it.
- The project is open for contribution according to the issues present in the issues tab.