- This is my 1st big project to develop a full stack app by myself.
- It will be an online trading platform mainly for equities.
- Charts visualization and creation of personal portfolios will be the first end goal.
- Implement machine learning to analyze stocks will be my 2nd end goal, this will be done in the near future when I have the time.
- This app uses 2 heroku servers, 1 for the frontend, and another for the backend.
- Feel free to try out the demo
- Creating an account will be required to test the trading feature and modify account settings.
- Disclaimer, accounts will be deleted without prior notice as this project is still in the development stage.
- Get your own Django secret key
- Create your own Django app => copy the secret key => paste into this project's secret key location at settings.py or in your environment.
# Use python 3 to generate your own Django secret key import secrets print(secrets.token_hex(24))
- Create your own Django app => copy the secret key => paste into this project's secret key location at settings.py or in your environment.
Create your own mysql databaseChange the username, password, and database name at settings.py
- API key is required if you want to use data from IEX cloud.
- Create free account with IEX at https://iexcloud.io/.
- Real data is free data but limited. However, simulated data is completely free.
- If using simulated data, paste the following with the api key in the environment
export REACT_APP_iexToken="api_key"
- If using simulated data, paste the following with the api key in the environment
- API key is required to get real news feed from news api
- Create account for free at https://newsapi.org/
export REACT_APP_newsAPI="api_key"
- Create account for free at https://newsapi.org/
- Add local server address to environment or manually edit in the utility.js file
export REACT_APP_DB="http://127.0.0.1:8000"
- Company profile data is taken from https://financialmodelingprep.com
- no additional settings required
- Use pipenv to install all python dependencies for the backend.
- Use npm to install all frontend related dependencies.
Run MySql serverPostgres is used in the production side- Run backend server
- python manage.py runserver
- Run Frontend server
- npm start
- Django
- React
- D3
MySqlchanged to sqlite for development, and Postgres for production- Django Rest Framework
- Redux
- Material-UI
Build a restful api with DjangoStart a simple template with ReactUse MySql as databaseIntegrate MySql with DjangoIntegrate React with DjangoMade a basic user authentication featureStyle with Material-UIIntegrate d3 with ReactWrite my own iex api to get financial data from IEXIntegrate iex api with d3Write my own iex cloud api to get financial market and stocks data from IEX cloudIntegrate iex cloud api with d3Slightly improved d3 chartsReorganize Navbar into separate componentsImplement Search Bar and enable multi search featureImplement Async Select and Search in large databaseLink Nav search bar with chart displayAdd range select for chartImplement Candle Stick chartFix X ticksImplement Menu barAdd news to DashboardAdd Company Profile to DashboardAdd Advanced Stats to DashboardAdd Key Stats, Balance Sheet, Cash Flow, Income Statement to DashboardAdd other features and links into Menu (news, etc.)Reorganize Dashboard and split into different pagesAdd Loading featureAdd portfolio frontend and backend featureAdd buy and sell stock featureImprove trade UIAdd real time price update for trade UIAdd real time price and change update for Dashboard UIAdd Profile featureAdd privacy for portfolio and profileAdd token expiry feature (auto logout or extend) in backend and frontendAdd auto fund update for trade UIAdd transaction history at backendAdd manual fund input featureImprove profile featureAdd username update featureAdd email update featureAdd password update featureAdd error handling for user profile update featureRefactor code for reuse and reduce code redundancyImplement real news feedImplement real company profile detailsImplement chart select featureImprove d3 visualizationExpand the type of graphs and visualizations with d3Add loading UIAdd last 4 annually and quarterly financial reportsFix number and word formats in financial reportsAdd password reset featureAdd TooltipAdd IconsAdd Real time chart support- Add multi symbol support on a single chart
- Improve auto logout alert UI
- Improve overall styling