Video Link:-
Youtube: https://youtu.be/en0VFORVZsw
https://drive.google.com/drive/folders/1ehC7rZj32X0GlrYXrAqSm4Y_G1O1129m?usp=sharing
Item Stock Tracker
"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
-
Download the latest release from the repository based on your operating system.
-
Extract the zip file downloaded.
-
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
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.
You can also edit, add, or delete items by right-clicking on a selected item,
When an item is restocked, a popup will appear. Aditionally, a system notification will also be generated
In the "Settings" tab you have the following functionalities:
Lastly, all the info about our application can be found out in newly added INFO tab.
Improvements over previous versions Project2:
- Extended functionality of the application by supporting new websites that can be tracked like walmart.
- 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.
- Enhanced deployment by creating an executable file that can be installed on both Windows and MacOS
- 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
- Implemented auto launch during system startup, limited to Windows OS.
- We have added a functionality to minimize the application to system tray.
- Added Black and github actions to automatically check for formatting errors and run test cases for each commit.
- Multithreaded scrapers to run parallely using thread pools to fetch stock availability and prices.
- 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
- 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.
- 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.
- 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.
- 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.
- 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.
- 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:
- 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.
- 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
- We can show comparison between the prices of a product on different retailer's websites. Users will be shown the prices of the same product on the various paltforms. The User can then select the best website to purchase that item.
- We can include more supported retailers in this app. For example, Nike.com, GAP.com, eabay.com etc.
- Item dashboard: The item dashboard will show the basic information of the products including the size/color etc. User can choose to track specific product based on size and color.
- Add Machine Learning: We can analyze and predict the prices in future using machine learning so that user can choose to wait until they get their expected prices.
- Cashback Coupons: We can show various cashback coupons available on retailer's website on our dashboard. This will give users a complete insight of the total cost of the selected item.
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