Peculiarities of Building a Personal Finance Management System Andrii Vasyliuk1, Taras Basyuk1 1 Lviv Polytechnic National University, Bandera str.12, Lviv, 79013 Abstract In this work, a personal finance management system is developed. The relevance of the system construction is proved. It was considered the introduction of various technologies, which will help to create a system that is easy to use and user-friendly. It was analyzed the market of similar software solutions and technologies. The analysis of the methods corresponding to the topic was carried out and the most expedient ones were chosen. The subject area of the research and the imperfection of software solutions in the market is determined, which outlined the problem, and the requirements to the system are formulated. The structural processes of system creation were described. Rational unified process was used as a methodology for creating the lost part of the product because the most important emphasis in this case is the working product. All precedents in this methodology have been described. The following types of diagrams are presented: sequence diagram, packet diagram, class diagram. Methods of realization of the chosen system which provide the minimum requirements to the software and hardware are formulated and described. A software and hardware solution that meets the requirements for building a personal finance management system necessary for its implementation was chosen. The system of personal finance management in the form of the appendix is constructed; a detailed description of the designed system and test variants of its operation are given. A personal financial management system was created. Keywords 1 Personal finance, system, financial management, statistics 1. Introduction An increase in wages very often does not lead to an increase in free funds. Costs and requirements for services and goods are growing. It is quite useful to have a tool that will really assess the situation with cash flow. You can't save money without knowing the real picture of your expenses. In any case, starting a habit of managing and controlling personal finances is a good choice for the first important step towards balanced costs and significant savings [1]. Many people start keeping a budget and analyzing their expenses. Unfortunately, there are some limitations such as lack of time or lack of information. Sometimes, a person knows the approximate amount of his or her expenses and profits, but the real statistics of the data differ from the approximate figures. This is because of the constant rise in prices, unstable exchange rates etc. Personal finances will not answer the question 'where can I get money from?', but it can help with a better understanding of where your money comes from and on what it is spent, and based on this information, everyone draws their conclusions. The usefulness of financial management is an understanding of how and for how much money we live, and the right conclusions from financial management is to live according to our capabilities [2]. Want to live (spend more) better or save more - earn more or save more in the long run with control of COLINS-2022: 6th International Conference on Computational Linguistics and Intelligent Systems, May 12–13, 2022, Gliwice, Poland EMAIL: Andrii.S.Vasyliuk@lpnu.ua (A. Vasyliuk), Taras.M.Basyuk@lpnu.ua (T. Basyuk). ORCID: 0000-0002-3666-7232 (A. Vasyliuk), 0000-0003-0813-0785 (T. Basyuk) © 2022 Copyright for this paper by its authors. Use permitted under Creative Commons License Attribution 4.0 International (CC BY 4.0). CEUR Wor Pr ks hop oceedi ngs ht I tp: // ceur - SSN1613- ws .or 0073 g CEUR Workshop Proceedings (CEUR-WS.org) 'useless' costs. There are different approaches and everyone benefits from personal finance. Among the main advantages are current information on cash flows, real cost figures for certain categories. It will also give an understanding of what you can save on and what you should pay more attention to. Moreover, this is a period when prices are constantly rising, and the overall picture of costs is changing very often [3]. It is important to understand that budget planning helps to avoid many problems: unplanned expenses, budget gaps, etc. Planning will be especially important for those who have some loans or debts. Or for those who need to save a certain amount of money as quickly as possible. With a planning tool, you can see the real picture, save on unnecessary expenses and get more free money as a result. 2. Analysis of the subject area 2.1. Methodological bases of research Rapid globalization and the high pace of life in modern society make a lot of demands on people. Therefore, we must control various areas of our life, including financial. Moreover, finance and the economy are based not only on the life of an individual, but on the whole country and the world as a whole. The requirements for control are increasing, it becomes impossible to keep track of everything and keep a lot of information in your head at the same time. However, it is the loss of control over finances that leads to the most negative consequences, stops many endeavors, and also causes psychological pressure. That is why now more than ever it is important to simplify and automate the control of their costs. This problem is relevant for many generations, so many areas have been created, which are actively researched and developed. Among them are financial management, economic cybernetics, introduction of innovative technologies, etc. Similar studies have been conducted in the following works [4,5]. Financial management is the process of planning decisions to maximize the financial wealth of the owner. In general, financial management is a set of certain principles, methods and tools for organizing and managing cash flow. It generates, allocates and uses financial resources and optimizes them. The main goal of financial management is to ensure maximum prosperity, rational use of resources to generate income (accumulation of costs), control costs and increase efficiency. In the 21st century, the issue of own finances has become a particularly acute problem. Statistics show that 3 out of 4 individuals experience stress due to their financial situation at least once a month, and a third of people who find themselves in a relationship say that money is the main cause of conflicts with a partner [6]. According to sociological research, the management of personal finances is a stumbling block in most modern families, becoming the cause of family disorders. In Ukraine, the culture of personal finance is underdeveloped to do some research. Mostly, accounting and budget planning are intuitive and inefficient. Financial Adviser Eric Tyson in his book 'Personal Finance' [7,8] lists the main shortcomings that occur to people in this area. However, Eric Tyson notes that he himself made almost every of the following mistakes. Here is a list of the causes of major disasters in personal finance: 1. Lack of personal financial planning is a characteristic feature of most families. Not many of them pay proper attention to the planning and budgeting of personal cash flows. 2. Irrational costs. Even a very rich person can become insolvent if his or her expenses either exceed or are practically at the level of income for a certain period. 3. Irrational purchases using consumer loans. A very common cause of personal budget tensions is the purchase of expensive non-investment items using consumer credit. 4. Permanent postponement of the moment of pension savings creation. Nobody wants to be in the state of today's average pensioner. But, for some reason, most people postpone the initial moment of creating personal pension savings, deciding that they will do it tomorrow (next month, year), etc. Most of these people consider themselves young enough to have such savings. 5. The presence on the market of quite attractive and complex financial products with a hidden inflated domestic price. In modern conditions of financial products' development in the market, not only price and qualitative, but also financial methods of competition are used. This means that some products contain a complex price structure consisting of many tranches, fixed and variable components. Finding out the true price of such a product is sometimes difficult and often impossible without specific financial calculations. 6. Lack of conclusions from previous experience and learning outcomes. Even some professionals in the field of management, marketing and finance, who in order to increase the sales of their own company, invent the most sophisticated methods, sometimes in the market behave like irrational consumers. Even the most rational consumers of these managers have families that sometimes consist of other irrational consumers. 7. Making decisions based on emotions. This reason is often the basis for the collapse of personal finances. Many people make purchases under the influence of emotional impulses, often they buy extra impressions instead of the purchase object. Even more often, when the impression is the purchase process itself. It is worth thinking about what we buy: object, impression or purchase process. 8. Making consumer decisions without dividing information into essential and insignificant. Influencing professionally designed marketing advertising gimmicks on consumer behavior often leads to consumer decisions without prior analysis of the materiality of the motives. 9. Emphasizing the catastrophically high level of risk, incomparable with the level of economic benefits, which promises to make this consumer decision. 10. Excessive concentration on money in the short term, which prevents a constant gradual increase in their own wealth in the long run. The basic principles of personal finance should also include a rational balance of benign and malignant obligations of certain individuals. From the personal finances point of view, benign liabilities are those that arise as a result of investing in one's own future (for example, buying a house on credit, studying, etc.). Irrational (malignant) obligations include debts arising from consumption (for example, a loan for a vacation at an expensive resort, a loan for the purchase of fashionable clothes, etc.). By analogy with the calculation of working capital in corporate finance, personal financial well-being is usually measured as the difference between financial assets and financial liabilities. People are constantly or periodically faced with the problem of lack of funds, there may be several reasons for this: low wages or too high costs. In most cases, people complain about insufficient income and at the same time keep silent or deliberately ignore the size and amount of their expenses, while no one changes their place of work and does not limit their needs. There is no denying that stress is the main disease of mankind. And the money issue is one of the main reasons. Life does not revolve around money, but people's existence is clearly linked to the availability of finances. Getting a salary is not the whole thing. Effective management and planning is something much bigger in general, it is a set of necessary knowledge and tools designed to simplify everyday tasks. Another category that includes personal finance is annuity. Annuity is a flow of evenly distributed over time, equal in amount of cash payments [5]. Personal finance abounds in annuities, examples of which are: subscription fees for the services of mobile operators, regular pension contributions, etc. 2.2. Analysis of known means of solving the problem The most popular applications are the most automated, they sort costs by category at the end of each month and, unfortunately, only make things worse as they cannot be used to plan a budget. Expense tracking applications allow you to understand what the price is, for example, for home delivery and what share of the budget it takes, but this is where their functionality is limited. The most important are the applications for budgeting: their time comes when a person already knows his or her expenses and he/she wants to redistribute them, or, conversely, to continue in the same way. But such applications provide at least a basics of budgeting. And the main problem that can be identified, most of these programs have only one language, which significantly limits the range of potential users. And the most powerful of such applications are either targeted at English-speaking audiences, or, having only a Russian- language interface, do not provide a free version. In today's market for the Android platform mobile applications, there are many similar programs for financial management [9]. Most of them duplicate existing popular applications, some are stand-alone large systems that are actively supported and considered. Applications have similar properties, but stand out with a deeper disclosure of a particular area: planning, statistics or control. Comparing similar programs, we chose the most popular applications that have different directions. Personal Capital: Finance. This application is designed to track simple cost and profit transactions. There is no budget or planning, but there are other functions. The main menu has accounts, transactions and reports. The program allows you to keep track of the finances of several people with different profile settings: currency, joint or separate budget, etc. There is also the function of transferring money from one account to another, the ability to have multiple wallets and the function of exporting a report for a certain period [10]. Advantages: reporting, the ability to have multiple profiles, statistics. Disadvantages: no planning, you need to get used to the interface. Monefy. The program has a user-friendly interface and easy navigation. All functional elements are displayed on the main screen: pie chart, cost categories, current accounts and balance, which can be displayed as a separate account and all together. The application provides a convenient mechanism for adding new records. Yes, this is done in just a few clicks: there are "+" and "-" buttons at the bottom of the page. The program has additional features: export to a file, synchronization via Dropbox, "budget" mode, which are available in the paid version. There is also password protection and cancellation of the created operation [11]. Benefits: All features available in 1-2 clicks, budget planning. Disadvantages: limited functionality in the paid version, few settings. EveryDollar. The main purpose of this application is comprehensive budget planning. The application allows you to create up to 50 transactions per month, for more you have to pay. The home screen displays all the information that is enough to not go to other screens. You can track information both general and by category. There are also daily averages, which allows you to monitor patterns in budget planning. The application also can convert currencies and show charts, has online synchronization [12]. Advantages: user-friendly interface, good statistics for different periods. Disadvantages: very limited free version, no accumulation goals. In conclusion, we can say that all these applications are high quality, functional, widely used and have a good rating in the mobile application store for Android - Google Play. The developed information system for personal finance management is designed to solve existing problems by maximizing the optimization of existing functions of such systems. It is proposed to develop a system that includes a tool for tracking expenditures, providing the ability to see statistics by period and category, as well as the ability to effectively plan the budget, having sufficient statistics on cash flows over certain periods of time. The system will be distributed free of charge. It is expected that the developed system for personal finance control will help the user to optimize their costs and reduce them through proper budget planning and tips that the system will periodically provide. Also, with the help of financial goals, the user will be able to save money and save much more efficiently. The use of the application makes it unnecessary to involve third-party specialists, for example, the services of a financial assistant can be replaced by the use of such a system, which is also a significant saving of money and time. Such a system accustoms users to control and self-organization, and forms a habit of conscious spending. Similar traits can be transferred to other areas of life, which will improve the quality of daily processes. 3. System analysis and substantiation of the problem 3.1. Object-oriented design The first important chart is the precedent chart [13]. This diagram in a simple visual form depicts the behavior of the system (the main actions it can perform) in various user requests. The main elements of this type of diagrams are: actors - users and external entities with which the system interacts directly; precedents - processes that will take place in the system. UML precedent diagrams are designed to determine the main uses of the system and the operations it can perform [14]. UML-diagram [15] of intelligent information system precedents of corporate finance accounting and analysis is shown in Fig. 1. It consists of an actor - a user of the system. Anyone with access to an account can be a user. Because the developed system provides multithreading, the number of users who use the system at the same time is unlimited, in addition, several users can simultaneously perform operations on the same data set without compatibility errors. The chart also shows the following precedents of the system: creation of a corporation, department, employee, project and transactions with subsequent storage of this data in the data warehouse. Upon successful creation of the above objects, the user gets the opportunity to create requests to update existing data or to account for and analyze corporate finances. As a result of these queries, the system conducts accounting and analysis of corporate finances, generates recommendations, generates a report and sends it to the user. If we consider a modular approach to system design, it should be noted that in the appendix all classes are divided into appropriate packages, each of which is designed for different purposes [16,17]. Data_layer - a package for working with databases, methods and data processing. Its structure was described in the previous paragraph. It has classes-models of data in the data packet, DAO package (data access object) for working with data. Classes for working with data contain functions for adding, deleting, updating, etc. for database objects. Yes, classes are fully configured to work with the necessary sampling conditions, handle complex queries, and so on. This organization simplifies the hierarchy of objects and makes the code clearer and more scalable. Ui_parts contains classes for working with the graphical user interface. The application implements the MVP (Model-View-Presenter) architecture, respectively, in the package there are classes of activity or fragment for the interface, classes that implement data transmission in activity or fragments - adapters. The main classes are responsible for program windows, event handlers, etc. And adapter classes allow you to dynamically load data for display. Utilities - contains all additional classes that are not related to the visual part and the database. This package includes classes for setting up charts, calculating statistics, and more. Figure 1: Use Case diagram Classes for working with data were described in the previous section, so it makes no sense to consider them in more detail. There are many auxiliary classes in the program that are responsible for transferring data, or filling in diagrams. And there are classes that do calculations, draw the visual part, store data etc. The main classes of the developed application are discussed in more detail below. The main window of the program, which displays a list of costs, allows you to delete and add them, is implemented in the following classes: NewMain - a fragment for the main window with a list of expenses, which allows you to save data and perform actions with list items: delete, view. This class also defines actions for working with list menu items. FinListAdapter is a class that processes data and passes it to a list cell element, which is then added to the general cost list with the data already filled. MyApplication is a class that inherits from Application and has essentially only one method. It implements a singleton pattern for the Realm object, which is then created in classes to work with the local database. MenuActivity - a class for working with drop-down menus. It has methods for processing user actions, general menu list, its appearance, etc. NawDrawerItem is a class for each specific menu list that determines the appearance of the item: caption, icon, background color, etc., and determines its behavior. The rest of the application windows have a similar set of classes: the class of the fragment or activity, the data adapter, uses data classes and work with menu items. The following classes should be distinguished: Diagram - this class is responsible for creating and displaying the chart itself without counting statistics. It specifies the type of chart, its elements, location, color scheme, and so on. The chart is not created from scratch, it is implemented using the methods of the open library MPAndroid Chart. DataFiller - this class already calculates and stores statistics, which are then passed to the chart class. Here lists are created and filled in, which are responsible for the data itself, section names and signatures. CatListAdapter - this adapter is designed to process all categories, sort them by type, create appropriate lists, which are then used by other classes of the program. Figure 2: Class diagram 4. Means of problem solving and practical implementation 4.1. Graphical user interface design Simplicity and minimalism are now one of the main trends in mobile design. As never before, flat design, floating button action, cards have become relevant [18]. These trends are present in most mobile applications released in recent years. The uxpin.com service was used to develop a prototype user interface. It allows you to create prototypes, add behavior to elements, modeling real behavior, has a wide range of capabilities through element libraries, each of which can be modified to suit the user's needs[19]. The main program window contains a drop-down menu with the following items: Home, Add new, Statistics, Plan budget, Set goal, Settings. These points are mostly fulfilled by fragments and activities. Each of them has own logic and functions. In our program, the main window displays the current balance, as well as income and expenses (for the current month - can be changed in the settings). Below is a squeak of recent expenses by date. Also, on the main page, there is an "Add" button, which redirects to the page with the addition of an entry. Here you select the amount, date and category to which the record belongs. You can also add a new category directly from this window. This can be done directly from the settings. Figure 3: The main program window One of the most important functions is statistics. It should be clear, understandable and as complete as possible. This is realized by a pie chart. This will display the period (month), which is clickable and variable, as well as the ability to choose statistics by category (circle sector), which is also clickable, opens the history of costs by category. Figure 4: Expense statistics for the month 4.2. Features of system implementation The system consists of three main parts: data models and classes for working with them, classes for working with the graphical interface and adapters that transmit data from the models to the interface elements. The system checks the entered data and issues errors on blank or incorrect fields. So, for example, when adding a new record of the cost, the user forgot to enter the amount of the cost, the system will give him the appropriate message (Fig. 5). Figure 5: Application menu The system also has input restrictions for the corresponding fields. Thus, in the fields where you can enter only numbers and a period, the system shows the appropriate keyboard, and the user cannot physically enter incorrect data (Fig. 6). Figure 6: System message for blank field 4.3. Analysis of the obtained results The software product has the functions of adding a new record, viewing cost history, category statistics, deleting and editing records, budget planning, setting financial savings goals, and getting tips on better financial planning and accounting. To achieve these results, the Java programming language and the Android Studio programming environment were used. The Realm.io mobile database and the MPAndroid Chart library were also used [20,21]. Functional tests and GUI testing have been developed. The program passed all 37 test cases of functional testing and successfully coped with 14 sets of test data GUI testing [22,23]. 5. Conclusion The aim of this work was to design and develop an information system for personal financial management, which would allow system users to have constant access to statistics of their expenses and have a tool for planning their finances in order to improve and optimize their costs. The main requirements were a user-friendly interface and assistance to the user in personal accounting. The system was expected to educate users through statistics and cost history. It was designed and implemented the necessary functionality to solve problems of personal finance management in existing solutions: functions of adding a new record, viewing cost history, statistics by category, deleting and editing records, budget planning, setting financial targets for accumulation and advice on better planning and accounting. To achieve such results, the system project first went through the initialization and planning phases, during which all system requirements and implementation details were collected, processed and described, and a mobile application was developed that fully meets the project requirements. The Java programming language and Android Studio programming environment were used for this purpose. The Realm.io mobile database and the MPAndroid Chart library were also used. Functional tests and GUI testing have been developed. The program passed all 37 test cases of functional testing and successfully coped with 14 sets of test data GUI testing. In the future, it is possible to develop the system and expand its functionality. For example, you can create a third-party API to work with the server database, create shared wallets for multiple users, provide access to your account from different devices. It is also possible to transfer the application to other mobile platforms. 6. References [1] M. Cagan,The Infographic Guide to Personal Finance: A Visual Reference for Everything You Need to Know, Adams Media Corporation; Illustrated edition,2017 [2] M. Rochard, Personal Finance QuickStart Guide, ClydeBank Media LLC, 2020 [3] B. Graham, Intelligent Investor: The Definitive Book on Value Investing, HarperBus; Rev edition, 2003 [4] A. Vasyliuk, T. Basyuk, Features of creating of employees' working hours interactive system, Proceedings of the 3nd International workshop on modern machine learning technologies and data science (MoMLeT+DS 2021). Volume 1: Main conference, Lviv- Shatsk, Ukraine, June 5-6, 2021, Vol. 2917, pp. 344–356. [5] T. Basyuk, A. Vasyliuk, Approach to a subject area ontology visualization system creating, Proceedings of the 5rd International Conference on Computational Linguistics and Intelligent Systems (COLINS-2021). Volume I: Main Conference, Kharkiv, Ukraine, April 22-23, 2021, Vol-2870: pp.528-540. [6] P. Göstl, Risk Profile Contingent Analysis of Management Control Systems: Evidence from the Mechanical Engineering Industry (Unternehmensführung & Controlling), Springer Gabler; 1st ed. 2020 edition, 2019 [7] E.Tyson, Personal Finance For Dummies, O'Reilly Media; 9th edition, 2018 [8] G.Arnold,The Financial Times Guide to Investing: The Definitive Companion to Investment and the Financial Markets (The FT Guides), FT Publishing International; 4th edition,2020 [9] Google Play Market. Apps Android in Google Play, URL. https://play.google.com/ store/search?q=personal%20finance&c=apps&hl=uk&gl=US [10] Personal Capital. Personal Finance Tool, URL. https://www.personalcapital.com/ [11] Monefy. Handy financial management tool, URL. https://monefy.me/ [12] EveryDollar: Budget Tracker, URL. https://www.ramseysolutions.com /ramseyplus/everydollar/home-b [13] D.Pilone, UML 2.0 Pocket Reference: UML Syntax and Usage, O'Reilly Media; 1st edition, 2006 [14] J. Arlow,UML 2 and the Unified Process: Practical Object-Oriented Analysis and Design (Addison-Wesley Object Technology Series), Addison-Wesley; 2nd edition, 2005 [15] S. Skidmore, Introducing Systems Development, Red Globe Press; 2003rd edition, 2003 [16] B. McLaughlin, Head First Object-Oriented Analysis and Design: A Brain Friendly Guide to OOA&D: The Best Introduction to Object Orientated Programming, O'Reilly Media; 1st edition, 2006 [17] S. Metz, Practical Object-Oriented Design: An Agile Primer Using Ruby, Addison- Wesley; 2nd edition, 2018 [18] B. Lunt, FYSOS: The Graphical User Interface (FYSOS: Operating System Design Book 6), Forever Young Software; 20160704th edition, 2018 [19] UXPin. UI Design and Prototyping Tool, URL. https://www.uxpin.com/ [20] Realm. Realm’s mobile database is an open source, URL. https://realm.io/ [21] MPAndroidChat.A powerful Android chart view, URL: https://github.com/ PhilJay/MPAndroidChart [22] K. Li, Effective GUI Testing Automation: Developing an Automated GUI Testing Tool, Sybex, 2004 [23] S. Tilley, Testing iOS Apps with HadoopUnit: Rapid Distributed GUI Testing, Morgan & Claypool Publishers, 2014