Shopify 2022 Summer Internship Technical Challenge
TASK: Build an inventory tracking web application for a logistics company. We are looking for a web application that meets the requirements listed below, along with one additional feature, with the options also listed below.
- Basic CRUD functionality:
- Create inventory items: either via the
Add productbutton, or byImport from CSV - Edit product name and quantity
- Delete products: via
Delete selectedbutton - View products on a web page
- Create inventory items: either via the
- Additional feature:
- One-button CSV export of product data: via
Export all as CSV
- One-button CSV export of product data: via
Developed using Python, SQLite database, Flask, HTML, CSS, JavaScript, and displays a web-based user interface.
Please use Python version 3.9. Download and install Python3.9 from the official website: https://www.python.org/downloads/
Ensure you are able to access python from the command-line, verify by executing:
python3.9 --versionShould return the correct Python version number.
The following Python packages are used for this project:
Flask==2.0.2
Jinja2==3.0.3
mypy==0.931
mypy-extensions==0.4.3
types-Flask==1.1.6
types-Jinja2==2.11.9
types-Werkzeug==1.0.9
typing_extensions==4.0.1
Werkzeug==2.0.2
They are also found in requirements.txt.
python3.9 -m venv shopify_env_2022Enter the newly created Python virtual environment folder:
cd shopify_env_2022Clone the project repository from GitHub:
git clone https://github.com/sammdu/Shopify-Challenge-2022.gitEnter the project repository folder:
cd Shopify-Challenge-2022Activate the Python virtual environment in your terminal:
source ../bin/activateAfter the previous step, you should see the following prompt prepended to your command prompt:
(shopify_env_2022), which should be consistent with the Python virtual environment folder name.
Install required Python packages with pip:
pip install -r requirements.txtWithin an activated virtual environment in the project repository, simply execute the following command to start a Flask development server:
python3.9 ./main.pyThis will start a server at http://127.0.0.1:5000/. Visit this address in your browser to see the project in action!
In the project repository root, where the mypy.ini file is located, simply execute the following command to test for type violations:
mypy