A Level Computer Science Project: 1175066

Section 1 – Analysis

1.1 Problem identification

Technology has improved heavily over the past years and has made it easier to spend money faster, also advertising has improved so people tend to lose track of how much they’re spending and on what till they end up with a huge credit card bill at the end of the month. So my program will warn consumers when they have spent more than their set limit for the month or week.my program will also remind people when they are close to hitting the set limit or if they have even managed to save funds.

There are different categories of things people tend to spend money on, the most basic being food, shelter and clothing but there are also others such as the cost of looking after family/children, cost of travel, cost of entertainment and many more. By categorizing a person’s costs it helps identify where they could cut down their spending on.

This would help save people a lot of money which they could, in turn, spend on something more beneficial such as a new phone, car or even a holiday.

1.2 Stakeholders/ Clients

The main stakeholders for my system would be anyone who struggles to control their spending habits or for people who want to save a bit more. I will interview a friend who tends to waste money constantly and see if he finds the idea beneficial for him. I will ask for important features that he would want as a consumer to help cut his spending habits

Conversation with a friend

What is the problem?

After speaking to my friend he identified that the main issues with programs that display results are that he struggles to understand what the results actually mean, he finds this annoying and sees it as having no benefit to him, despite the lack of control over his pwn spending habits. He also stated that if it was easy to read then he would find it very useful and even suggest it to others.

What are the key features that you want out of the system?

He said he wants notifications or reminders so he’s constantly aware of his spending, making him less likely to overspend.

He also wants to see how long it would take him to save up for a new phone so suggests having a feature which calculates how long he would need to save for certain items.

He would also like to see a saving plan so he would be more understanding of how to save.

Another feature which he suggested was adding rules for younger users, an example being that parents would be informed via email if their child had spent over a certain limit.

He also wants to see clearly what his biggest costs are (shown based on category and actual cost) and a graph which represents this data in a clear and understandable way.  

He also mentioned that if the program can save certain recurring expenses in memory so that the user does not have to constantly input them. (e.g. Gym membership costs or cost of rent ) this makes the program more convenient to be used.

USE GOOGLE FORMS FOR QUESTIONNAIRE

1.3 Justification of Computational Method

I believe that using a computational method would be beneficial as it would be easy to store data and instantly calculate a consumer’s daily spending which would then be recorded and could be referred to at a later date. Also, as it would set reminders for the user this helps prevent them from making mistakes on what they are spending their money on

Data Abstraction could be applied through showing only the end result of calculations and not the process. It could store data in a cache memory

existence of pattern recognition for computation thinking

The end user of the Budget tracking application just like any user has a spending routine with which they follow, for instance:

1.user gets a given amount of income/earnings which is recorded by the tracker.

2.user creates a budget for each category of expenditure i.e. shopping, Vacation etc.

3.The application saves these records constantly as part of routine.

4.user enters their spending’s into the application for tracking.

5.application the keeps track whether a user is on budget or off budget.

This pattern exists for the entire time a user uses the budget tracking during their spending annually. Therefore, this pattern can then be applied to this system since it monitors expenditures categories of the user based on their earnings and budget estimates. Recognition patterns is a form of computational thinking that uses the things that are common between programs.

This can be implemented as follows:

Identifying common elements in the tracking system. For instance, at what time of the year is the user experiencing off budget and at what earnings. Using this pattern, we can create a prediction algorithm to assist the user in taking caution to evade the alerts.

Once the pattern has been identified then individual items like earnings, categories and expenditure which are seen to be influenced by income and months of the year they can be processed and saved into the database to establish a basis for the graphs and statistical data like the regression, coefficients which justify accuracy of the end developed algorithm.

Once the tracking application has a prediction algorithm based on a verifiable data that it monitors from the user then we can use to speculate user spending.

 The budget tracking application based on the comparison between income, budget for each category and expenditure of the user the application is able to identify when the user is about to exceed the budget and when they exceed the budget. The application will save the budget plan for each category into the database for a given user then once an expenditure is made, an abstracted method calculates to see whether the customer is off budget or on budget then using an alert color for instance red to highlight the records that are off budget.

