Skip to content

This project basically aims to provide a visual representation and comparative analysis of close price data related to different company ticker. It involves an interactive dashboard for users to display analysis and prediction of stocks data by using LSTM + XG-Boost model

Notifications You must be signed in to change notification settings

debasishray16/StockPredictor

Repository files navigation

About

About this project titled "Stock Ticker Analysis and Prediction System using Stacked LSTM" or Ticker-Prediction System. It works on LSTM architecture which is an advanced version of RNN (Type of Neural Navigated Network).

  • In this project, we have incorporated different data-preprocessing techniques for continuous dataset value.
  • Also, in this project, we have incorporated XG-Boost as ensemble method to increase accuracy of following LSTM model.

NOTE: All test and research work are done and are pushed in different repository related to this project trained on different epoch cycles and parameters, which are usable with project.

--> Link to Model Training Repository

Description

  • Our project works on concepts of deep learning to predict values based on time-series model. It includes use of LSTM (Long Short Term Memory) with XG-Boost to enhance the performance of prediction. Also, it takes tickers as input and gives prediction results.

  • This repository invloves deployment of model with two-interfaces. One with Streamlit-App [Link] and React App

  • For versioning of project deployement,We have created docker images for respective project to track and observe major changes made in the application. Each of these images are tagged with different versions which can be easily pulled into your system.

Installation

1. Running locally after cloning

To run this project as website on your local system.Follow the steps -

  • Navigate to Ticker Predictor Website folder.
cd "Ticker Predictor Website"
  • Now, navigate to Front-end folder.
cd "Front-end"
  • Run command in if project is cloned for first time. This will install necessary node_modules folder in current folder.
npm install
  • Now to start the development server in React. Run the command:
npm run start
  • Simultaneously, Run command in another terminal to start backend server created on python.
  • Navigate to Backend folder and run bash command.
python waitress_server.py

terminal_Screenshot

Note: This will start the server and will connect with React website directly, running on https://localhost/3000.

It should look like this after starting the server.

website_Preview

2. Running project using Docker

  1. To run website located in Ticker Predictor Website. Follow these steps:
  • Open docker desktop and start the docker engine.
  • Open one terminal for backend and open another terminal for frontend image to run and execute container.
# Terminal 1
# this will pull and run latest deployed frontend container.
docker run -p 3000:3000 debasishray/predictor-frontend:latest
# Terminal 2
# this will pull and run latest deployed backend container
docker run -p 5000:5000 debasishray/predictor-backend:latest
  • Now, navigate to any web-browser and type:
https://localhost/3000
  1. To run streamlit-webapp located in Ticker Streamlit App deployed on Docker. Follow these steps:
  • Open docker desktop and start the docker engine.
  • Open terminal and then, type the command:
# this will run latest deployed streamlit-app container
docker run -p 8501:8501 debasishray/streamlit-app:latest
  • Then, click on link provided on docker terminal.

Steps to deploy on Github Packages

  1. Create a replica of Docker image with different tag.
  2. Check the image created.
  3. Authenticate by using PAT (Personal Access Token).
  4. Push that image in GitHub Packages.
docker tag debasishray/streamlit-app:v1.0 webapp

docker tag webapp ghcr.io/debasishray16/stockpredictor/webapp:latest
docker image ls

# For authentication
echo "pat-value" | docker login ghcr.io -u debasishray16 --password-stdin

# ghcr.io/<username>/<repository>
docker push ghcr.io/debasishray16/stockpredictor/webapp:latest

Contributors