Project Background

Create an online webapp to allow users to view their financial data from multiple bank accounts. The application should also be able to provide financial insights and visualisations to the users.

Gathering Requirements

We conducted a semi-structured interview.

Q: What are the requirements for an open banking application for you?
A: I would want the app to show me my categorical spending and transaction history in an understandable and easily digestible way.

Q: What are the preferred functions for an open banking application for you?
A: It would be nice to be able to set budgets for easier financial management. If the app could also predict future expenditure based on my past expenditures, it'd help me better manage my finances. Having bill reminders would also be incredibly helpful as I tend to forget bill payments. Overall, I want to move towards a better credit score.

Q: What are the design features that you would look for in an open banking application?
A: Having modern design is of utmost importance to put your app above all other open banking applications. Visualisations such as graphs would be very helpful for insights. It should be fast, regularly updated and free of bugs!

We've used these questions to write up the requirement list:

  • Should show spending habits
  • Predict future expenditure
  • Categorise spending
    • Allows you to set nominal caps on categorical spending to manage funds better
  • The app should allow users to move towards improving their finances via suggestions
    • Recommends taking a loan if expenditures are exceeding income for given period of time
    • Recommends money to be put into a particular savings account due to higher interest rate
  • Bill reminders

Personas

1 / 3
Persona 1
2 / 3
Persona 2
3 / 3
Persona 3

Project Goals

  • To create a platform which allows users to connect multiple bank accounts
  • To aggregate the user's financial data efficiently
  • To use the HyperCube data structure (an OLAP framework) for easier data management and faster extraction of multi-dimensional data
  • To be able to visualise data using BI tools
  • To provide forward-looking (financial) insights to the users using machine learning APIs
  • To implement sophisticated algorithms to predict spending patterns, to detect fraud and predict overdrafts.
  • To use NLP (Natural Language Processing) to be able to sort data into categories using key words.

MoSCoW List

Must have Should have Could have Won't have
Data Visualisation (BI) Categorical Spending HyperCube data structure to get more insights from analysis of multi-dimensional data Real Authentication from a bank using Open Banking API
Framework for interaction between database and front-end Functionality to allow user to view transactions between certain date ranges Report generation of data Ability to make payments in user's behalf using the Open Banking API (PIS)
Budgeting functionality (Setting caps) Data Processing for each user and reuploading to database Algorithm to analyse of spending patterns and/or fraudulent payment Ability to track user's credit history and/or perfom credit checks
Financial Overview Display Bill reminders Sophisticated Natural Language Processing which looks at more than keywords and categorises data more deeply Sophisticated security implementation of user login/registration system
Ability to connect and select multiple bank accounts Ability to predict user going into overdraft Creation of saving pots
NoSQL database, hosted on Azure which stores customer banking data "Help" functionality using a form Dummy Data Generation (JSON format)
Readable Number Formatting for Tables and Graphs "Profile" functionality for each user
Readable Date Formatting Creating a full login system
Pagination and seach for tables

Use Case Diagram

UseCaseDiagram

List of Use Cases

ID Use Case For User
UCU1 View and Update Profile
UCU2 Viewing Balances (Spendable and Total Expected Payable)
UCU3 Viewing Individual Account Information
UCU4 View Dashboard with Categorical Spending
UCU5 Viewing All Transactions
UCU6 View Alerts
UCU7 Generate Report
UCU8 Set Budgets
UCU9 View Detailed Credit Card Information
UCU10 Ask A Question
ID Use Case For Admin (App Developer)
UCA1 Answering Questions
UCA2 Password Management
UCA3 Database Management
Use Case
ID UCU1
Actor User
Description View and Update Profile
Main Flow
  1. 1. Log in as user (Details in Appendix for test account)
  2. 2. Click on the profile icon on the upper right corner
  3. 3. View and Update Profile information
  4. 4. Enter UserID to fetch financial data
  5. 5. Click on Save Changes
  6. 6. Click on the Icy Bank logo in the upper left corner
Result Profile updated and financial data retrieved
Use Case
ID UCU3
Actor User
Description Viewing Individual Account Information
Main Flow
  1. 1. Log in as user (Details in Appendix for test account)
  2. 2. Click on the profile icon on the upper right corner
  3. 3. Fill in the UserID text field with a list of accounts
  4. 4. Click on Save Changes
  5. 5. Click on the Icy Bank logo in the upper left corner
  6. 6. Click on the dropdown selection next to the green "Generate Report" button
  7. 7. Select Account 1
Result Viewing financial data from only Account 1
Use Case
ID UCU10
Actor User
Description Ask A Question
Main Flow
  1. 1. Log in as user (Details in Appendix for test account)
  2. 2. Click on the question mark icon on the upper right corner
  3. 3. Fill in the Subject, Email and Message with the question
  4. 4. Click on Save Changes
Result Question has been sent to app developers