Skip to content

Stock portfolio management system built with Django by Parth Desai, Nirav Madhani and Parth Panchal

License

Notifications You must be signed in to change notification settings

pycoder2000/Stock-Management

Repository files navigation

Logo

Stock Management App

It is a web application for managing your investment portfolio. Users can get real-time stock data and market news via Yahoo Finance, IEX Cloud, and Quandl APIs. They can also compare the performance of the stocks with charts and predict the future behaviour for the same. Users are given the ability to create a customizable stock portfolio and watchlist to track both current and prospective holdings.

You can easily search tickers through the integrated API platform provided by iexcloud.io as well as easily add, edit or delete tickers based on your preferences.

Home Page

⚙️ Tech Stack

HTML5 Django DjangoREST Python SQLite Bootstrap CSS3 GraphQL

🛠 Installation & Set Up

  1. Clone the project repository
git clone https://github.com/pycoder2000/Stock-Management-App.git
  1. Move to the project root folder.
cd djangochat
  1. Create and activate a virtual environment.

(for mac)

virtualenv env
source env/bin/activate

To deactivate the environment

deactivate
  1. Install requirements
pip3 install -r requirements.txt
  1. Initialize database
python3 manage.py migrate
  1. Create admin user
python3 manage.py createsuperuser
  1. Run development server
python3 manage.py runserver

👷 Original Contributors

Parth Desai Parth Panchal Nirav Madhani

🚨 Forking this repo

If you fork this website, please attribute it to the original author.

🚀 Features and Pages


Add Stock

Description : The add stock page enables the user to add a stock ticker of his/her choice to their account portfolio. It utilizes a database function to store the ticker symbols when requested as a way of developing a personal portfolio. It is a page designed to show the tickers in the user’s portfolio and allows them to delete them individually as the investment strategy changes over time.


Add Stocks


Delete Stock

Description : The delete stock function is used to remove any stock from the user’s portfolio in case he/she is no longer interested in trading that particular stock. It also includes the functionality which helps return the rendered webpage which enables the user to delete the stock.


Delete Stocks


List Stock

Description : The list section shows the different stocks that the user has added to his portfolio. It gives a tabular representation of all the important details related to each stock, like the symbol, company name, its price, previous close, market cap, return YTD, PE Ratio, 52Wk High, and 52 week low. In addition to this, it also allows the user to search for stocks he/she has added, and filter the view accordingly.


List Stocks


View Graph

Description : The viewgraph functionality is a very useful tool for the user. It enables the user to view and analyze trends for any stock right here in the app, without the need to go to another site for the same. It is a very extensive tool and we have enabled this with the help of a plotly graph called stock-graphic, which is a stock visualization graph. It allows the user to view trends of multiple stocks at the same time, within any given date range.


View Graph


Predict Stock

Description : The predict stock page is a tool that serves as a means for the user to predict the future prices of the required stocks. It uses a simple linear regression algorithm that makes predictions based on the previous prices of the said stock. The tool takes the ticker of the stock and the number of days to predict for as the input, and then gives out the predicted values and the accuracy of those values, as the output.


Predict Stock


Search Stock

Description : The search stock page gives the user the ability to search for any stock.


Search Stock


Profile Page

Description : The profile section shows the different stocks that the user has added to his portfolio. It gives a tabular representation of all the important details related to each stock, like the symbol, company name, its price, previous close, market cap, return YTD, PE Ratio, 52Wk High, and 52 week low. It also gives the user the easy option of a quick-delete button, where he/she can remove a stock from the profile page itself, if required.


Profile Page


📘 Django concepts utilized

  • Created different Django views
  • URL Mapping
  • Implemented different templates
  • Utilized built-in and custom tags and filters
  • Using templates in views
  • Template Inheritance
  • Assets handing
  • Crispy Forms
  • Form rendering process
  • Used build-in and custom widgets
  • Installation and Configuration of Database
  • Defining personal model
  • Database CRUD operations
  • Rendering model in Admin interface
  • Fields validation
  • Customizing Authentication
  • Admin Interface and its control
  • User and group creation
  • Permission Handling
  • Utilized Django Rest Framework
  • Created graphs in Django with the help of Plotly Dash

🎖️ Challenges

  1. Researching about different investment strategies and gaining the required financial knowledge to carry out the project.
  2. Exploring the free APIs that can provide historical and real time stock data.
  3. Preparing the chart data to give to Django Plotly Dash.

About

Stock portfolio management system built with Django by Parth Desai, Nirav Madhani and Parth Panchal

Topics

Resources

License

Stars

Watchers

Forks