The database holds chronological data of the user budget. Using an identified pattern which may be how the user is influenced to spend during given times of the year i.e. during holidays, the category of spending i.e. Shopping or vacation, their average amount they spend on each category during the year. The spending summary can as well be presented from a statistical perspective like using pie charts with percentages (the database can be queried to refined this data for presentation) the presented in customized user interface from the budget tracking application.

1.4 Project Investigation

Another budgeting system which already exists is called ‘Yolt’ it can be found here:

https://www.yolt.com/

The app works by using your usual online banking details to connect to your bank using the double security encryptions that banks do but the benefit being you can view multiple accounts and see the data on spending habits between your different accounts at the same time. once your banking history has been imported into the app, it will then put into useful categories. If the user disagrees with any of the systems categorisations, the user can manually move their spending to other categories. The categorisation is also much more specific than other apps, resulting in users receiving more detailed and useful insights on their spendings. As shown below

Another useful feature about Yolt is that they allow users to find the best exchange rates when travelling abroad.this is very useful for most people who have little/ no knowledge on the exchange rates of multiple currencies so helps them save more money.

Key features of the solution (system goals)

History view on all spendings and earnings 

This will allow the user to view their history of expenditure between any dates.this will help see at what periods through the year does their expenditure increase (e.g: during December due to Christmas sale). There will be a table holding all the statistics of the user, along with this it will show the user what they spend the most in each category. All results will be represented in many different ways, to allow the user to customise.

Different presentations of graphs and statistics

Multiple different graphs will be used to clearly highlight and understand users spending habits, the user will be able to customise the complexity of the data they see. ( a simple pie chart or in-depth and accurate numbers) A colour-coded scheme will also be available to help make the data more visually simpler and understanding for users, this will help pinpoint anomalies in their spending and where they should focus on cutting costs.

All graphs will also be able to be printed if users prefer a hard copy rather than digital.

A help bar

This will help new users to understand all the functions and features which are available for them. Also, this will help users understand the data they have been shown and answer commonly asked questions about saving.

Text alerts/reminders 

Users may want to be warned or reminded not to spend as much within a given time frame. Constant updates help keep users focused on saving instead of spending as they will be more aware of their bills straight away rather than waiting to receive bank statements. Some users would like to just be aware when they are nearing or have surpassed a certain spending limit. This can be manually set and turned off if the user desires.

Login system to help keep all information secure

This will help keep data safe and secure as no one but the user will have access to the information on their account. also, this prevents unwanted third parties from retrieving personal information such as bank details. Passwords will be encrypted and stored along with all other information from the user. double security encryptions will also be implemented in order to guarantee proper protection of all data.

The system can operate in the background of a computer, without impeding with anything else

This will be very useful as The system can be minimised to the taskbar and will run in the background. This means it will not intervene with the normal operation of the computer when double-clicking on the icon, the system will then open. This is convenient for the user who wishes to use another program while the system starts up.

Limitations in the system 

Any limitation that I could be presented with when creating the program

One limitation that my system will face is that it will not be available on every platform, it can only be accessed via pc. Another limitation is that only one user can use the system at a time, accounts can not be used simultaneously.

Inability to text foreign landlines due to overseas charges for alerts/ reminders, in these cases, users will have the option of alternatives such as email.

Requirements for the solution

Any device that uses the system must be able to connect to a stable and secure internet connection.

The computer must also meet the following specifications:

Hardware:

Processor (CPU) with 2 gigahertz (GHz) frequency or above

A minimum of 2 GB of RAM

Monitor Resolution 1024 X 768 or higher

A minimum of 20 GB of available space on the hard disk

Internet Connection Broadband (high-speed) Internet connection with a speed of 4 Mbps or higher

Keyboard and a Microsoft Mouse or compatible pointing device

Sound card

SUCCESS CRITERIA

The criteria has been split into important and preferable, because the main aim is to make the system function properly before adding any new features, and in the event where I do not have enough time to include all said features, I will have at the minimum covered the important ones for the operation of the system.

The important criteria are:

● History view on all spending and earnings

Ability to see all records of your daily, weekly, monthly and annual spending and earnings.

  • Different presentations of graphs and statistics

Ability to see different layouts of the data to clearly highlight and understand a consumer’s spending habits.

  • The system can operate in the background, without impeding with anything else

The system will be minimised to the taskbar and will run in the background. This means that it will not intervene with the normal operation of the computer. when you double click on the icon, the system will open.

