{"id":15604274,"url":"https://github.com/jacobgrisham/finance-full-stack-web-app-using-flask-and-sql","last_synced_at":"2025-06-30T07:37:10.710Z","repository":{"id":49576058,"uuid":"312502829","full_name":"JacobGrisham/Finance-Full-Stack-Web-App-using-Flask-and-SQL","owner":"JacobGrisham","description":"Monolithic model-view-controller full-stack web application built with Python, Flask, SQL Alchemy, MySQL, Jinja, and Bootstrap. Application Server hosted on AWS EC2 with Ubuntu, Gunicorn, and Nginx. MySQL Database on AWS RDS. Redis hosted on AWS Elasticache. CI/CD with Jenkins and AWS CodeDeploy","archived":false,"fork":false,"pushed_at":"2023-02-16T04:11:53.000Z","size":4647,"stargazers_count":16,"open_issues_count":27,"forks_count":27,"subscribers_count":2,"default_branch":"master","last_synced_at":"2025-04-25T17:31:19.282Z","etag":null,"topics":["aws-cloudfront","aws-elasticache","aws-rds","bootstrap-4","bootstrap4","flask","full-stack-web-development","jenkins","jinja-template","model-view-controller","monolith-architecture","mysql","python","python3","redis","sql","sql-alchemy","stocks","travis-ci"],"latest_commit_sha":null,"homepage":"http://wallstreettrader.app","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/JacobGrisham.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2020-11-13T07:26:13.000Z","updated_at":"2025-01-04T18:35:45.000Z","dependencies_parsed_at":"2023-02-18T13:01:04.579Z","dependency_job_id":null,"html_url":"https://github.com/JacobGrisham/Finance-Full-Stack-Web-App-using-Flask-and-SQL","commit_stats":null,"previous_names":[],"tags_count":1,"template":false,"template_full_name":null,"purl":"pkg:github/JacobGrisham/Finance-Full-Stack-Web-App-using-Flask-and-SQL","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/JacobGrisham%2FFinance-Full-Stack-Web-App-using-Flask-and-SQL","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/JacobGrisham%2FFinance-Full-Stack-Web-App-using-Flask-and-SQL/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/JacobGrisham%2FFinance-Full-Stack-Web-App-using-Flask-and-SQL/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/JacobGrisham%2FFinance-Full-Stack-Web-App-using-Flask-and-SQL/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/JacobGrisham","download_url":"https://codeload.github.com/JacobGrisham/Finance-Full-Stack-Web-App-using-Flask-and-SQL/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/JacobGrisham%2FFinance-Full-Stack-Web-App-using-Flask-and-SQL/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":262731964,"owners_count":23355457,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["aws-cloudfront","aws-elasticache","aws-rds","bootstrap-4","bootstrap4","flask","full-stack-web-development","jenkins","jinja-template","model-view-controller","monolith-architecture","mysql","python","python3","redis","sql","sql-alchemy","stocks","travis-ci"],"created_at":"2024-10-03T03:40:39.442Z","updated_at":"2025-06-30T07:37:10.643Z","avatar_url":"https://github.com/JacobGrisham.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"\u003cdiv align=\"center\"\u003e\n  \u003cimg width=\"200\" src=\"static/favicon/android-chrome-512x512.png\" alt=\"Wall Street Trader logo\"\u003e\n\n# [Finance: Full Stack Web App using Flask and SQL](http://wallstreettrader.app/)\n[![Website shields.io](https://img.shields.io/website-up-down-green-red/http/shields.io.svg)](http://flask-env.eba-z6mwdiua.us-west-2.elasticbeanstalk.com/)\n![Security Headers](https://img.shields.io/security-headers?url=http%3A%2F%2Fflask-env.eba-z6mwdiua.us-west-2.elasticbeanstalk.com%2F)\n[![Build Status](https://travis-ci.org/JacobGrisham/Finance-Full-Stack-Web-App-using-Flask-and-SQL.svg?branch=master)](https://travis-ci.org/JacobGrisham/Finance-Full-Stack-Web-App-using-Flask-and-SQL)\n[![Codacy Badge](https://app.codacy.com/project/badge/Grade/323b83dec4c44b78bde6a4b2aa3477ec)](https://www.codacy.com/gh/JacobGrisham/Finance-Full-Stack-Web-App-using-Flask-and-SQL/dashboard?utm_source=github.com\u0026amp;utm_medium=referral\u0026amp;utm_content=JacobGrisham/Finance-Full-Stack-Web-App-using-Flask-and-SQL\u0026amp;utm_campaign=Badge_Grade)\n[![Updates](https://pyup.io/repos/github/JacobGrisham/Finance-Full-Stack-Web-App-using-Flask-and-SQL/shield.svg)](https://pyup.io/repos/github/JacobGrisham/Finance-Full-Stack-Web-App-using-Flask-and-SQL/)\n[![Python 3](https://pyup.io/repos/github/JacobGrisham/Finance-Full-Stack-Web-App-using-Flask-and-SQL/python-3-shield.svg)](https://pyup.io/repos/github/JacobGrisham/Finance-Full-Stack-Web-App-using-Flask-and-SQL/)\n\u003c/div\u003e\n\n## Homework from [Harvard's Introduction to Computer Science CS50 hosted on eDX](https://www.edx.org/course/cs50s-introduction-to-computer-science) 🎓 [Web Track](https://cs50.harvard.edu/x/2020/tracks/web/) - [Finance](https://cs50.harvard.edu/x/2020/tracks/web/finance/)\n\n\n## 🚀 Getting Started\n### To run this project on your system:\n-   Ensure that `python3` and `python3-pip` are installed on your system\n-   In your terminal, navigate to the root project directory and run the following commands\n-   Activate the virtual environment\n```\n$ pipenv shell\n```\n-   Install the dependencies\n```\n$ pipenv install -r requirements.txt\n```\n-   You'll need to register for an API key in order to be able to query IEX’s data\n\t-   [Register](iexcloud.io/cloud-login#/register/) for an account\n\t-   Enter your email address and a password, and click “Create account”\n\t-   On the next page, scroll down to choose the Start (free) plan\n\t-   Once you’ve confirmed your account via a confirmation email, sign in to iexcloud.io\n\t-   Click API Tokens\n\t-   Copy the key that appears under the Token column (it should begin with pk_) into the `\u003cvalue\u003e` in the next step\n-   Create a .env file and paste the following into it: `API_KEY=\u003cvalue\u003e`\n-   To start the web server, execute (without debugging):\n```\n$ python application.py \n```\n-   Alternatively, execute (with debugging):\n```\n$ export FLASK_APP=application.py\n$ flask run\n```\n-   Lastly, create a SQL database named `finances.db`\n-   To initialize the SQL database within application.py, add `db.create_all()` below `Initialize Schemas`. Once the code runs and the you've verified the database exists, remove `db.create_all()`\n-   To initialize the SQL database in the python shell, execute:\n```\n$ python\n$ from application import db\n$ db.create_all()\n```\n-   To initialize the database with SQL command-line arguemnts (using MySQL syntax) run each `CREATE TABLE` command (one at a time):\n```\nCREATE TABLE users (\n\tid INTEGER PRIMARY KEY AUTO_INCREMENT,\n\tusername VARCHAR(50) UNIQUE, \n\thash VARCHAR(200) NOT NULL, \n\tcash INTEGER\n);\nCREATE TABLE portfolio (\n\tid INTEGER PRIMARY KEY AUTO_INCREMENT,\n\tuser_id INTEGER, \n\tsymbol VARCHAR(5), \n\tcurrent_shares INTEGER\n);\nCREATE TABLE bought (\n\tid INTEGER PRIMARY KEY AUTO_INCREMENT,\n\tbuyer_id INTEGER, \n\ttime VARCHAR(100), \n\tsymbol VARCHAR(5), \n\tshares_bought INTEGER, \n\tprice_bought FLOAT\n);\nCREATE TABLE sold (\n\tid INTEGER PRIMARY KEY AUTO_INCREMENT,\n\tseller_id INTEGER, \n\ttime VARCHAR(100), \n\tsymbol VARCHAR(5), \n\tshares_sold INTEGER, \n\tprice_sold FLOAT\n);\n```\n\n## 📣 Attribution\n-   Stock prices pulled from [IEX Stock Quote API](https://iexcloud.io/docs/api/#quote)\n-   Hat icon made by [Alice Noir](https://thenounproject.com/AliceNoir/) from [the Noun Project](https://thenounproject.com/icon/pirate-hat-4121754/)\n-   Feather icon made by [Jacopo Mencacci](https://thenounproject.com/jacopoPaper/) from [the Noun Project](https://thenounproject.com/icon/feather-10683/)\n-   Illustrations by [Freepik Storyset](https://storyset.com/people/rafiki)\n\n## 🔒 License\nCopyright Notice and Statement: currently not offering any license. Permission only to view and download. Refer to [choose a license](https://choosealicense.com/no-permission/) for more info.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fjacobgrisham%2Ffinance-full-stack-web-app-using-flask-and-sql","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fjacobgrisham%2Ffinance-full-stack-web-app-using-flask-and-sql","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fjacobgrisham%2Ffinance-full-stack-web-app-using-flask-and-sql/lists"}