Giter Site home page Giter Site logo

reshinto / online_trading_platform Goto Github PK

View Code? Open in Web Editor NEW
85.0 5.0 40.0 5.8 MB

A full stack online stock trading platform, built with React and Django

Home Page: https://onlinetradingplatform.herokuapp.com

Python 12.03% HTML 2.14% CSS 0.22% JavaScript 85.60%
iex-api django frontend material-ui backend react chart d3 django-rest-framework full-stack

online_trading_platform's Introduction

Online Trading Platform

Purpose

  • 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.

Demo

  • This app uses 2 heroku servers, 1 for the frontend, and another for the backend.
    • Therefore, if may take a while to load the page or for the user registration / sign in. Demo
  • Feel free to try out the demo

    https://onlinetradingplatform.herokuapp.com/

  • 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.

How to make this work

  • 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 mysql database
    • Change 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"

  • API key is required to get real news feed from news api
  • 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.

How to run

  1. Run MySql server Postgres is used in the production side
  2. Run backend server
    • python manage.py runserver
  3. Run Frontend server
    • npm start

List of major technologies used

  • Django
  • React
  • D3
  • MySql changed to sqlite for development, and Postgres for production
  • Django Rest Framework
  • Redux
  • Material-UI

List of Things to do

  • Build a restful api with Django
  • Start a simple template with React
  • Use MySql as database
  • Integrate MySql with Django
  • Integrate React with Django
  • Made a basic user authentication feature
  • Style with Material-UI
  • Integrate d3 with React
  • Write my own iex api to get financial data from IEX
  • Integrate iex api with d3
  • Write my own iex cloud api to get financial market and stocks data from IEX cloud
  • Integrate iex cloud api with d3
  • Slightly improved d3 charts
  • Reorganize Navbar into separate components
  • Implement Search Bar and enable multi search feature
  • Implement Async Select and Search in large database
  • Link Nav search bar with chart display
  • Add range select for chart
  • Implement Candle Stick chart
  • Fix X ticks
  • Implement Menu bar
  • Add news to Dashboard
  • Add Company Profile to Dashboard
  • Add Advanced Stats to Dashboard
  • Add Key Stats, Balance Sheet, Cash Flow, Income Statement to Dashboard
  • Add other features and links into Menu (news, etc.)
  • Reorganize Dashboard and split into different pages
  • Add Loading feature
  • Add portfolio frontend and backend feature
  • Add buy and sell stock feature
  • Improve trade UI
  • Add real time price update for trade UI
  • Add real time price and change update for Dashboard UI
  • Add Profile feature
  • Add privacy for portfolio and profile
  • Add token expiry feature (auto logout or extend) in backend and frontend
  • Add auto fund update for trade UI
  • Add transaction history at backend
  • Add manual fund input feature
  • Improve profile feature
  • Add username update feature
  • Add email update feature
  • Add password update feature
  • Add error handling for user profile update feature
  • Refactor code for reuse and reduce code redundancy
  • Implement real news feed
  • Implement real company profile details
  • Implement chart select feature
  • Improve d3 visualization
  • Expand the type of graphs and visualizations with d3
  • Add loading UI
  • Add last 4 annually and quarterly financial reports
  • Fix number and word formats in financial reports
  • Add password reset feature
  • Add Tooltip
  • Add Icons
  • Add Real time chart support
  • Add multi symbol support on a single chart
  • Improve auto logout alert UI
  • Improve overall styling

online_trading_platform's People

Contributors

dependabot[bot] avatar reshinto avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar

online_trading_platform's Issues

Trading notification

Hello, why while we submit a trade no line of notification not appearing on the page?

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.