PROGRAMMATIC SOLUTIONS FOR BUSINESSES THAT HAVE MULTIPLE ACCOUNTS ПРОГРАМНІ РІШЕННЯ ДЛЯ БІЗНЕСУ, ЯКИЙ МАЄ КІЛЬКА АККАУНТІВ

. Since ancient times, people have used various types of monetary units to perform various trade transactions. A large amount of money is stored in certain computer systems. Accounting for such units is no less important than accounting for physical money, and because of this, banks are developing client applications. However, almost all client banks have one significant drawback for business users, namely the lack of a centralized place to track information on all their accounts in different banks. To make sure that a large number of people need to view accounts in different banks, it is enough to look at the statistics of the NBU (National Bank of Ukraine) and UkrStat (State Statistics Service). It is not

uncommon for entrepreneurs to open not only several accounts, but also in different banks.Which makes it difficult to keep records without some kind of system where you can see all transactions in one place.This work is devoted to the development of a software solution for a business that has several accounts.Also, this development can be used by individuals who have several accounts in different banks.This work covers some of the practical challenges that a business may face and offers one of the solutions to them by creating a desktop application that allows you to monitor multiple bank accounts in one place, providing vital data such as transaction history and recent balances, allowing you to add personal notes and store data locally on the operator's machine.Software development is carried out according to the SDLC model.

І. INTRODUCTION
Since the ancient times, at least, as far back, as the Ancient Greece, there existed some sort of business in societies.In Ancient Greece, it was craftsmanship and guilds, that produced specific products, that not everyone was able to make, and to exchange their goods with other people, money was used.
Money is a very valuable tool in any society, especiallyin our modern capitalistic world.But as the time went on, and our societies progressed, developing into modern governmental structures with control and regulations over every aspect of human life, as well as increased speed of transactions in businesses, due to the development of technologies, and overall wellbeing being far better than even a century ago, said businessmen were facing a problem.
That problem iskeeping track of their incomes, expenses and balances, that they have at their disposal.Previously, they were able to just count up their assets, like golden coins, or livestock, but as the business grows, it becomes harder and harder to keep up.At some point, the physical money became less frequently used, and bank checks and other means were used in business-to-business interactions, and this made tracking of money more difficult, since you now had to account for more types of "Money", or wealth.This all leads us to current days, when many businesses use some sort of banking account, acquiring, ecommerce and so on.Some companies may not even have a cent in physical money, and all their wealth is stored in various banks, in a safe and 24/7 accessible place, that allows you to send and receive funds with ease.So, what problems businessmen nowadays may even have?
The biggest problem is access to all of this information from a single place, with the possibility to share it with managers on accountants, that may require such details to process customer's requests.
And this is where this paper comes into play.If we somehow could solve this problem, we'd increase the productiveness of businesses, and provide a possibility to increase customers satisfaction as the result.
Let us take a more in-depth look into the problem in the next section.

II. LITERATURE ANALYSIS
This section will analyze the problems at hand, take a look at statistical data, and come up with steps to fix, or at the very least, make said problems less prominent.
It is worth mentioning that in this paper we will be looking at the Ukrainian market, since this is where the paper's team is located at, and it's a good place to start, due to what the Ukrainian market is, as will be explained later on.

