Development of software for accounting and analysis of dynamics of personal funds movement
- Authors: Butkina A.A., Kadantsev A.A., Shamaev A.V.
- Issue: Vol 10, No 14 (2022)
- Section: Статьи
- Submitted: 12.12.2024
- Accepted: 12.12.2024
- URL: https://ogarev-online.ru/2311-2468/article/view/272935
- ID: 272935
Cite item
Full Text
Abstract
The article describes the software developed by the authors, designed for accounting and analysis of the dynamics of personal funds movement. It is a web application developed in JavaScript and PHP, expands and extends the functionality of existing analogues.
Keywords
Full Text
Введение. Данное исследование посвящено разработке программного обеспечения для персонального учёта и анализа динамики движения денежных средств физического лица являющегося обладателем банковских счетов и кредитных карт, которое расширяет и дополняет функционал существующих аналогичных систем. Актуальность исследования заключается в том, что разработанная в результате программная система позволит её пользователям сократить количество типичных ошибок при использовании кредитной карты, и тем самым минимизировать их финансовые риски при работе с кредитными картами, в особенности с картами, имеющими льготный период погашения задолженности.
Для достижения указанной цели были поставлены и решены следующие задачи:
- выполнить анализ предметной области;
- исследовать аналоги разрабатываемой программно-информационной системы;
- выполнить анализ и выбор инструментов разработки;
- выполнить концептуальное проектирование;
- выполнить проектирование интерфейса пользователя системы;
- реализовать программное обеспечение на выбранных языках программирования;
- выполнить проверку работоспособности созданного программного обеспечения.
Анализ предметной области. Первоочередным вопросом, вставшим перед авторами, являлся выбор формы реализации разрабатываемого программного обеспечения. В связи с высокой популярностью и распространенностью мобильных устройств, необходимо было сделать выбор между разработкой отдельного мобильного приложения и веб-приложения, способного работать на любом устройстве, на котором может быть запущен веб-браузер. В одном из проанализированных в работе источников [1] был проведен сравнительный анализ параметров их разработки, результаты которого представлены в таблице 1.
Таблица 1. Обзор параметров разработки веб и мобильного приложения
Параметры | Веб-приложение | Мобильное приложение |
Масштаб | Возможность одновременного использования большим количеством пользователей | 7-10 человек |
Зависимость от ОС | Работает на любой платформе, где можно быть запущен веб-браузер | Создаются на базе ОС Android, iOS. Для создания приложения используются разные языки программирования |
Зависимость от сети | Для работы необходим веб-браузер и наличие доступа в сеть Интернет, что может потребовать дополнительных затрат. Не работает в режиме офлайн. Необходимо следить за расходуемым трафиком | Не зависит от сети (если только не требуется подключить дополнительные возможности). Работает в режиме офлайн после установки приложения |
Доступ к хранилищу устройств | Требуют наличия определенных прав доступа к хранилищу при установке | Обеспечивают доступ |
Привлечение аудитории | Чтобы веб-приложение было успешным, часто необходимо вкладывать значительные средства в его продвижение. | Достаточно разработать удобное приложение, чтобы пользователи магазина приложений могли выбрать его из числа доступных. Устанавливается постоянный контакт с пользователями с помощью рассылок, сообщений о скидках и акциях. Пользователи могут оставить негативные отзывы о работе приложения, что повлияет на выбор других пользователей |
Память | Не требуют установки на мобильном устройстве пользователя | Устанавливается на мобильное устройство пользователя непосредственно из магазина приложений (Google Play, App Store), требует наличия определенного объема свободной памяти на устройстве |
Функционал | Простой, удобный. Меньше времени и затрат на разработку | Сложный, с множеством функций, удобный в использовании, более качественный для пользователя (при схожем функционале). Больше времени и затрат на разработку. Является дополнением к веб-приложению |
Обновление | Обновление приложения происходит автоматически на сайте и доступно пользователям в любое время | При изменении дизайна, внесении новых функций, новую версию нужно заново скачать из магазина приложений |
Оплата | Необходимость внесения ежемесячной оплаты за работу с приложением или, в зависимости от объема доступных операций. Приложение может предоставляться бесплатно, а доступ к дополнительным премиум-функциям может быть предоставлен за отдельную плату. Разработка обходится дешевле | Меньше расходов на продвижение приложения в связи с тем, что магазины приложений посещают целевые пользователи, которые могут ознакомиться с отзывами и выбрать оптимальное приложение. Отсутствуют затраты на поисковую оптимизацию |
На основе анализа приведенной в таблице 1 информации был сделан вывод о том, что в рамках данного исследования будет выполнена разработка программного обеспечения в форме веб-приложения, так как оно обладает следующими преимуществами:
- Отсутствие требований к операционным системам пользователей. Веб-приложения нетребовательны к ресурсам и не предъявляют никаких требований к аппаратной платформе;
- Возможность адаптации интерфейса приложения к работе на разных устройствах. Инструменты разработки клиентской части веб-приложений позволяют адаптировать интерфейс для его корректного отображения на разных типах устройств;
- Отсутствие необходимости выполнять обновления на стороне пользователя.
Обновление приложения происходит автоматически;
- Требует меньший объем ресурсов для разработки.
Анализ аналогов. Разрабатываемое веб-приложение позволит его пользователям выполнять следующие действия: контролировать свои денежные потоки, прогнозировать расходы, воздерживаться от чрезмерных трат, наглядно отслеживать, на что были потрачены и откуда поступили денежные средства, делать накопления, и как следствие, улучшать своё финансовое состояние. Поэтому у разрабатываемой системы существуют следующие известные аналоги: «CoinKeeper» [2], «Дзен мани» [3] и «Money Lover» [4]. Основные результаты проведенного авторами сравнительного анализа перечисленных выше систем приведены в таблице 2.
Таблица 2.
Сравнение рассматриваемых аналогов системы
Функция | CoinKeeper | Дзен Мани | Money Lover |
Интерфейс | |||
Локализация | Полная | Полная | Частичная |
Безопасность | |||
Многофакторная авторизация | – | – | – |
Резервное копирование в нескольких местах | – | – | – |
Хранение информации на собственном сервере | + | + | + |
Личные финансы | |||
Условия использования веб-версии | Условно- бесплатное | Условно- бесплатное | Только платная версия |
Отображение данных в графической форме | + | + | + |
Анализ расходов | + | + | + |
Отчёты | Некоторые отчеты доступны только в платной версии | Некоторые отчеты доступны только в платной версии | + |
Поддержка валют | + | + | + |
Постановка целей | – | – | – |
Планирование финансов | В платной версии | + | + |
Поддержка электронных систем расчётов | + | – | – |
Повторы операций | + | + | – |
Напоминания о платежах | + | + | + |
Экспорт / импорт данных | В платной версии | + | В платной версии |
Контроль и ограничение расходов | + | + | – |
Возможность прикреплять заметки | + | + | – |
Напоминание о долгах | + | + | – |
Таким образом, анализ существующих аналогов показывает, что абсолютно все рассмотренные веб-приложения содержат следующие возможности:
- семейный доступ;
- поддержка нескольких валют;
- упоминания и заметки.
Веб-приложение «CoinKeeper» предусматривает полнофункциональную платную версию, которая реализует все преимущества данной системы. Веб-приложение «Дзен мани» воплотило в себе все достоинства, кроме возможности прикрепления заметок. Веб-приложение «Money Lover» имеет множество недостатков и значительно уступает остальным приложениям по функционалу.
Многие разработчики приложений для персонального учета финансов уделяют больше внимания дизайну приложения, забывая о его функциональных возможностях. Первое впечатление о приложение у большинства его пользователей складывается на основе его дизайна, однако как показывает практика использования приложений, впоследствии они обнаруживают, что выбранное ими приложение не оправдывает их ожиданий с точки зрения реализуемого функционала и перестают им пользоваться.
Поэтому хорошее приложение для персонального учета и анализа финансов (равно как и любое другое) требует соблюдения баланса между дизайном и функционалом.
Технологии реализации. Так как разрабатываемое приложение включает клиентскую (frontend) и серверные (backend) части, далее опишем инструменты, применяемые при разработке этих частей.
При разработке frontend части веб-приложения используются:
- стандартный язык разметки документов в Интернет HTML;
- каскадные таблицы стилей (CSS);
- JavaScript-библиотека React для создания пользовательских интерфейсов;
- JavaScript библиотека Redux для управления состоянием приложения;
- Chart.JS – JavaScript-библиотека визуализации данных;
- Toastify – библиотека для отображения уведомлений с настраиваемым текстом.
При разработке backend части веб-приложения используются скриптовый язык программирования PHP и система управления базами данных (СУБД) MySQL.
Также в ходе исследования применялись:
- методология Unified Process;
- архитектурный паттерн MVC;
- архитектурный стиль взаимодействия компонентов распределенного приложения (REST).
Проектирование. Эффективность любого приложения, использующего в своей работе базу данных, зависит от того, насколько оптимально спроектирована ее схема. Она напрямую влияет на такие характеристики, как общая архитектура системы, набор классов, скорость обработки данных и удобство обращения к хранилищу.
Поскольку создаваемое веб–приложение предназначено для осуществления персонального учета и анализа финансов его пользователей, то используемая в нём база данных (БД) должна хранить информацию о счетах и транзакциях каждого пользователя. Чтобы реализовать такую БД, необходимо определить входные и выходные данные, которыми должна оперировать система. Для начала определим, что будем понимать под термином «входная информация». Входная информация – это данные, которые поступают в систему извне. Для исследуемого бизнес–процесса в качестве входных данных выступает приведённый ниже набор вводимых пользователем сведений:
- Логин, в качестве которого используется адрес электронной почты, и пароль для авторизации в системе;
- Типы счетов пользователя: счета для учета имеющихся у пользователя на руках наличных средств; банковские (в том числе депозитные, накопительные и прочие) счета; счета кредитных или дебетовых карт;
- Информация о счете: банк, в котором открыт счет; процентная ставка кредитования; процент на остаток для счетов с накоплением.
- Данные по картам с беспроцентным периодом: максимальная продолжительность беспроцентного периода; продолжительность периода отсутствия выдачи уведомлений о досрочном погашении задолженности в рамках беспроцентного периода; размер лимита кредитования; размер определяемого пользователем лимита на объём используемых кредитных средств для выдачи предупреждения о его превышении.
- Первоначальный объем средств на счетах пользователя;
- История транзакций;
- Категория транзакции (при её добавлении);
- Комментарии к транзакциям.
В процессе разработки веб-приложения была спроектирована схема базы данных, состоящая из 11 таблиц (рис. 1). Теперь опишем взаимосвязи между таблицами, которые продемонстрированы на Ошибка! Источник ссылки не найден.. Ошибка! Источник
ссылки не найден.«User» связана отношением «один-ко-многим» по полю «userID» с Ошибка! Источник ссылки не найден.«Cash», «Card», «CreditCard», «bankAccount», «deposit» и «transaction». Ошибка! Источник ссылки не найден.«CreditCard» связана отношением «один-к-одному» по полю «paymentID» с Ошибка! Источник ссылки не найден. «paymentCreditCard». Ошибка! Источник ссылки не найден.«transaction» связана с Ошибка! Источник ссылки не найден.«comments» отношением «один-к-одному» по полю «commentID».
Рис. 1. Схема БД разработанного веб-приложения.
Выходная (результативная) информация – это информация, генерируемая на выходе системы. Основной выходной информацией в разрабатываемой системе являются следующие списки и отчёты: «Список счетов пользователя», «Список транзакций пользователя» и «Отчет о текущих расходах и доходах за месяц».
Система должна отображать информацию о списке счетов пользователя, сформированную на основе Ошибка! Источник ссылки не найден.«Cash», «Card», «CreditCard», «bankAccount» и «deposit». Система должна отображать информацию о списке транзакций пользователя на основе Ошибка! Источник ссылки не найден.«transaction».
Отчет о текущих расходах и доходах за месяц должен показывать избыточные расходы (перерасход) пользователя на основе анализа соотношения сумм всех его расходов и доходов за этот период.
Реализация приложения. Опишем алгоритм работы системы уведомлений пользователя, реализованный в разработанной системе, с помощью диаграммы деятельности (рис. 2). Для того чтобы пользователь системы, являющийся владельцем кредитной карты с беспроцентным периодом, смог получать уведомления о превышении его бюджета и приближении даты окончания указанного периода, он должен при создании или редактировании параметров счета карты установить флажок в поле «Беспроцентный период», что приведет к необходимости заполнения совокупности следующих полей для ввода числовых данных:
- сумма расходов, которую пользователь не хотел бы превысить (необязательно);
- максимальная длительность беспроцентного периода (в днях);
- день месяца, в который происходит формирование банковской выписки о состоянии текущей задолженности (целое число, от 1 до 31);
- количество дней, остающихся до окончания срока действия текущего беспроцентного периода (по умолчанию – 3 дня).
Рис. 2. Диаграмма деятельности.
Запуск алгоритма работы системы уведомлений пользователю происходит при совершении пользователем расходной транзакции по данному счету. В случае, если при совершении очередной (расходной) транзакции в систему сумма на счете станет отрицательной, система должна будет автоматически произвести расчет ближайшей даты выдачи уведомления и даты окончания беспроцентного периода по карте на основе указанных выше данных и выполнить добавление этой информации в БД. Если же в результате совершения очередной (приходной) транзакции сумма на счете вновь станет положительной, выдача уведомлений будет отменена до следующего момента получения отрицательного значения суммы на счете. Таким образом, при наступлении ближайшей даты, в которую система должна отправить уведомление, на экране пользователя при его входе в систему должно отобразиться окно с соответствующим сообщением (рис. 3), содержимое которого также будет продублировано в тексте письма, отправленного на его электронную почту в этот же день.
Рис. 3. Примеры уведомлений пользователя.
После успешной авторизации пользователя в системе, он должен будет добавить хотя бы один счет на странице «Счета» (рис. 4). После добавление счетов, участвующих в персональном денежном обороте, пользователь может перейти к добавлению транзакций. Для этого ему необходимо перейти на страницу «Транзакции» (рис. 5) и нажать на кнопку, соответствующую виду транзакции: «расход», «доход» или «перевод». Также в системе пользователь имеет возможность просмотреть график, отражающий изменение баланса его средств за последние 30 дней, а также распределение расходов по категориям и отчет по движению средств за текущий месяц с помощью страницы «Обзор» (рис. 6).
Также, в разработанном веб-приложении пользователям доступен персональный советник по управлению финансами, который находится на странице «Советник». В частности, в текущей версии помощника реализован инструмент, выполняющий анализ расходов пользователей, результатом которого является получение средних значений расходов в каждой из предусмотренных в приложении категорий за последние полгода. Результатом данного анализа является выдача пользователю индивидуальных рекомендаций по формированию финансового резерва на случай возникновения непредвиденных жизненных ситуаций, иначе называемого «финансовой подушкой». Пример того, как может выглядеть подобная рекомендация, приведен на рисунке 7.
Рис. 4. Страница «Счета».
Рис. 5. Страница «Транзакции».
Рис. 6. Страница «Обзор».
Рис. 7. Страница «Советник».
Заключение. Все задачи, поставленные в рамках данного исследования, были решены. Результатом работы является разработанное веб-приложение, предназначенное для персонального учёта и анализа динамики движения денежных средств физического лица, функционал которого, в отличие от аналогичных систем, помимо стандартных включает следующие возможности:
- отправка пользователю системы, являющемуся владельцем кредитной карты с беспроцентным периодом, уведомлений о превышении его бюджета и приближении даты окончания указанного периода;
- наличие помощника по управлению финансовыми активами пользователя.
Практическая ценность работы состоит в том, что разработанное в результате её выполнения веб-приложение позволит его пользователям минимизировать финансовые риски при работе с кредитными картами, в том числе с картами, имеющими льготный период погашения задолженности.
About the authors
A. A. Butkina
Author for correspondence.
Email: ogarevonline@yandex.ru
Russian Federation
A. A. Kadantsev
Email: ogarevonline@yandex.ru
Russian Federation
A. V. Shamaev
Email: ogarevonline@yandex.ru
Russian Federation
References
- Панченко Н. В. Особенности разработки веб-приложений и мобильных приложений // Тенденции развития науки и образования. – 2019. – № 57-2. – С. 24–26.
- CoinKeeper: учет расходов и доходов, бюджет семьи, личные финансы [Электронный ресурс]. – Режим доступа: https://about.coinkeeper.me/ (дата обращения: 09.04.2022).
- Дзен-мани: онлайн управление личными деньгами, планирование и учет личных финансов [Электронный ресурс]. – 2010. – Режим доступа: https://zenmoney.ru/ (дата обращения: 09.04.2022).
- Money Lover: No.1 Expense Manager Budget Planner [Электронный ресурс]. – Режим доступа: https://moneylover.me/ (дата обращения: 09.04.2022).
Supplementary files