The Preferable criteria is :

  • Text alerts/reminders

The user will be able to set up custom text and email alerts to any email address or mobile phone depending on certain settings.

  • Login system to protect all of the user’s data and history

There will be a login screen before being able to use the system, users will be able to change passwords and create or delete accounts.

  • Usability offline  

The system can be used offline for small features such as checking bank balance and receiving alerts/reminders.

Design

Top-down design:

This top-down design indicates all the different elements that make up a user login page.

First the system connects to the database. Then the password is encrypted after that the login details which have been entered are seen, the database is queried to ensure that the login details are correct. Variables are then assigned to user details and parts of the application will be limited depending on user ranking. This is done to make sure no private information gets out.

    Database design

  • History view on all spending and earnings

The statistics obtained from the server are as follows: current spending for the day, the average weekly and daily spending, average earnings per month

This will need to be designed to enable the storage of a large history of the data, along with it being easily query-able as the history report can be personalized.

  • Login system to protect all of the user’s data and history
  • All statistics will be periodically logged in to a table
Name  nul?
Log_ID  Not null
Log_DateTime  Not null
Log_Income  Not null
Log_Outflows  Not null
       User Login  
Name: Surname: 
Username: Password: 

This is a simple design for my user login

https://inews.co.uk/inews-lifestyle/money/good-money-managing-apps-635219

After a user successfully logs-in they will be required to input a unique 5 digit pin number.This is done in order to decrease the possibility of unwanted access.

After a user creates a new account they will need to create a unique 5 digit pin.This pin will be required to use after every time a user logs in.

Development and testing

Introduction

This application is expected to be a cross-platform product that runs on windows, Mac OS and Linux distributions thus achieving primary purpose of allowing flexibility within the deployed environment. During development several tools will be used most of which will be open source so as to exploit the advantage of cost-free and large online support community.

Programming development Language and tools.

Many languages can be used to develop this application, for instance, Java, Python, c++ Dot Net languages. Some of these languages it can build websites, desktop apps and even in scientific analysis, moreover, they can interact with many database systems, either commercial or non-commercial. The database that people always are using are Informix, Microsoft SQL Server, MySQL, ODBC, Oracle and Sybase. This application aims at a language that its code is easy to maintain and update, open source, easy to learn and a reasonable support community is available online. Programming languages with good front-end and back-end performance are highly feasible for this application.

The programming environment or platform to be used will be highly dependent on the programming language of choice. However, most text editors and integrated development environments offer multiple language support. Some of the available tools include:

  • Text Editors: Sublime text, atom, notepad++, visual studio code, notepad etc.
  • IDE: PyCharm, Spider, NetBeans, Visual Studio etc.

Database development tools.

The budget tracker/assistance works based on records therefore a database backend that offers efficiency and good performance with minimum resources will be feasible for this app. The graphs that visualize the expenditure requires data from the database to develop those graphs and the other information is to be cached. The login authentication as well will depend on the user credentials for authentication and authorization. Some of the databases available include: Oracle, Sqlite3, Postgress, MySQL, MongoDB etc.

The choice of database tools for this system is SQl Lite3 with SQLAlchemy ORM  due to the large online support and the fact that its open source.

System Modules

Authentication modules: These are modules within which the login program logic and the User interface for authentication is residing where the identification using user id, authentication using the password and authorization into the application resources will be handled. These modules may include login, reset and new user registration.

Application modules: These modules will contain the user interaction handling logic where the options to select what to view, calculate or information on user budget tracking will be provided. These modules will be only accessible once a user was successful authenticated. These modules may include the preferences setting like user profile, connectivity (offline and online), alerts on texts and emails.

Database modules: These are the modules that provide the user with the source of the database logic for creating models to interact with database to provide the aesthetic and pleasant views and other visuals which include graphs on expense, budgetary data in tabular format etc. These modules are dependent upon the application and authentication modules.

Function / Robustness Testing & Evaluation

Test idDescriptionTest DataExpected Results
1LoginIncorrect password and usernameDeny access
2LoginCorrect password and usernameAllow access
3.Off budget/On budgetUser expenditure dataAlert using designated colour either via texts or mail.
4.Register new userCorrect username and password formatAllow registration
5.Register new userIncorrect username and passwordDeny registration ask for correct format.
6.Offline/online usabilitySend alert via mail and text when onlineAllow texting and mailing of alert
7.Offline/online usabilitySend alert via mail and text when onlineDeny text and mail alerts.

