Skip to content

Siddartha1007/SlashV3

Β 
Β 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

271 Commits
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

SlashV3

Welcome to Slash: Your Ultimate Shopping Companion!

Link to the youtube video - https://www.youtube.com/watch?v=n-MlC37PRtY&t=18s

GitHub github workflow DOI Github Github GitHub issues Github closes issues Github pull requests Github closed pull requests Node.js CI Build Python Application codecov

Do you love shopping? Are you in search of some good deals while shopping online?!

Slash is here to help you look for the best deals! Discover the latest deals and discounts from your favorite e-commerce websites with Slash.


We've simplified the way you shop online, making it faster, easier, and more powerful than ever before.
🌟 Key Features
Save Time: Slash helps you find the best deals on your desired items across multiple popular e-commerce websites.
User-Friendly APIs: We offer simple and intuitive public APIs, allowing you to filter, sort, and search through search results effortlessly.
Customizable Output: Slash provides JSON responses that you can easily customize to match your specific needs and requirements.

πŸ›’ Supported Websites
Slash currently supports the following major e-commerce websites:
Walmart,BestBuy, Costco

Scorecard:

Project3_Rubric

πŸš€ Improvements over the Previous project

We have added a lot of new features to slash in this phase

1. Amplify Integration for Authentication: AWS Amplify is a development platform from AWS for building scalable web applications, offering backend services like authentication, data storage, and APIs. We implemented Amazon Amplify in the frontend to enhance user authentication. This integration provides a robust and secure mechanism for user sign-in, sign-up, and logout processes.

2. Wishlist Feature with DynamoDB: Implemented a new 'Wishlist' feature, allowing users to add their desired items to a personalized wishlist page with a simple click. This feature uses Amazon DynamoDB for efficient data storage and retrieval. DynamoDB's high speed and scalability make the wishlist feature fast and responsive, enhancing the overall user experience. You can either add an item to wishlist or remove it from them. Furthermore, each time a user adds or removes an item from their wishlist, a popup message appears. This popup provides instant feedback on their action, confirming the successful addition or removal of the item.

3. Navigation Bar Addition: Added a new navigation bar to the application, improving site navigation and user accessibility. This feature allows users to easily navigate through different sections of the application, enhancing the overall user experience. The navigation bar includes search access which on clicking navigates to the search page, wishlist access which on clicking navigates you to the wishlist page and a logout option ensuring users can securely exit their accounts with ease. This addition prioritizes user security and convenience, allowing for a quick and straightforward logout process.

4. Export to CSV Functionality: Implemented a feature that enables users to export data tables into CSV files. This functionality is crucial for allowing users to download and save data for offline analysis or reporting purposes. Especially beneficial for users who prefer working with data in spreadsheet applications or require data for record-keeping. Also, since our app shows the best deals from many online shopping sites, this CSV export helps users compare these deals easily. They can download this information and see which site offers the best price for what they're searching for, all in one place. This makes shopping smarter and simpler for our users.

5. Enhanced Search Filters: Upgraded the search feature with enhanced filters. This improvement allows users to refine their searches more precisely, using multiple criteria such as product name, category, website, and price. The enhanced filtering feature makes the search process more efficient, helping users find what they're looking for quickly and easily.

6. Column-Specific Filtering with Clear Filter button: Implemented filter options for each data column, including product name, category, website, and price. Additionally, a 'Clear Filter' button has been added, allowing users to easily reset all applied filters. This feature provides users with granular control over the data they view, making the filtering process more flexible and user-friendly.

7. Row Selection and Deselection with Popup Messages: We added a new feature where users can choose or unchoose single rows in lists of data. When they do this, a message pops up to tell them what they've done. This makes the app more fun to use because it reacts to what the user does. The messages that pop up are there to make sure users know exactly what they're changing or choosing. This helps them focus on the information they're most interested in.

8. Enhanced Code Coverage: Significantly improved the code coverage of the application, increasing it from 36% to 96%.


Get ready to supercharge your shopping experience with Slash! πŸš€ Getting Started Slash is open-source and ready for you to explore. Here's how to begin:

Checkout our video :: Installation :: Technology Used :: Use Case :: Why :: Future Roadmap :: Support


πŸŽ₯ Checkout our video

Youtube Video - https://www.youtube.com/watch?v=n-MlC37PRtY&t=18s

Animated video

SE-P3.mp4

πŸš€ Installation

  1. Clone the Github repository to a desired location on your computer. You will need git to be preinstalled on your machine. Once the repository is cloned, you will then cd into the local repository.
git clone https://github.com/Siddartha1007/SlashV3.git
cd SlashV3
  1. This project uses Python 3 for the scraper, Quarkus for the backend, and React framework for the frontend. You will also need to install Docker.

For the Scraper to work we ensure that Python and Pip are preinstalled. All the Python requirements of the project are listed in the requirements.txt file. Use pip to install all of those.

pip3 install -r requirements.txt
  1. First we run the scraper. For this we cd into the src folder. Once in the src folder, use the python command to run the main.py file.
cd src
For Mac
python3 main.py
For Windows
python main.py
  1. For the backend setup ensure that JDK 17 is preinstalled, you will have to cd into the backend. Once in the backend folder, use the command mvnw.cmd
