Portfolio Manager

Category: Solution Templates
Subcategory: All

Overview

Portfolio Manager demonstrates how Mendix can be used to provide a great customer experience when it comes to personal Financial investment. The B2C responsive web app helps guide customers through the process of creating a new investment pot or investment portfolio. The Customer chooses a risk level and investment style, and based on this choice is given a different experience that ranges from having their investments fully managed by a broker all the way to the Customer having full control over the fund choices and each transaction.

Documentation

https://youtu.be/s-xv42JJwCs
Demo urlhttps://invest100.mendixcloud.com

Portfolio Manager

Portfolio Manager demonstrates how Mendix can be used to provide a great customer experience when it comes to personal Financial investment. The B2C responsive web app helps guide customers through the process of creating a new investment pot or investment portfolio. The Customer chooses a risk level and investment style, and based on this choice is given a different experience that ranges from having their investments fully managed by a broker all the way to the Customer having full control over the fund choices and each transaction.

Real prices for funds are used from the Yahoo Finance API and will require an API Key. You can get one for free at (https://rapidapi.com/apidojo/api/yahoo-finance1)

To summarise, the app allows you to:

As a Customer:

  • Onboard themselves (kept simple)
  • Onboarding wizard helps to complete profile details
  • Create new pot wizard that explains the process in detail
  • Select Risk level from 1 to 5 for each pot
  • Choose an investment style for each pot:
    • Fully managed - your money is invested by a broker
    • Fixed - Auto investment into funds based on risk level selected
    • Socially Responsible - Much like Fixed but excludes funds that are not considered socially responsible
    • Self Managed - The Customer is in control of their fund investments and can buy or sell any amount of units based on their preferences
  • Make use of the Native App to have a simple view of your pots and investment performance (read-only)

As a Broker:

  • Has a view of all of the Fully Managed Portfolio Pots that are assigned to them
  • Has full control over the fund investments inside these pots which includes buying and selling of individual fund investements or units
  • Can communicate with the Customer who owns the pot via a persistent chat facility

Administrator:

  • Can manage the list of funds that are available for Customers and Brokers
  • See a view of all pots
  • Manage users and change their passwords

How to Setup?

To setup the basics of your own version, the Portfolio Manager App is available via the create new app flow on the private AppStore.

The following steps will help you provision the Portfolio App.

  1. Register for an API key (https://rapidapi.com/apidojo/api/yahoo-finance1)
  2. Make sure to enter the API Key as the value for the constant FinanceIntegration.YH_API_KEY. The app should start without the API key and should function but it will mean you won't have the latest pricing for shares
  3. Open the App in Studio Pro (8.16.0 minimum)
  4. The first start of the application will take some time to setup the default data set, once started you should be able to give a demo

Demo Data

The data will be imported automatically when you execute the app for the first time. However, if you want to clean the data that you may have added (new transactions for example), you can open the website of the app and follow the next steps.

  1. Select the user and change the current username to administrator
  2. Click the Cleanup data & reset button on the top of the page (see image below)

cleanup

Customer Login

  • Luke Jensen

    Use the Demo users widget on the right side of the screen to select the user and change the current username to customer@mendix.com

Broker Logins

  • Simon Black

    Use the Demo users widget on the right side of the screen to select the user and change the current username to broker@mendix.com

Explaining the Model

This model has been built to be easily extendable and contains a few core functions that the main processes require:

Portfolio Management

portfolio managment

This module is used to store and capture the transactions and banking details of the customer. It contains the following entities:

  • Profile:

Inherits from the Account entity which comes from System User. Stores the basic information of Customer as well as a Broker. Used to attach Customers to their pots and also used to assign Brokers to the pots they manage

  • PortfolioPot:

Represents the Customer's pot and/or portfolio. Has name, Risk level and Investment Style to characterise what type of experience and value the Customer is looking for with this pot. Contains a list of Fund Investments

  • Fund Investment

Represents how many units of a particular Fund are held inside the Portfolio/Pot and what that value is at current price. There will be one of these objects per Fund per Pot. Each itemised purchase/sale is represented more granularly in Transactions

  • Transaction

Represent each purchase/sale of a unit amount for a Fund. It stores the date of the transaction, whether it was purchase or sale and what the cost/selling price of that transaction was at the time as well as the total cost/selling price (units * cost/selling price)

  • Chat

There is a Chat facility available for Customers who have Fully Managed pots, they are assigned a Broker and can chat with this broker to ask questions etc.. This also forms as a messenging mechanism for the Broker to communicate activity on the Customer's investments

InvestmentFunds

Investment Funds

  • Fund

Represents the individual funds that are available to invest in, there are real-world funds and their symbol codes are used to retrieve historical and recent pricing to perform salee and purchases. Funds also have a Risk level associated with them that dictate how the Fixed portfolio pots will "algorythmically" invest fund-wise. There is a boolean stored on the Fund entity which also indicates whether it is a socially responsible fund or not which further dictates the investment "algorythm" for Socially Responsible funds. Self-Managed Customers and Brokers also see these risk levels when investming manually

FinanceIntegration

The financial Integration module stores the integration point with the Yahoo Finance API (https://rapidapi.com/apidojo/api/yahoo-finance1)

The method used is the get historical data method as below

https://apidojo-yahoo-finance-v1.p.rapidapi.com/stock/v3/get-historical-data?symbol={insert_symbol}®ion={insert_region}

This is implemented in the FinanceIntegration.SUB_GetHistorical Microflow

Releases

Version: 4.0.0
Framework Version: 9.4.0
Release Notes: 9.4 Update
Version: 3.0.1
Framework Version: 9.1.1
Release Notes: Upgrade to 9.1.1
Version: 2.0.0
Framework Version: 9.0.4
Release Notes: upgrade to 9.0.4
Version: 1.0.1
Framework Version: 8.17.0
Release Notes: Title update