Usability Testing and Evaluation

The end user at the deployment environment will have a chance to use this system and see the ease of usability of the system. This will focus on evaluating if the budget tracking application will have satisfied the user needs. The key aspects that the user may evaluate may include:

  • What is the learning curve of the application usage to a standard end user? This seeks to ensure that the application is user friendly and familiar at a glance in order to minimize the learning curve.
  • Is the Budgetary tracking application’s UX acceptable? which includes having responsive input controls on the help bar and presentable output.
  • Does its performance impress the end user? This can be based on its capability to alert and mail within time and using minimal resources.
  • Has the user accepted the application as good solution for their problems? An application’s success depends on end user acceptance thus this key to gauge success of the budget tracking application.

Evaluation – Maintenance / Limitations / Improvements.

System Evaluation and Limitations

The budget tracking application is will run on a personal computer, will not be available on all platforms like the mobile platform and will only be a single user mode application. Moreover, the application will send texts and alerts on off/on budget alerts which may be challenging due to international telecommunication charges that are not harmonized. Therefore, the key limitation of application that ought to address include:

  • Single user mode limitation.
  • Texts alerts international mobile charges by Telecoms.
  • Single platform availability limitation.
  • Utility nature which makes it very suitable when made available on mobile handsets for ubiquity.

System Improvements

The budget tracking application will improve on the existing similar applications which have limited features compared to this budget tracker. The major improvements in this budget tracker application include:

  • chronological view on all spending and earnings.

This will allow the user to view their history of expenditure between any dates. This will help see at what periods through the year does their expenditure increase (e.g: during December due to Christmas sale). There will be a table holding all the statistics of the user, along with this it will show the user what they spend the most in each category. All results will be represented in many different ways, to allow the user to customise.

  • Different presentations of graphs and statistics

Multiple different graphs will be used to clearly highlight and understand users spending habits, the user will be able to customise the complexity of the data they see. (a simple pie chart or in-depth and accurate numbers) A colour-coded scheme will also be available to help make the data more visually simpler and understanding for users, this will help pinpoint anomalies in their spending and where they should focus on cutting costs. All graphs will also be able to be printed if users prefer a hard copy rather than digital.

  • A responsive help bar.

This will help new users to understand all the functions and features which are available for them. Also, this will help users understand the data they have been shown and answer commonly asked questions about saving.

  • Text alerts/reminders.

Users may want to be warned or reminded not to spend as much within a given time frame. Constant updates help keep users focused on saving instead of spending as they will be more aware of their bills straight away rather than waiting to receive bank statements. Some users would like to just be aware when they are nearing or have surpassed a certain spending limit. This can be manually set and turned off if the user desires.

  • Enhanced security through login factor.

This will help keep data safe and secure as no one but the user will have access to the information on their account. also, this prevents unwanted third parties from retrieving personal information such as bank details. Passwords will be encrypted and stored along with all other information from the user. double security encryptions will also be implemented in order to guarantee proper protection of all data.

  • Background operation feature with minimal resources consumption.

This will be very useful as the system can be minimized to the taskbar and will run in the background. This means it will not intervene with the normal operation of the computer when double-clicking on the icon, the system will then open. This is convenient for the user who wishes to use another program while the system starts up.

System Recommendation

  • In the future in case any resourceful developer chooses to develop/improve a budget tracking/assistance should consider the following:
  • Focus on creating a multi user mode application which depends on an advanced database management system that supports concurrency features.
  • Focus on expanding the platform coverage to tablets and mobile platforms to satisfy portability and utility nature of this application which requires it available on handsets which are carried during shopping, vacations and road trips.
  • Improve on the text alerts to use on cost effective international communication platforms that might exist at their time of developing the application.
  • The deployment method of this system should be in phases. The application features should be availed in phases so as not to overwhelm the end user as well as get iterative feedback during the development process.
  • Intense user training of about one week so as to allow for mental and skill preparation since just like any system, the end user is the pivotal stakeholder’s in a system’s success.

Appendix:

        Screenshot of test results

LOGIN TEST

NEW REGISRTATION TEST

TRANSACTION HISTORY