Note: project still in progress
XOXStocks is a self-contained Stock and ETF screener web application based on Flask. I developed it as a final project for the CS50's Introduction to Computer Science course.
educational purposes
no guarantee about the accuracy of the data provided by the app
it shouldn't be used to make investment decisions
TODO
TODO
Set FLASK_DEBUG=0 in .flaskenv
Environment variables in .env or elsewhere
TODO
-
web app based on Flask
-
use of WTForms and FlaskWTForms allows to streamline the form validation and to implement CSRF key encription on form data
-
use of SQLAlchemy: ORM approach, replacing sqlite with MySQL or PostgreSQL
-
use of database migrations
-
AJAX
-
styled using Bootstrap
-
tests - unittest
TODO
.
├── README.md
├── app
│ ├── __init__.py
│ ├── api.py
│ ├── auth.py
│ ├── fill_data.py
│ ├── forms.py
│ ├── models.py
│ ├── routes.py
│ ├── static
│ │ └── style.css
│ └── templates
│ ├── _formhelpers.html
│ ├── auth
│ │ ├── login.html
│ │ └── register.html
│ ├── index.html
│ ├── layout.html
│ └── watchlist.html
├── config.py
├── instance
│ ├── data
│ │ └── symbols.csv
│ └── database.db
├── migrations
│ ├── README
│ ├── alembic.ini
│ ├── env.py
│ ├── script.py.mako
│ └── versions
│ └── 4f52b126910e_users_table.py
├── pyproject.toml
├── tests
├── tests.py
└── xoxstocks.py
- Email confirmation upon registration
- Email token to reset password
- race conditions to help use with several concurrent users
- price data storage
- retrieving data from different sources
- multiple language support using Babel
[1]The tutorial in the Flask official documentation.
[3]Flask mega tutorial by Miguel Grinberg
[4]Digital Ocean blog: How to use Flask-SQLAlchemy to interact with databases in a Flask application
[5]Digital Ocean blog: how to query tables and paginate data in Flask-SQLAlchemy