cd backend
For Mac
./mvnw compile quarkus:dev
For Windows
mvnw.cmd quarkus : dev
  1. Install or update the latest version of the AWS CLI, For installation instructions follow the below link https://docs.aws.amazon.com/cli/latest/userguide/getting-started-install.html

  2. Once aws command line interface is setup, use the below command to test it.

aws --version
  1. Alternatively, you can follow the below method. This method involves directly using the Node.js package manager (npm) to install the AWS Amplify CLI.
npm install -g @aws-amplify/cli
  1. To synchronize your Amplify project between the cloud and your local environment, use the command amplify pull
cd frontend
amplify pull
  1. For the frontend setup to ensure that Node 20 is preinstalled, you will have to cd into the frontend. Once in the frontend folder, use the command npm start
cd frontend
For Mac
npm start 
For Windows
npm start

Alternatively Running with Docker

To run the application using Docker, follow these steps:

  1. Navigate to the backend directory:

    cd backend
    
  2. Build the backend application using Maven Wrapper:

    ./mvnw package
    
    
  3. Return to the project root:

    cd ..
    
  4. Start the Docker containers:

    docker-compose up
    

These commands above will run and build 4 containers locally.

πŸ’» Technology Used

πŸ—„οΈ Snippets

Authentication - Signin and Signup

create.account.mp4
sign.in.mp4

Add and remove product from wishlist

add.to.wishlist.mp4
remove.from.wishlist.mp4

Pagination, Filter, Export to csv, Meta key

pagination.mp4
filter.mp4
csv.mp4
metakey.mp4

πŸ’‘ Use Case

  • Students: Students coming to university are generally on a budget and time constraint and generally spend hours wasting time to search for products on Websites. Slash is the perfect tool for these students that slashes all the unnecessary details on a website and helps them get prices for a product across multiple websites.Make the most of this tool in the upcoming Black Friday Sale.
  • Data Analysts: Finding data for any project is one of the most tedious job for a data analyst, and the datasets found might not be the most recent one. Using slash, they can create their own dataset in real time and format it as per their needs so that they can focus on what is actually inportant.

πŸ“„ Why

  • In a market where we are spoilt for choices, we often look for the best deals.
  • The ubiquity of internet access has leveled the retail playing field, making it easy for individuals and businesses to sell products without geographic limitation. In 2020, U.S. e-commerce sales, receiving a boost due to the COVID-19 pandemic, grew 44% and represented more than 21% of total retail sales, according to e-commerce information source Internet Retailer.
  • The growth of e-commerce has not only changed the way customers shop, but also their expectations of how brands approach customer service, personalize communications, and provide customers choices.
  • E-commerce market has prompted cutthroat competition amongst dealers, which is discernable through the price patterns for products of major market players. Price cuts are somewhat of a norm now and getting the best deal for your money can sometimes be a hassle (even while online shopping).
  • This is what Slash aims to reduce by giving you an easy-to-use, all-in-one-place solution for finding the best deals for your products that major market dealers have to offer!
  • Slash in its current form is for students who wish to get the best deals out of every e-commerce site and can be used by anyone who is willing to develop an application that consumes these web APIs.
  • Future scope includes anything from a web application with a frontend or any Android or IOS application that utilizes these Web APIs at their backend. Anyone can build their own custom application on top of these web APIs.

β›³ Future Roadmap

  • Price Alert notifications : Implement a feature that allows users to set alerts for price drops on specific products. This could involve sending email or push notifications when a product reaches a certain price point, ensuring users don't miss out on the best deals.
  • User Reviews and Ratings : Integrate a section for user reviews and ratings for products from various e-commerce sites. This would help shoppers make more informed decisions by reading about others' experiences with the product
  • Price History Graphs: Include a feature that shows the price history of a product over time. This can help users understand pricing trends and make better decisions on when to buy.
  • Social Sharing Options: Add functionality to easily share deals or favorite products on social media platforms or through messaging apps. This could increase user engagement and app popularity.
  • Chatbot for Customer Support: Integrate a chatbot for instant customer support, helping users with queries about the app or specific deals.
  • Chrome Extension : Create a chrome extension using the functionalities of Slash API
  • Store the search history of the user and use the stored history to provide personalized product recommendations and deal alerts based on user preferences. You can also find the future scope of this project in the open issue board here : https://github.com/Siddartha1007/SlashV3/issues?q=is%3Aopen+is%3Aissue

Troubleshoot:

  1. While running the project an error may arise after installing aws that it it is not installed, try to use this method that involves directly using the Node.js package manager (npm) to install the AWS Amplify CLI. npm install -g @aws-amplify/cli .
  2. For any futher issues or queries please reach us at seproject46@gmail.com

Team Members

πŸ“§ Support

In case of any extended support or quieries please reach us at seproject46@gmail.com Let Slash be your shopping sidekick and embark on a savings adventure like never before!

About

SlashV2

Resources

License

Code of conduct

Contributing

Stars

Watchers

Forks

Packages

 
 
 

Contributors

Languages

  • JavaScript 37.9%
  • Python 23.8%
  • HTML 23.3%
  • Java 11.4%
  • CSS 2.3%
  • Dockerfile 1.3%