A web application to track financial portfolio growth. Uses free and open APIs to fetch real-time market data to store in an online database. Produces a graph updated in real-time.
Stretch goals are (1) Introduce a user-authentication mechanism
See our presentation on YouTube
Take a look at our Figma designs here
The work is distributed among two developers in this order:
- Developer-1 - Tab-1 - Data
- Developer-2 - Tab-2 - Graphs
A week before the end (i.e starting Jul 26), the focus would be on performing final integration, deployment and preparation of presentation with Q&A readiness
- There is no UI for a user to enter any data and retrieve at a later date
- There is no UI for a user to determine how his portfolio value has been fluctuating since the purchase of any constituent stocks/ETFs
- There is no automated batch job that retrieves current stock prices to populate a database
- There is no database to store stocks/ETFs a user has in their portfolio and to hold values retrieved by batch jobs
Sprint | Expected | Actual |
---|---|---|
Jul 06 - Jul 11 2020 | - Setup IDE for local development (UI, API) - Setup DB locally for reading/writing data - Setup Git locally for interacting with Github - Start working on UI (tab-1/tab-2) and send PRs |
- Setup IDE for local development (UI, API) - DONE - Setup DB locally for reading/writing data - DONE - Setup Git locally for interacting with Github - DONE - Start working on UI (tab-1/tab-2) and send PRs - Moved to Jul 12 - Jul 18 |
Jul 12 - Jul 18 2020 | - Tab-1: A "data-entry strip" at the top should write data into database in the following format: 1. Ticker 2. Name (auto-populated at a later stage) 3. Security Type 4. Quantity 5. Purchase Price 6. Purchase Date A tabular form listing the above fields is populated with data from database. Should be scrollable - Tab-2: A graph should be available with some sample data populated in a table in database. Start working on batch job to populate data from Finnhub |
- Tab-1: Working on fetching data from/writing to database via Flask - Automated service: Started work on modelling data from Finnhub API calls so it can be saved into database - Tab-2: Not started |
Jul 19 - Jul 25 2020 | - Tab-1: Finalize working on the scrollable tabular form. - Tab-2: Finalize working on batch job to populate database with data from Finnhub |
- Tab-1: Working on writing more than one value read from UI into database via Flask - Automated service: Populating Finnhub responses to database on a (near-)automated basis - Tab-2: Experimenting if Matplotlib-generated graphs hosted in Python (Flask) can be served in an Angular front-end. Alternative is to simply serve 1. Ticker and 2, JSON data so Angular Charts module can plot it in Angular code |
Jul 26 - Jul 30 2020 | - Planning out and performing integration of tab-1 and tab-2 (aligning table-1 name and its column name expectations, determining keeping of automated service running etc.) - A presentation is prepared - App is deployed in AWS EC2/Heroku/a VPS |
- Setup IDE for local development (UI, API)
- Setup DB locally for reading/writing data
- Setup Git locally for interacting with Github
- Start working on UI (tab-1/tab-2) and send PRs
-
Tab-1: A "data-entry strip" at the top should write data into database in the following format:
- Ticker
- Name (auto-populated at a later stage)
- Security Type
- Quantity
- Purchase Price
- Purchase Date
A tabular form listing the above fields is populated with data from database. Should be scrollable
- Tab-2: A graph should be available with some sample data populated in a table in database. Start working on batch job to populate data from Finnhub
- Tab-1: Finalize working on the scrollable tabular form.
- Tab-2: Finalize working on batch job to populate database with data from Finnhub
- Planning out and performing integration of tab-1 and tab-2 (aligning table-1 name and its column name expectations, determining keeping of automated service running etc.)
- A presentation is prepared
- App is deployed in AWS EC2/Heroku/a VPS
- Setup IDE for local development (UI, API) - DONE
- Setup DB locally for reading/writing data - DONE
- Setup Git locally for interacting with Github - DONE
- Start working on UI (tab-1/tab-2) and send PRs - Moved to Jul 12 - Jul 18
- Tab-1: Working on fetching data from/writing to database via Flask
- Automated service: Started work on modelling data from Finnhub API calls so it can be saved into database
- Tab-2: Not started
- Tab-1: Working on writing more than one value read from UI into database via Flask
- Automated service: Populating Finnhub responses to database on a (near-)automated basis
- Tab-2: Experimenting if Matplotlib-generated graphs hosted in Python (Flask) can be served in an Angular front-end. Alternative is to simply serve 1. Ticker and 2, JSON data so Angular Charts module can plot it in Angular code
At this time, you can run this locally with a DB setup. Our goal is to have this deployed in a publicly accessible web server during the week of Jul 26 2020.
Please open an issue here on Github or talk to us on Gitter to be informed when we go live. We're excited to talk to you!
We're on Gitter!
Add New Stock Function()
User enters stock info in the front end
Table 1 All Columns are filled
Table 2 Ticker Column is filled
Table 2 StockPrice is Filled
Empty Dictionary is created?
Current Price Function()
Gets Called Every Hour
Loop Through Table 2
Adds New Current Price AND Date/Time to each dictionary
Display Graph Function()
Uses Table 2 Dictionaries to plot graphs