Pricing Service is a Python Flask web application that allows you track items of online stores and be notified by email if the item has dropped below a user set minimum price.
This web application was done as a capstone project for the Udemy course, Complete Python Web Course: Build 8 Python Web Apps.
- Scrapes e-commerce websites, including:
- John Lewis
- Ikea
- Nike
- EB Games
- User can create/edit their profile.
- User may view available stores that they wish to track the items of.
- User may track a desired item from an available store by creating an Alert.
- Alerts have a minimum price for their corresponding item.
- If an alert's item drops below its minimum price, the user is notified by email.
- Alert on user's alert list will indicate if an item has dropped below its minimum price with a visible message.
- User may edit Alerts.
- Administrators may add new stores to the stores list.
- Extensive documentation website built with Sphinx.
To install necessary virtual environment, in a terminal enter:
pipenv install
To activate virtual environment needed to run application, in a terminal enter:
pipenv shell
To run application, in a terminal enter:
python app.py
Check out the website on Heroku!
Sidenote: The website also used to be hosted using Nginx + uWSGI + Flask using Digital Ocean, but I have since taken that down.
Documentation Website Built With Sphinx
- Python version 3.8.3
- Flask version 1.1.2
- Python web development framework.
- Jinja2 version 2.11.2
- Templating language for Python, modelled after Django's templates.
- Werkzeug version 1.0.1
- A WSGI web application library.
- uWSGI version 2.0.19.1
- The application server.
- BeautifulSoup4 version 4.9.1
- Allows a web page to be scraped (parses its HTML or XML)
- requests version 2.24.0
- Allows sending HTTP requests
- Pymongo version 3.11.0
- Python module for working with MongoDB.
- MongoDB
- General purpose, document-based database (NoSQL).
- Mailgun API
- An API I first used for sending emails.
- Gmail SMTP
- I transitioned to using a custom email class that uses SMTP TLS to send email with Gmail.
- Sphinx version 3.2.1
- Python documentation website generator.
- logging
- Allows for logging information.
- time
- For timing code execution time.