Analyzing the market
If we take a look at data from the National Bank of Ukraine and National Service of Statistics of Ukraine (Ukrstat), we can see that there are about 2.9 million business clients in banks of Ukraine, and 1.956 million active businesses, at the beginning of year 2022 (newer data is not yet available, probably due to the ongoing invasion into Ukraine's territory).From this, we can conclude that every business makes 1.48 bank clients.[1] [2] This means that every other business in Ukraine has at least 2 accounts, more specific research and inquiries are required to be more specific, but we can use other data from those infographics to also conclude that every business has 2.86 accounts in banks, regardless of the fact if they are in the same bank, or in different ones.
Having this data, we can be rest assured, that, at the very least, there are businesses that may be experiencing some issues, while working with multiple banks.

Analyzing the problem of having multiple banking accounts
As we can seesome businesses, have multiple banking accounts, and working with multiple accounts, even in one bank, is no trivial task.As an accountantyou have to make sure that every transaction has gone into the right account, and when you are making financial reports, you have to make sure to properly combine data from two sources, otherwise you might be at risk of being called out on committing tax fraud.
And when a company decides to use multiple banks, they are making this work even harder.The main issue is, of course, that there's no centralized source of information, like, for exampleone application in which you can add multiple accounts.This causes you, as a manager, or an accountant to use multiple applications, sites, or some other form of program to access information.This causes operators to be distracted, frustrated, their computers get cluttered with different sites, or applications, and the information is now distributed across multiple sources, this may slow down search and confirmation of payment, for example.
Those problems are a great start for some requirements for the software (so called SRS, Software Requirements Specification).For examplewe can say that the software has to provide the following Starting from PrivatBank.They provide API for legal entities and private entrepreneurs, and Autoclient application for desktop "Автоклієнт".[3] Autoclient application, is basically a wrapper for API, so we can just take a look at the API, to find out, what is possible for a client of PrivatBank service.We can see that it's possible to fetch data for as many accounts, as we have the keys for.But only for PrivatBank.
Monobank's API provides functionality to get information about accounts, for bothregular users (even non-business accounts), and for businesses.This is great for tracking personal expenses, but it also doesn't allow us to get data from different banks.[4] This means that those banks do not provide one API for all banks, neither does the National Bank of Ukraine (NBU), and from this, we can only conclude that there is no universal aggregation service, even just for Ukraine.[5] But, since API documentation is public for said banks, as well as some other (for example -A-Bank), this means that it's theoretically possible to create an application, that allows to fulfil requirements we have outlined in section 2.2.

III. OBJECT, SUBJECT, AND METHODS OF RESEARCH
The object of research of this paper is a solution to some problems of workers of companies, that use multiple banking services, or accounts, with which workers have to interact.
The subject of research is difficulties themselves, that we have outlined in section 2 of this paper.Methods of research include: software development (as the main tool for solving the problems at hand), analysis of workers' routines and of available tools to solve them.
IV. RESULTS

Creation of the application
Creating some application is a complicated process.After specifying the requirements, software engineers, like building engineers, have to create a "Plan" of the construction.In software development, this plan is called the architecture.
Architecture describes how the system will be built, or how it was built.It has to be precise, and verbose, specifying the technological stack of the application.For examplewhich programming languages and frameworks will be used to create the product.Summarize how it operates, describing the flow of data, some complex workflows, etc.
To develop this application, we used the following languages: C#, XAML, JSON.During the development of the application, we used WinUI 3 SDK (Software Development Kit) made by Microsoft, which allows us to create native Windows applications.[6] To describe the architecture, we have to use diagrams.In figure 1 you can see how the app works in general.The application is composed of UI elements, processing logic (not shown on the diagram), and a database.The user is interacting with the application, and the operating system (OS) reports actions to the app.The app itself also makes external requests (blue section) to banking services, to fetch and store data from them (like balances, transactions history, etc.).Let us also introduce some information on how the app is made.Architecture can only say so much about the product, and it's the developer's job to make concrete solutions (code) from those "blueprints".
The application is based on the MVVM, a pattern which stands for Model-View-ViewModel.And basically, means that every View, visual element of the app, for example: a page, a transaction record, is related to a ViewModel, the intermediary object, that combines a Model and a View, and the Model itselfthe data, represented by some object in the program.[7] For example -let's take a look at how the Accounts page looks and works.As a user, we get to see a page with a button to add a new account, a list of accounts, and for each account we have a set of actions (Edit, Delete).In the program, however, we have to decompose our application.
More complicated relations of Views Models and ViewModels are difficult to express without some visual aid, so on the figure 3 you can see their connections in the application.

Fig. 3 -A schematic overview of how the app operates Рис. 3 -Схематичний огляд роботи програми
In the application, there are also things that user cannot see, but that are crucial to the operation of the app.In our case, it's the scheduler that fetches data from banking services, and updates the database, and in turnthe content of the Views.Showing this visually would be of no benefit, so, let us instead show the code, which makes this happen.
In the current form, it works as shown in figures 4 and 5.

Fig. 4 -Setting up the application Рис. 4 -Налаштування програми
This setup is required, since without it, the timer would have to be run by the user.By running a timer in the App class initialization method, we ensure the operation of it, so, user won't be frustrated because they forgot to start the fetch scheduler.
But to entirely comprehend how this code works, we have to look at figure 5, which shows and explains the code of the UpdateTransactions method.
In layman's terms, this code goes through all the accounts, and asks the banking service "Do you have some new transactions", by sending a request (or a series of requests), if there are some new transactionsit stores them to the database, thenupdates the balance, if required, and exists.Deployment steps for this product include: creating a release, pushing the package file to GitHub; User has to download the package, install it and run the application.
On the repository page, there exists a "Releases" section, in which you can find different versions of the application.For example -RC 3 (Release Candidate 3), in this releaseyou can get all the required files and the source code of the project at the moment of release.[8] As a user -updating is a simple process of getting a newer (or older) version of a program, and hitting "Update" (or "Reinstall") in the newly opened window.See figure 6.In conclusionwe can say that technologies always push humanity forward, providing new opportunities, better quality of life and other benefits, but with themcome difficulties, however, we can resolve those difficulties by creating newer products, or technologies.
In this concrete examplewe have created an application that can help small businesses thrive, since their workers will be relieved in one aspect of their workkeeping up with incoming and outgoing transactions.
By using GitHub as bothdevelopment, distribution and communication platform, we can improve the imperfections of this product, and make it even better for everyone using it.
functionality: -Ability to add multiple accounts; -Ability to add accounts from different banking services; -Ability to get Balances and Transactions history; -Ability to view said information for all accounts, or per account (a.k.a.filtering); -Ability to search in history of transactions, by comment/description of payment, account, and date time of transaction; -Ability to search in balances by date and account; 2.3.Analyzing the banking services Let us analyze what banking services currently provider their customers with.For examplewe can analyze PrivatBank and Monobank services, to see, if businesses have some tools for multi-account, and multi-banking.

Fig 1 .
Fig 1.The overall architecture Рис 1. Загальна архітектура On figure 2 you can see the structure of the database, shown as a mind map.Colors indicate to which database does this field reference.For examplein the Transaction Comments table there are two colored fields -Transaction ID and Comment ID, this means that it contains reference from two tables -Comments and Transactions, creating a Many-To-Many connection between the two.

Fig. 5 - 5 -Демонстрація та пояснення UpdateTransactions 4 . 2
Fig. 5 -Showcase and explanation of UpdateTransactions Рис. 5 -Демонстрація та пояснення UpdateTransactions 4.2 Deployment of the product Deploying the product means making it available to the end user, in a way they can use it.Deployment steps for this product include: creating a release, pushing the package file to GitHub; User has to download the package, install it and run the application.On the repository page, there exists a "Releases" section, in which you can find different versions of the application.For example -RC 3 (Release Candidate 3), in this releaseyou can get all the required files and the source code of the project at the moment of release.[8]As a user -updating is a simple process of getting a newer (or older) version of a program, and hitting "Update" (or "Reinstall") in the newly opened window.See figure6.

Fig. 6 -
Fig. 6 -App Installer window, allowing user to update the app Рис.6 -Вікно інсталятора програми, що дозволяє користувачеві оновлювати програмуAfter installing, or updating the appusers are free to explore it, for example by opening the Help section of the app they can find out how to use the app with the banking service they use.You can see how the help section looks for Monobank in figure7.