CS50P final project

For my final project I made a terminal programme called the Investment Portfolio.

Static website
Programming

The programme lets you add and remove assets in the terminal, makes an API call to get the latest closing price and returns a table or CSV file. You can also view your total portfolio value. I wanted to make a programme that covered the constraints of the project but that I could also continue to develop and iterate on over time.

The programme covers the following course topics:

  • Functions
  • Conditions
  • Exceptions
  • Loops
  • Libraries
  • Dictionaries
  • Lists
  • Testing
  • File I/O
  • Classes

Demo #

Quick 3 minute demo of the Investment Portfolio.

Code example #

Here's some code that creates a class called Asset - replicating a real life investment asset - and uses a library called yfinance in a function that returns the price. The price is then used to calculate the assets value. @property decorates the price and value functions allowing access via dot notation e.g. asset.value rather than asset.value().

import yfinance as yf


class Asset:
    def __init__(self, name, symbol, asset_type, quantity):
        self.name = name
        self.symbol = symbol
        self.asset_type = asset_type
        self.quantity = quantity

    @property
    def price(self):
        info = yf.Ticker(self.symbol)
        return float(info.info.get("previousClose"))

    @property
    def value(self):
        return (self.quantity * self.price) / 100

This is just a small part of the programme, check out the README on GitHub to find out more about the design of the programme.

Roadmap #

In true product fashion here's the Investment Portfolio roadmap. My focus is still on learning! I've got some more tutorial projects to build and some packages to play with before I start tackling what's next. I'll update the roadmap as I iterate, and I'll write blog posts as I add exciting new capabilities 🚀

🏗️ Now 🔭 Next 🌱 Later
Learning Database Graphic User Interface
Data analysis Web application
Data visualisation Growth of £/$
Contribute/Withdraw Costs
Allocation News
Cashflow PDF
Rules
AI

Completed #

  • ✅ Terminal programme