Homework from Harvard's Introduction to Computer Science CS50 hosted on eDX 🎓 Web Track - Finance
- Ensure that
python3
andpython3-pip
are installed on your system - In your terminal, navigate to the root project directory and run the following commands
- Activate the virtual environment
$ pipenv shell
- Install the dependencies
$ pipenv install -r requirements.txt
- You'll need to register for an API key in order to be able to query IEX’s data
- Register for an account
- Enter your email address and a password, and click “Create account”
- On the next page, scroll down to choose the Start (free) plan
- Once you’ve confirmed your account via a confirmation email, sign in to iexcloud.io
- Click API Tokens
- Copy the key that appears under the Token column (it should begin with pk_) into the
<value>
in the next step
- Create a .env file and paste the following into it:
API_KEY=<value>
- To start the web server, execute (without debugging):
$ python application.py
- Alternatively, execute (with debugging):
$ export FLASK_APP=application.py
$ flask run
- Lastly, create a SQL database named
finances.db
- To initialize the SQL database within application.py, add
db.create_all()
belowInitialize Schemas
. Once the code runs and the you've verified the database exists, removedb.create_all()
- To initialize the SQL database in the python shell, execute:
$ python
$ from application import db
$ db.create_all()
- To initialize the database with SQL command-line arguemnts (using MySQL syntax) run each
CREATE TABLE
command (one at a time):
CREATE TABLE users (
id INTEGER PRIMARY KEY AUTO_INCREMENT,
username VARCHAR(50) UNIQUE,
hash VARCHAR(200) NOT NULL,
cash INTEGER
);
CREATE TABLE portfolio (
id INTEGER PRIMARY KEY AUTO_INCREMENT,
user_id INTEGER,
symbol VARCHAR(5),
current_shares INTEGER
);
CREATE TABLE bought (
id INTEGER PRIMARY KEY AUTO_INCREMENT,
buyer_id INTEGER,
time VARCHAR(100),
symbol VARCHAR(5),
shares_bought INTEGER,
price_bought FLOAT
);
CREATE TABLE sold (
id INTEGER PRIMARY KEY AUTO_INCREMENT,
seller_id INTEGER,
time VARCHAR(100),
symbol VARCHAR(5),
shares_sold INTEGER,
price_sold FLOAT
);
- Stock prices pulled from IEX Stock Quote API
- Hat icon made by Alice Noir from the Noun Project
- Feather icon made by Jacopo Mencacci from the Noun Project
- Illustrations by Freepik Storyset
Copyright Notice and Statement: currently not offering any license. Permission only to view and download. Refer to choose a license for more info.