shahrk / ItemStockTracker

MIT License
2 stars 2 forks source link

Video Link:- Youtube: https://youtu.be/en0VFORVZsw https://drive.google.com/drive/folders/1ehC7rZj32X0GlrYXrAqSm4Y_G1O1129m?usp=sharing

Item Stock Tracker

image

Build Status Codestyle: Black codecov

GitHub DOI

GitHub GitHub lines of code GitHub closed issues GitHub open issues GitHub closed pull requests

Known Vulnerabilities

GitHub all downloads

"Item Stock Tracker" is a program designed to alert users when specific items from an online retailer are back in stock.

https://user-images.githubusercontent.com/34405372/135356983-439e7808-8268-41aa-ad82-38615d4a773e.mp4

Prerequisites

Make sure you have installed and followed all the following prerequisites on your development machine:

Documentation

Item Stock Tracker’s documentation

Installation

  1. Download the latest release from the repository based on your operating system.

  2. Extract the zip file downloaded.

  3. Run ItemStockTracker.exe from the extracted folder to launch the application.

Build executable

To build the executable, you need to have pyinstaller installed which can be done using pip install pyinstaller. Navigate to ItemStockTracker folder and run the below commands based on the operating system you are running.

For Windows

pyinstaller --distpath ./build/dist --workpath ./build/build --noconfirm ./ItemStockTracker.spec

For Mac

pyinstaller --distpath ./build/dist --workpath ./build/build --noconfirm ./ItemStockTrackerMac.spec

The executable will be found in the folder
ItemStockTracker/build/dist/ItemStockTracker/ItemStockTracker.exe for windows
ItemStockTracker/build/dist/ItemStockTrackerMac/ItemStockTrackerMac for MacOS

To run the app on MacOS execute the following commands from the project's base directory:
cd ItemStockTracker/build/dist/ItemStockTrackerMac
./ItemStockTrackerMac


Usage

image

By default, the GUI will already contain some data, which is loaded from data/tracker.txt. To add your own items, click the plus button in the upper right. You will be prompted to enter a name for the item you are tracking, along with a URL for a specific product page. Currently, amazon.com, bestbuy.com and walmart.com product pages are supported.

7

You can also edit, add, or delete items by right-clicking on a selected item,

8

When an item is restocked, a popup will appear. Aditionally, a system notification will also be generated

image 5

In the "Settings" tab you have the following functionalities:

2

Lastly, all the info about our application can be found out in newly added INFO tab. 3


Improvements over previous versions Project2:

  1. Extended functionality of the application by supporting new websites that can be tracked like walmart.
  2. Since cost is also a major factor for making the purchase decision we added a column to show the current price of the item without constantly checking the websites saving lot of time when comparing between different websites.
  3. Enhanced deployment by creating an executable file that can be installed on both Windows and MacOS
  4. In the prior implementation the availability notification was a pop-up which might be missed if the application is minimized. We have integrated the notifications to the system for both Windows and MacOS
  5. Implemented auto launch during system startup, limited to Windows OS.
  6. We have added a functionality to minimize the application to system tray.
  7. Added Black and github actions to automatically check for formatting errors and run test cases for each commit.
  8. Multithreaded scrapers to run parallely using thread pools to fetch stock availability and prices.
  9. Improved documentation in code, also providing clear instructions on setup and getting started.

Improvements over previous versions Project3:

Please find the detailed report on Enhancement work done by our team here : https://github.com/shahrk/ItemStockTracker/blob/main/docs/Proj3Enhancement.pdf

  1. Price Drop Alert : If a user wants to purchase certain products but wants to wait until the price is lowered, they can make use of our brand new “Price Drop Alert” feature.
  2. Item Restock Alert: For out of stock items, users no longer have to check the webpages again and again. Our new feature will give users an item stock alert which will save their time. 3.Show Discounted Price : Earlier the scraper was fetching the real price of the product rather than the discounted price. Now if the e-commerce website adds new discounted prices, it will be shown on our dashboard. Earlier it was throwing a null value error.
  3. Amazon Scraper: We added a new scrapper for Amazon. Earlier we had scrapers for BestBuy and Walmart. The new Scrapper will help the users to track items from Amazon webpage.
  4. UI Enhancement: We created a new Web based app for our project. The desktop version was tedious to install and maintain. It is much better for users to have a web-based version. We created a simple UI where users can log in and add items to track. They will be notified via email if/when the stock/price of the products they add changes.
  5. Bug Fix 1(App not working when notification is triggered): When we downloaded the project initially, we found that there was a major error in the functioning of the triggers. The GUI stops refreshing whenever the notification is triggered. The error message was shown in the console whenever notifications are pushed via trigger.
  6. Bug Fix 2(The support for MAC OS): The app was not deployable on mac os. There were several complications arising due to the Application initially developed using Windows. We also added the automatic homebrew installation script in the fix. The fix is been provided in this commit:
  7. Bug Fix 3(Fixed SendEmail.py): Earlier, the code was using hardcoded email id/password to send price alerts. This now is fixed and now it sends the alerts using environmental IDs.
  8. Added new tools: We added new code coverage, line counter, code style checker and code formatter tools. We used pylint for performing code style checks. We used Black Formatter for checking code format.

Future Goals


Questions?

If you encountered any questions and seeking for helps, please reach out to us at
SEGroup27.2021@gmail.com
Alternatively, you can contact any of the team members listed below.


Team Members


Raj Shah

Nirav Patel


Parth Kanakiya


Mithil Dave


Bhargav Jethwa