"Item Stock Tracker" is a program designed to alert users when specific items from an online retailer are back in stock.
ItemStockTracker.mp4
Make sure you have installed and followed all the following prerequisites on your development machine:
- Python-- Download & Install Python 3.9
- Email-- Set environment variables for your email address(GMAIL_ID) and password(GMAIL_PASSWORD - you will have to use an app password)
- pillow-- Download & Install Pillow for python with version>=8.3.0
- requests-- Download & Install Requests for python with version~=2.26.0
- beautifulsoup4-- Download & Install Beautifulsoup4 for python with version~=4.10.0
- lxml-- Download & Install lxml for Python with version~=4.6.3
- setuptools-- Download & Install setuptools for Python with version~=57.0.0
- sphinx-- Download & Install setuptools for Python with sphinx
- sphinx-rtd-theme-- Download & Install setuptools for Python with sphinx-rtd-theme
Item Stock Tracker’s documentation
-
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.
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
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:
- Adjust the refresh interval - How often you want to poll the website to check the status of your items
- Configure your email alert settings - Want an email alert ? Just tick the checkbox and enter your email address
- Minimize to system tray - Don't want to see the window in the taskbar ? Just minimize it to system tray. You will see a plus sign:
- Launch tracker at startup - If you want to start checking the stock status of your items automatically on system startup
Lastly, all the info about our application can be found out in newly added INFO tab.
- 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.
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.
- 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.
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.
Raj Shah |
Nirav Patel |
Parth Kanakiya |
Mithil Dave |
Bhargav Jethwa |