Giter Site home page Giter Site logo

kenjarna / nvestorgenie Goto Github PK

View Code? Open in Web Editor NEW
0.0 1.0 0.0 1.43 MB

Senior Project, Fall 2018

Home Page: https://kenjarna.github.io/NvestorGenie/

HTML 2.94% CSS 11.69% JavaScript 85.37%
web-development reactjs investment-analysis stock-analysis stock-market

nvestorgenie's Introduction

This project was boostrapped using Create-React-App. This project's stock information was provided by IEX Finance API.

The following is a friendly documentation of the capabilities of the application:

  • Search for stock information given a ticker or name.
  • Analyze a given stock for expected yearly returns (DOES NOT GUARANTEE THE RESULTS CALCULATED WILL HAPPEN)
  • Allow the user to create an account to keep track of past reports and allow them to print these reports.

HOW TO USE THE STOCK ANALYSIS TOOL:

  1. Click the link in the description of this repository to use the up-to-date version of the application.
  2. Start by naming your portfolio and adding some helpful comments to remind you what type of stocks that portfolio is supposed to hold
  3. Switch to the stock adder portion of the application by clicking the list icon in the top left of the portfolio manager (next to the Portfolio list)
  4. Add you stock information by providing a valid stock ticker, number of shares you have (or will purchase) and the expected annual growth rate of the company (can be found on NASDAQ.com or another similar stock reporting site) - IT SHOULD BE NOTED THAT THIS PROGRAM DOES NOT GAURANTEE RETURNS OF ANY AMOUNT
  5. Should you want to change the name/comments on a portfolio, simply click the edit portfolio button found directly next to the add stock button
  6. You can delete portoflios by clicking the trash icon in the portfolio list for a specific portfolio. Similarly, you can delete a stock from the portfolio on the add stock screen for a portfolio by hitting the trash icon.
  7. You can also add a new portfolio with the plus icon directly next to the edit portfolio button
  8. Should you have multiple portfolios, add stocks to each, you can click the "Analyze all Portfolios" button at the bottom of the Portfolio list to analyze all the portfolios in one click rather than analyzing them individually!

If you run into any issues using this application, please email me at [email protected] and I'll try to solve the issue! Enjoy the stock analysis tool! More to come soon!

THIS TOOL DOES NOT GUARANTEE ANY PROFITS/LOSS, NOR IS THIS TOOL INTENDED TO SERVE AS INVESTMENT ADVICE. USE THIS TOOL AT YOUR OWN RISK!!

Dependencies

  • React 16.0.0^
  • axios ^0.18.0
  • React RTE ^0.16.1
  • gh-pages ^2.0.1
  • Install npm or yarn (npm start or yarn run)

nvestorgenie's People

Watchers

Haris Skiadas avatar

nvestorgenie's Issues

Add Portfolio objects to the portfolio list

The portfolio creation piece needs to add portfolio objects to the portfolio list. This list should be editable, should allow for deletion, and should be independent of one another.

The data structure

Was thinking of using Redux with React to avoid having to thread in actions throughout the application, would make state easier to maintain and to reduce confusion on what components should be tracking what state.

Need to determine how React treats objects and how to test the application because creating an object may be better in the long run than simply storing items in state. However, I am unsure as to whether state will create that for me. Does a 'Stock' object need to contain it's own methods separate from what is displayed on the screen, for example?

Determine how to update the investmentAmount in the portfolio

For some reason, when a stock is added to the portfolio, the investmentAmout attribute of the Stock object is null, so the portfolio's total amount is not updated. However, the stats are all filled in on the Stock object. Upon attempting to setup a componentDidUpdate property, it became clear that the async functions (to fetch the data) is messing with how the information is used elsewhere.

Need to investigate the workflow behind the scenes to determine when to update the portfolio's totalInvestment amount.

Determine how to handle API errors (e.g. 404)

When the user enter an incorrect ticker (e.g. AMN) the api returns a 404, but it doesn't seem to have a response code. I need to figure out what payload is delievered so I can catch these errors and notify the users that ticker symbol does not exist.

Create basic analysis of a portfolio

Before I work on making a printable PDF and storing it on firebase/azure/aws, I first need to be sure the report is accurate and calculates the correct numbers. Continuously updating the constructor of the Stock class and adding additonal methods to both the Stock and Portfolio class will be necessary as the project develops and aims to handle more informaiton.

Goals for 10/25/18

  • Create a basic react app (with the overarching components to be used)
  • Decide on an overall design for the web application.
  • Figure out how to interact with the database/library selected.

Create an interactive portfolio creation screen

The PortfolioManager should be able to show/hide portions of the component based on whether the user is editing the current portfolio or simply adding/analyzing stocks. In addition, this component should allow the user to analyze the stocks and report that information correctly.

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.