Please use this identifier to cite or link to this item: https://er.chdtu.edu.ua/handle/ChSTU/7349
Full metadata record
DC FieldValueLanguage
dc.contributor.advisorБАБЕНКО, Віра-
dc.contributor.authorОСТАПЕЦЬ, Володимир-
dc.date.accessioned2026-03-09T19:59:07Z-
dc.date.available2026-03-09T19:59:07Z-
dc.date.issued2024-
dc.identifier.urihttps://er.chdtu.edu.ua/handle/ChSTU/7349-
dc.description.abstractМетою виконання даної кваліфікаційної роботи на здобуття освітнього ступеня «бакалавр» є автоматизована система менеджменту банківських рахунків. Загальний обсяг роботи становить 78 сторінок. У роботі7 рисунків. Для виконання роботи використано 21 літературних джерел. Розробка такої системи передбачає створення інтерфейсу, який дає можливість користувачам управляти різними фінансовими ресурсами в одному місці без необхідності входу в окремі банківські акаунти. Дозволить клієнтам ефективно управляти своїми фінансами, зберігаючи при цьому високий рівень зручності та безпеки. Стислий опис розділів випускної кваліфікаційної роботи бакалавра складається з аналізу предметної області та постановки задачі; вибору технологій та інструментальних засобів; опису розробки автоматизованої системи менеджменту банківських рахунків та пропозицій щодо організації її захисту.uk_UA
dc.subjectАВТОМАТИЗОВАНА СИСТЕМАuk_UA
dc.subjectБАНКІВСЬКИЙ РАХУНОКuk_UA
dc.subjectБАЗА ДАНИХuk_UA
dc.subjectWEB-ДОДАТОКuk_UA
dc.subjectAPIuk_UA
dc.subjectRESTFULLAPIuk_UA
dc.subjectPWA (PROGRESSIVEWEBAPP)uk_UA
dc.subjectЗАХИСТ ІНФОРМАЦІЇuk_UA
dc.titleАвтоматизована система менеджменту банківських рахунківuk_UA
dc.typeBachelor Thesisuk_UA
Appears in Collections:123 Комп’ютерна інженерія (Комп'ютерні системи та мережі)

Files in This Item:
File Description SizeFormat 
1_ТИТУЛКА_Остапець-merged.pdf
  Restricted Access
1.54 MBAdobe PDFView/Open Request a copy


Items in DSpace are protected by copyright, with all rights reserved, unless otherwise indicated.

Extracted text
МІНІСТЕРСТВО ОСВІТИ І НАУКИ УКРАЇНИ
ЧЕРКАСЬКИЙ ДЕРЖАВНИЙ ТЕХНОЛОГІЧНИЙ УНІВЕРСИТЕТ
ФАКУЛЬТЕТ ІНФОРМАЦІЙНИХ ТЕХНОЛОГІЙ І СИСТЕМ
КАФЕДРА ІНФОРМАЦІЙНОЇ БЕЗПЕКИ ТА КОМП’ЮТЕРНОЇ ІНЖЕНЕРІЇ
ПОЯСНЮВАЛЬНА ЗАПИСКА
до кваліфікаційної роботи бакалавра
на тему: «Автоматизована система менеджменту
банківських рахунків»
ЧДТУ.241354.005 ПЗ
Виконав: студент 4 курсу, групи КМ-2005
спеціальності 123 – «Комп’ютерна інженерія»
за освітньою програмою – «Комп’ютерні системи
та мережі»
Володимир ОСТАПЕЦЬ
Керівник
д.т.н., професор
Віра БАБЕНКО
Рецензент
начальник відділу персоналу Черкаського
інституту пожежної безпеки імені Героїв
Чорнобиля НУЦЗ України, к.т.н., доцент
Віталій ЗАЖОМА
«ЗАХИСТ ДОЗВОЛЯЮ»
Завідувач кафедри ІБ та КІ
д.т.н., професор ___________ Віра БАБЕНКО
Черкаси 2024 року
Форма № Н-9.01
ЧЕРКАСЬКИЙ ДЕРЖАВНИЙ ТЕХНОЛОГІЧНИЙ УНІВЕРСИТЕТ
Факультет: інформаційних технологій і систем
Кафедра: інформаційної безпеки та комп’ютерної інженерії
Освітньо-кваліфікаційний рівень: Бакалавр
Спеціальність 123 – Комп’ютерна інженерія
Освітня програма Комп’ютерні системи та мережі
«ЗАТВЕРДЖУЮ»
Завідувач кафедри ІБ та КІ
д.т.н., професор _____________ Віра БАБЕНКО
«28» березня 2024 року
ЗАВДАННЯ
на кваліфікаційну роботу бакалавра студенту
Остапцю Володимиру Олександровичу
(прізвище, ім‘я, по батькові)
1. Тема роботи: Автоматизована система менеджменту банківських рахунків
Керівник роботи: д.т.н., професор Бабенко Віра Григорівна
(прізвище, ім’я, по батькові, науковий ступінь, вчене звання)
затверджені наказом університету від «27» березня 2024 р. № 60/04
2. Строк подання студентом роботи:
3. Вихідні дані до роботи:
Автоматизована система;банківський рахунок;
WEB-додаток; serverless технологія: AWS Lambda;JavaScript.
Архітектура веб-сервісу: Rest FULLAPI, PWA (Progressivewebapp).
4. Зміст розрахунково-пояснювальної записки (перелік питань, що їх належить розробити):
Вступ
1. Аналіз предметної області та постановка задачі
2. Вибір технологій та інструментальних засобів
3. Розробка автоматизованої системи менеджменту банківських рахунків
4. Захист автоматизованої системи
Висновки
Список використаних джерел. Додатки
5. Перелік графічного матеріалу (з точним зазначенням обов’язкових креслень, плакатів):
1. Додаток А Специфікація
2. Додаток Б Текст програм
3. Додаток В Інструкція користувача
6. Консультанти розділів роботи:
Розділ Прізвище, ініціали Підпис, дата
консультанта завдання видав завдання прийняв
7. Дата видачі завдання: 28 березня 2024 року
КАЛЕНДАРНИЙ ПЛАН
Термін
№ з/п Назва етапів роботи виконання Примітка
етапів роботи
1 Збір матеріалу 01.03 – 14.03 виконано
2 Обробка матеріалу 15.03 – 20.03 виконано
3 Обґрунтування актуальності тематики ВКР 21.03 - 25.03 виконано
4 Оцінка стану проблеми, виокремлення проблемних виконано
задач, постановка задачі розробки 26.03 – 01.04
5 Виклад сутності і результатів розробки 03.04 - 08.04 виконано
6 Практичне застосування результатів розробки ВКР 09.04 - 27.04 виконано
7 Оформлення результатів в пояснювальну записку 28.04 - 14.05 виконано
8 Подання роботи на відгук та рецензування 15.05 - 25.05 виконано
Студент ___________________________ Володимир ОСТАПЕЦЬ
(підпис)
Керівник роботи ___________________________ Віра БАБЕНКО
(підпис)
АНОТАЦІЯ
Метою виконання даної кваліфікаційної роботи на здобуття освітнього
ступеня «бакалавр» є автоматизована система менеджменту банківських
рахунків.
Загальний обсяг роботи становить 78 сторінок. У роботі7 рисунків. Для
виконання роботи використано 21 літературних джерел.
Розробка такої системи передбачає створення інтерфейсу, який дає
можливість користувачам управляти різними фінансовими ресурсами в одному
місці без необхідності входу в окремі банківські акаунти. Дозволить клієнтам
ефективно управляти своїми фінансами, зберігаючи при цьому високий рівень
зручності та безпеки.
Стислий опис розділів випускної кваліфікаційної роботи бакалавра
складається з аналізу предметної області та постановки задачі; вибору
технологій та інструментальних засобів; опису розробки автоматизованої
системи менеджменту банківських рахунків та пропозицій щодо організації її
захисту.
Ключові слова: АВТОМАТИЗОВАНА СИСТЕМА, БАНКІВСЬКИЙ
РАХУНОК, БАЗА ДАНИХ, WEB-ДОДАТОК, API, RESTFULLAPI , PWA
(PROGRESSIVEWEBAPP), ЗАХИСТ ІНФОРМАЦІЇ
ANOTATION
The purpose of this qualifying work for obtaining the bachelor's degree is an
automated bank account management system.
The total volume of work is 78 pages. There are 7 drawings in the work. 21
literary sources were used to perform the work.
The development of such a system involves the creation of an interface that
enables users to manage various financial resources in one place without the need to
log into separate bank accounts. It will allow customers to effectively manage their
finances, while maintaining a high level of convenience and security.
A concise description of the sections of the bachelor's final qualification work
consists of an analysis of the subject area and a statement of the problem; selection of
technologies and tools; description of the development of an automated bank account
management system and proposals for organizing its protection.
Key words: AUTOMATED SYSTEM, BANKACCOUNT, DATABASE,
WEB-APPLICATION, API, RESTFULLAPI, PWA (PROGRESSIVEWEBAPP),
INFORMATION PROTECTION
ЗМІСТ
ВСТУП..................................................................................................................... 4
1 АНАЛІЗ ПРЕДМЕТНОЇ ОБЛАСТІ ТА ПОСТАНОВКА ЗАДАЧІ..................7
1.1 Аналіз існуючих систем ................................................................ 7
1.2 Постановка задачі.........................................................................13
1.3 Висновки до розділу 1 .................................................................14
2 ВИБІР ТЕХНОЛОГІЇ ТА ІНСТРУМЕНТАЛЬНИХ ЗАСОБІВ РОЗРОБКИ
СИСТЕМИ............................................................................................................. 16
2.1 Огляд існуючих технологій.........................................................16
2.2 Обґрунтування вибору.................................................................21
2.3 Висновки до розділу 2 .................................................................27
3 РОЗРОБКА АВТОМАТИЗОВАНОЇ СИСТЕМИ МЕНЕДЖМЕНТУ
БАНКІВСЬКИХ РАХУНКІВ............................................................................... 28
3.1 Структура системи.......................................................................28
3.2 Опис функцій системи.................................................................33
3.3 Технічні вимоги для роботи з системою....................................38
3.4 Оцінка ефективності....................................................................41
3.5 Висновки до розділу 3 .................................................................43
4 ЗАХИСТ АВТОМАТИЗОВАНОЇ СИСТЕМИ................................................ 45
4.1 Огляд існуючих рішень...............................................................45
4.2 Реалізація захисту даних користувачів......................................49
4.3 Висновки до розділу 4 .................................................................54
ВИСНОВКИ...........................................................................................................55
ЧДТУ.241354.005 ПЗ
Змн. Арк. № докум. Підпис Дат
РозрКобив Остапець В.О. а Літ. Лист Листів
Керівник Бабенко В.Г. Автоматизована 2 78
Рецеанзент Зажома В.М.. система менеджменту
Н.Контроль Гресько С.О. банківських рахунків Кафедра ІБ та КІ
Затвфердив Бабенко В.Г. Пояснювальна записка гр. КМ-2005
е
д
р
а
К
К
-
0
6
ДОДАТКИ:
А – 482.ЧДТУ.41354-01 Автоматизована система менеджменту
банківських рахунків
СПИСОК ВИКОРИСТАНИХ ДЖЕРЕЛ.............................................................77
Лист
ЧДТУ.241354.005 ПЗ т
Зм. Лист № докум. Підпис Дат 3
а
ВСТУП
Актуальність теми. Автоматизована система управління банківськими
рахунками залишається надзвичайно актуальною в сучасному світі фінансів
завдяки своїй зручності, ефективності та безпеці. Забезпечуючи швидкий
доступ до різних фінансових операцій і послуг, таких як перекази коштів,
оплата рахунків та керування фінансовими активами, ці системи дозволяють
клієнтам банків економити час і зусилля, забезпечуючи високий рівень
захисту їхніх фінансових даних. Постійне вдосконалення та інновації в цій
області, такі як мобільні додатки та використання штучного інтелекту,
сприяють зростанню функціональності та доступності фінансових послуг,
роблячи їх ще більш зручними для користувачів.
Аналогом автоматизованої системи управління банківськими
рахунками може бути система електронного банкінгу, онлайн-банкінгу або
мобільний додаток банку. Ці системи також надають можливість клієнтам
здійснювати фінансові операції через Інтернет або мобільні пристрої,
включаючи перекази коштів, оплату рахунків та керування фінансовими
активами. Вони також забезпечують високий рівень безпеки та зручності, що
робить їх популярними серед користувачів банківських послуг.
Іншим аналогом може бути інтегрована фінансова платформа, яка
об'єднує в собі не лише управління банківськими рахунками, а й інші
фінансові сервіси, такі як інвестиції, кредитування, страхування тощо. Ці
платформи надають клієнтам зручну і одноразову точку доступу до всього
спектру фінансових послуг, сприяючи комплексному керуванню їхніми
фінансами та інвестиціями.
Виходячи з вищесказаного, можна зробити висновок, що дана тема
–автоматизована система управління банківськими рахунками, є актуальною.
Лист
ЧДТУ.241354.005 ПЗ т
Зм. Лист № докум. Підпис Дат 4
а
Метою кваліфікаційної роботи є створення комплексного та
ефективного інструменту для автоматизованого віддаленого управління
банківськими рахунками. Ця система спрямована на спрощення процесів
керування рахунками, забезпечення зручного та безпечного доступу до
фінансових операцій, відображення детальної інформації про транзакції та
стан рахунків. Для досягнення сформульованої мети необхідно вирішити такі
задачі:
1. Провести аналіз існуючих систем, де використовуються подібні
системи управління банківськими рахунками;
2. Обґрунтувати доцільність розробки нової системи та надати
теоретичну оцінку ефективності нової системи;
3. Сформувати набір вимог до нової системи;
4. Розробити систему управління банківськими рахунками;
5. Реалізувати захист автоматизованої системи;
6. Оцінити складність реалізації системи управління банківськими
рахунками.
На даний момент існує багато джерел інформації, в яких автори
розглядають цю тему, наприклад Іванов Олександр Петрович в своїй книзі
«Сучасні технології в банківській сфері: Автоматизовані системи управління
банківськими рахунками» досліджує роль та значення автоматизованих
систем управління банківськими рахунками у сучасній фінансовій сфері.
Вона аналізує технологічні інновації, які змінюють спосіб, яким банки
працюють з клієнтами, і надає огляд ключових аспектів розробки та
впровадження таких систем. Автор Ковальчук Наталія Василівна у своїй
книзі "Ефективне управління банківськими рахунками: Практичний підхід до
автоматизації" пропонує практичний підхід до впровадження та
використання автоматизованих систем управління банківськими рахунками.
Вона описує стратегії оптимізації фінансових процесів, використання
Лист
ЧДТУ.241354.005 ПЗ т
Зм. Лист № докум. Підпис Дат 5
а
інформаційних технологій та інструменти для забезпечення ефективного
управління банківськими рахунками.
Одержані в кваліфікаційній роботі результати мають практичне
значення. Створення комплексного та ефективного інструменту для
управління банківськими рахунками, який спрямований на спрощення
процесів керування рахунками та забезпечення зручного та безпечного
доступу до фінансових операцій, має дуже велике практичне значення. Така
система робить управління фінансами більш зручним для клієнтів,
дозволяючи їм легко та швидко здійснювати різні операції без необхідності
відвідування банківського відділення. Створення безпечного віддаленого
доступу до фінансових операцій та збереження детальної інформації про
транзакції і стан рахунків допомагає уникнути шахрайства та забезпечує
конфіденційність особистої інформації.
Кваліфікаційна робота складається з 4-х розділів, у яких подається
інформація про:
1. Обрану предметну область дослідження та постановку задач розробки;
2. Огляд існуючих технологій, за допомогою яких можна реалізувати
подібну систему та обґрунтування вибору тієї чи іншої технології;
3. Реалізацію системи: відображення структури системи, опис функцій
кожної частини системи, технічні вимоги до системи а також
практична оцінка ефективності роботи;
4. Розробку захисту інформації для автоматизованої системи.
Використана література, під час написання кваліфікаційної роботи,
досить добре розкриває основні методики та підходи для розробки подібних
автоматизованих систем.
Лист
ЧДТУ.241354.005 ПЗ т
Зм. Лист № докум. Підпис Дат 6
а
1 АНАЛІЗ ПРЕДМЕТНОЇ ОБЛАСТІ ТА ПОСТАНОВКА ЗАДАЧІ
1.1 Аналіз існуючих систем
Фінансовий менеджмент у контексті автоматизованої системи
менеджменту банківських рахунків означає ефективне управління
фінансовими ресурсами клієнтів або підприємств з використанням
спеціалізованої програмної системи. Ця система допомагає автоматизувати
багато фінансових процесів, пов'язаних з управлінням банківськими
рахунками.
Основні аспекти фінансового менеджменту в автоматизованій системі
менеджменту банківських рахунків включають моніторинг фінансових
операцій, де система автоматично відстежує та реєструє всі фінансові
транзакції, що відбуваються на рахунках клієнтів або підприємства;
планування та прогнозування витрат та прибутків, де система надає
інструменти для планування фінансових потоків, розрахунку прогнозованих
прибутків та витрат; управління ліквідністю, де система допомагає
контролювати ліквідність фінансових ресурсів, забезпечуючи достатній
рівень грошових коштів для покриття поточних зобов'язань; аналіз
фінансової продуктивності, де система надає засоби для аналізу ефективності
використання фінансових ресурсів та прийняття відповідних стратегічних
рішень; управління ризиками, де система допомагає ідентифікувати та
оцінювати фінансові ризики, пов'язані зі здійсненням різних операцій, та
вживати заходів для їх мінімізації.
Використання автоматизованої системи менеджменту банківських
рахунків спрощує та оптимізує фінансові процеси, забезпечуючи більшу
точність, ефективність та контроль над фінансами.
Банківська система – це сукупність установ (банків), що займаються
фінансовою діяльністю, такою як приймання вкладів, надання кредитів,
Лист
ЧДТУ.241354.005 ПЗ т
Зм. Лист № докум. Підпис Дат 7
а
обмін валют, забезпечення платіжних послуг та інші фінансові операції. Ця
система має ключове значення для економіки країни, оскільки забезпечує
фінансову підтримку для підприємств, уряду та громадян.
Банківська система включає в себе комерційні банки, центральний банк
(або Національний банк), спеціалізовані фінансові установи та інші фінансові
інститути. Кожен з цих учасників має свою функціональну роль у системі та
взаємодіє з іншими установами.
Банки приймають грошові вклади від клієнтів та забезпечують їх
зберігання. Надають позики клієнтам для різних потреб, таких як бізнес-
проекти, особисті витрати тощо. Забезпечують перекази коштів між
клієнтами, оплату рахунків та інші платіжні послуги.
Займаються обміном валют, випуском кредитних карток, наданням
консультаційних та інвестиційних послуг [1].
Центральний банк виконує функції контролю грошової маси,
регулювання процентних ставок та інші заходи для забезпечення стабільності
економіки країни.
Всі ці функції допомагають банківській системі виконувати свою роль
у фінансовому і економічному житті країни. Центральний банк виконує
функції контролю грошової маси, регулювання процентних ставок та інші
заходи для забезпечення стабільності економіки країни.
Всі ці функції допомагають банківській системі виконувати свою роль
у фінансовому і економічному житті країни.
WEB-версія банкінгу – це онлайн-платформа, яка надає можливість
клієнтам банку отримувати доступ до своїх банківських рахунків через
інтернет. Зазвичай це веб-сайт банку або спеціальна платформа для інтернет-
банкінгу. Через WEB-версію банкінгу клієнти можуть перевіряти баланс
рахунків, проводити та перевіряти стан транзакцій, здійснювати перекази
коштів між власними рахунками або на рахунки інших осіб, оплачувати
Лист
ЧДТУ.241354.005 ПЗ т
Зм. Лист № докум. Підпис Дат 8
а
рахунки та проводити інші платежі, планувати та керувати фінансовими
операціями.
Завдяки зручному та безпечному інтерфейсу WEB-версія банкінгу
дозволяє клієнтам ефективно управляти своїми фінансами в будь-який час та
з будь-якого місця, де є доступ до Інтернету.
Мобільні додатки банків – це програми, які встановлюються на
мобільні пристрої (смартфони або планшети) та надають можливість
клієнтам банку здійснювати різні банківські операції через свій телефон. Ці
додатки можуть мати ті ж функції, що і WEB-версія банкінгу, а також
додаткові можливості, такі як використання технологій біометричної
аутентифікації для зручного та безпечного входу, отримання сповіщень про
транзакції та інші фінансові події, використання NFC для безконтактних
платежів на терміналах, сканування та оплату рахунків за допомогою камери
пристрою [2].
Мобільні додатки надають зручний та мобільний спосіб управління
банківськими рахунками, що дозволяє клієнтам здійснювати фінансові
операції в будь-який час та в будь-якому місці.
Privat24 – це мобільний додаток та онлайн-платформа, яка належить
ПриватБанку, одному з найбільших банків в Україні. Цей сервіс надає
клієнтам банку можливість управляти своїми банківськими рахунками через
мобільний телефон або комп'ютер, сервіси додатку зображено на рисунку 1.1.
Лист
ЧДТУ.241354.005 ПЗ т
Зм. Лист № докум. Підпис Дат 9
а
Рисунок 1.1. – Сервіси додатку Privat24
Функціонал Privat24 досить широкий і включає в себе:
1. Перегляд балансу та історії транзакцій. Клієнти можуть переглядати
баланс своїх рахунків та історію проведених транзакцій;
2. Перекази коштів. Через Privat24 можна здійснювати перекази коштів
між власними рахунками в ПриватБанку, а також на рахунки інших клієнтів
банку;
3. Оплата рахунків та послуг. Сервіс дозволяє оплачувати різні рахунки
(комунальні послуги, інтернет, мобільний зв'язок тощо) безпосередньо через
додаток;
4. Поповнення рахунків. Крім переказів між рахунками, клієнти можуть
поповнювати свої рахунки за допомогою онлайн-платежів або інших методів;
5. Фінансові аналітичні засоби. Privat24 надає клієнтам інструменти для
аналізу своїх фінансів, включаючи статистику витрат, планування бюджету
та інше.
Privat24 дуже популярний серед клієнтів ПриватБанку завдяки своїй
зручності, безпеці та широкому функціоналу. Він надає зручний та
Лист
ЧДТУ.241354.005 ПЗ т
Зм. Лист № докум. Підпис Дат 10
а
доступний спосіб управління банківськими рахунками у будь-який час та в
будь-якому місці.
Monobank – це цифровий банк, що базується в Україні, відомий своєю
інноваційною підходом до банківських послуг. Цей банк функціонує
виключно в онлайн-режимі та надає своїм клієнтам можливість керувати
своїми фінансами за допомогою мобільного додатку, зовнішній вигляд
зображено на рисунку 1.2.
Рисунок 1.2 – Зовнішній вигляд Monobank
Основні особливості Monobank включають:
1. Мобільний додаток. Monobank дозволяє клієнтам здійснювати всі
банківські операції через мобільний додаток, доступний для смартфонів з
операційними системами iOS та Android;
2. Безкоштовні послуги. Більшість послуг Monobank, включаючи
перекази, оплату рахунків, виписку по рахунку та інші, надаються
безкоштовно для клієнтів;
Лист
ЧДТУ.241354.005 ПЗ т
Зм. Лист № докум. Підпис Дат 11
а
3. Кешбек. Monobank пропонує своїм клієнтам програму кешбеку, яка
дозволяє отримувати повернення частини коштів за покупки у певних
мережах партнерів;
4. Кредитування. Крім основних банківських послуг, Monobank також
надає можливість отримання кредитів через мобільний додаток;
5. Онлайн-підтримка. Monobank має ефективну онлайн-підтримку, яка
доступна через мобільний додаток або електронну пошту.
Monobank відомий своєю зручністю, простотою та інноваційним
підходом до фінансових послуг. Цей банк став популярним серед
користувачів, які цінують швидкий та зручний доступ до банківських послуг
через мобільний телефон.
Ощад 24 -–це онлайн-банкінгова платформа, яка належить Ощадбанку
в Україні. Цей сервіс дозволяє клієнтам Ощадбанку (НАБУ, раніше Ощадний
банк) здійснювати різні банківські операції через Інтернет, зовнішній вигляд
зображено на рисунку 1.3.
Рисунок 1.3 – Онлайн-банкінгова платформа Ощад 24
Основні функції та можливості Ощад 24 включають:
1. Доступ до рахунків. Клієнти можуть переглядати баланс своїх рахунків,
перевіряти історію транзакцій та стан платежів;
Лист
ЧДТУ.241354.005 ПЗ т
Зм. Лист № докум. Підпис Дат 12
а
2. Перекази коштів. Сервіс дозволяє клієнтам здійснювати перекази
коштів між власними рахунками, а також на рахунки інших клієнтів банку;
3. Оплата рахунків. Через Ощад 24 можна оплачувати різні рахунки за
комунальні послуги, мобільний зв'язок, інтернет-послуги та інше;
4.Зареєстровані платіжні шаблони. Клієнти можуть зберігати
зареєстровані платіжні шаблони для швидкого та зручного проведення оплат
без необхідності вводити дані кожного разу;
5. Мобільний додаток. Крім веб-версії, Ощад 24 також пропонує
мобільний додаток для смартфонів, який дозволяє здійснювати банківські
операції зручним та мобільним способом.
Ощад 24 дозволяє клієнтам банку управляти своїми фінансами швидко,
зручно та безпечно, надаючи доступ до основних банківських послуг в
онлайн-режимі.
1.2 Постановка задачі
Коли є більше одного банківського рахунку, важливо мати можливість
управляти своїми бюджетами в одному місці з кількох причин. Мати
можливість переглядати всі свої рахунки в одному місці дозволяє ефективно
керувати своїми фінансами без необхідності переходити з одного облікового
запису до іншого.
При наявності різних рахунків може бути складно відслідковувати
витрати та доходи. Управління бюджетами в одному місці допомагає краще
розуміти свої фінансові потреби та планувати свої витрати.
Можливість бачити всі рахунки в одному місці дозволяє уникнути
неприємних ситуацій, таких як перекидання коштів між рахунками для
покриття недостатнього балансу.
Якщо є різні інвестиційні рахунки або портфелі, управління ними в
одному місці дозволяє краще контролювати свої інвестиції та приймати
більш обґрунтовані фінансові рішення.
Лист
ЧДТУ.241354.005 ПЗ т
Зм. Лист № докум. Підпис Дат 13
а
Управління бюджетами в одному місці може бути реалізоване через
різні фінансові платформи, такі як мобільні додатки банків або сторонні
фінансові програми, які дозволяють інтегрувати різні рахунки для зручного
управління фінансами.
Управління бюджетами через мобільний телефон є дуже зручним,
оскільки воно надає вам можливість в будь-який момент перевірити баланси
своїх рахунків більш детально. Завдяки мобільним додаткам можна швидко
та легко переглянути стан своїх рахунків, подивитися історію транзакцій, а
також аналізувати свої витрати та доходи.
Це особливо зручно в сучасному ритмі життя, коли постійно
перебуваємо в русі і не завжди маємо доступ до комп'ютера. Мобільний
телефон завжди з вами, що означає, що ви можете отримати доступ до своїх
фінансових даних в будь-який момент, навіть коли в дорозі, на роботі або на
відпочинку.
Крім того, мобільні додатки часто мають зручний та інтуїтивно
зрозумілий інтерфейс, який дозволяє легко організувати та аналізувати
фінанси. Можете швидко знайти необхідну інформацію, переглянути звіти
або створити сповіщення для контролю над витратами.
Таким чином, мобільний телефон (чи будь-який інший гаджет) стає
потужним інструментом для управління бюджетами, оскільки він дозволяє
миттєво отримувати доступ до фінансової інформації та керувати нею в будь-
який час і в будь-якому місці.
1.3 Висновки до розділу 1
Аналіз існуючих систем фінансового управління, зокрема Privat24,
Monobank та Ощад 24, показує, що банківські послуги стають все більш
доступними та зручними завдяки цифровим технологіям. Ці системи
дозволяють користувачам керувати своїми банківськими рахунками,
Лист
ЧДТУ.241354.005 ПЗ т
Зм. Лист № докум. Підпис Дат 14
а
здійснювати перекази, оплачувати рахунки та контролювати свої фінанси за
допомогою онлайн-платформ та мобільних додатків.
Відмінною рисою цих систем є можливість управління більш ніж
одним рахунком в одному місці. Це надає користувачам зручність та
ефективність у керуванні своїми фінансами, дозволяючи швидко та легко
переглядати та аналізувати баланси та транзакції.
Особливо важливою є можливість керування бюджетами через
мобільний телефон. Завдяки цьому, користувачі можуть перевіряти свої
фінанси в будь-який момент і в будь-якому місці, що забезпечує їм більшу
контроль та гнучкість у управлінні своїми фінансами.
Отже, злиття цифрових технологій та банківських послуг дозволяє
створити зручні та ефективні інструменти для управління фінансами, що
відповідають потребам сучасного споживача.
Лист
ЧДТУ.241354.005 ПЗ т
Зм. Лист № докум. Підпис Дат 15
а
2 ВИБІР ТЕХНОЛОГІЇ ТА ІНСТРУМЕНТАЛЬНИХ ЗАСОБІВ
РОЗРОБКИ СИСТЕМИ
2.1 Огляд існуючих технологій
API, або інтерфейс програмування застосунків (англ. Application
Programming Interface), є набором правил та протоколів, які визначають
способи взаємодії між різними програмами. API визначає, які запити та
відповіді можуть обмінюватися між програмами, що дозволяє їм взаємодіяти
та спільно працювати.
Основна ідея API полягає в тому, щоб надати розробникам інструменти
та можливості для створення програм, які можуть використовувати
функціонал інших програм або сервісів. API дозволяє різним програмам
комунікувати між собою, обмінюватися даними та виконувати певні дії без
необхідності знати всі деталі реалізації програми, до якої вони звертаються.
API може бути реалізований у вигляді набору функцій, бібліотеки,
протоколів або веб-служб, які надають доступ до функціоналу програми або
сервісу. Сутність роботи API зображено на рисунку 2.1.
Рисунок 2.1 – Приклад роботи API
Наприклад, соціальні мережі, платіжні системи та інші онлайн-сервіси
надають API для розробників, що дозволяє створювати додатки, які
взаємодіють з їхніми сервісами [3].
Лист
ЧДТУ.241354.005 ПЗ т
Зм. Лист № докум. Підпис Дат 16
а
Існують різні типи API, включаючи веб-сервіси (наприклад, REST або
SOAP), бібліотеки програмування (наприклад, бібліотеки JavaScript або
Python) та інші. Кожен тип API має свої особливості та призначення.
Розробники, які створюють API, зазвичай надають документацію, яка
описує доступні методи, параметри та формати даних для взаємодії з API. Ця
документація є ключовим інструментом для розробників, які хочуть
використовувати дане API.
Більшість вимагають автентифікації, щоб забезпечити безпеку та
конфіденційність даних. Це може включати в себе використання токенів
доступу, ключів API або інших методів ідентифікації користувача.
Розробники часто випускають нові версії API з покращеними
функціями та виправленнями помилок.
API використовуються в різних галузях, включаючи фінанси, соціальні
мережі, електронну комерцію, медіа, транспорт та багато інших. Вони
дозволяють розробникам створювати інноваційні додатки та сервіси, які
взаємодіють з різними системами та платформами.
REST, або Representational State Transfer, є стилем архітектури для
розробки веб-сервісів, який використовується для створення API. RESTful
API, або RESTful веб-служби, дотримуються принципів REST [4]. Основні
характеристики RESTful API включають в себе, що кожен ресурс (наприклад,
користувач, продукт, замовлення) має свою унікальну адресу URL.
Для взаємодії з ресурсами використовуються стандартні HTTP-методи,
такі як GET (отримання даних), POST (створення нових даних), PUT
(оновлення існуючих даних) та DELETE (видалення даних), принцип роботи
зображено на рисунку 2.2.
Дані, які передаються через RESTful API, можуть бути представлені у
різних форматах, таких як JSON, XML або HTML, в залежності від потреб
клієнта.
Лист
ЧДТУ.241354.005 ПЗ т
Зм. Лист № докум. Підпис Дат 17
а
Рисунок 2.2 – Принцип роботи RESTful API
RESTful API повинні відповідати принципу stateless, що означає, що
кожен запит містить всю необхідну інформацію для обробки запиту, і сервер
не зберігає жодної інформації про попередні запити від клієнта.
Можуть підтримувати кешування, що дозволяє клієнтам кешувати
відповіді сервера для подальшого використання та зменшення навантаження
на сервер.
RESTful API широко використовується для реалізації веб-сервісів,
оскільки вони надають простий та ефективний спосіб взаємодії між різними
системами та додатками. Вони дозволяють розробникам створювати потужні
та гнучкі веб-сервіси, які можуть бути легко інтегровані з іншими додатками
та платформами [5].
Node.js використовується для створення ефективних та масштабованих
серверних додатків з використанням JavaScript. Він базується на двигуні V8
JavaScript, що розроблений Google для браузера Chrome, та дозволяє
використовувати асинхронний підхід до програмування з використанням
подій та зворотних викликів. Node.js активно використовується для реалізації
веб-серверів, API, мережевих додатків та інших серверних застосунків.
PHP є однією з найпопулярніших мов програмування для створення
динамічних веб-сайтів та веб-додатків. Вона проста для вивчення та
використання, що робить її популярною серед початківців. PHP легко
Лист
ЧДТУ.241354.005 ПЗ т
Зм. Лист № докум. Підпис Дат 18
а
поєднується з HTML та базами даних, такими як MySQL, PostgreSQL та
іншими, і забезпечує можливість створення динамічного контенту на веб-
додатку.
Java відома своєю переносимістю, надійністю та безпекою. Вона
широко використовується для створення різноманітних програм, від
мобільних додатків до великих підприємницьких систем. Java має багато
бібліотек, фреймворків та інструментів розробки, що полегшують процес
створення програмного забезпечення. Вона також використовується для
створення веб-додатків за допомогою фреймворків, таких як Spring та
Hibernate.
C# є мовою програмування, спрямованою на платформу .NET,
розроблену Microsoft. Вона використовується для створення різних видів
програм, включаючи десктопні застосунки, веб-додатки та ігри. C# є
об'єктно-орієнтованою мовою з сильним типізацією, що дозволяє створювати
надійне та безпечне програмне забезпечення. Вона має багато інтегрованих
інструментів розробки та фреймворків, таких як .NET Framework, ASP.NET
та Xamarin, що дозволяє розробникам створювати різноманітні додатки для
різних платформ.
MySQL – це одна з найпопулярніших відкритих реляційних систем
управління базами даних (СУБД). Вона відома своєю швидкодією,
простотою використання та надійністю. MySQL широко використовується
для зберігання та управління структурованими даними в веб-додатках,
бізнес-застосунках та інших проектах.
PostgreSQL – це потужна об'єктно-реляційна система управління
базами даних (СУБД) з відкритим кодом. Вона відома своєю
розширюваністю, стандартністю та високою продуктивністю. PostgreSQL
підтримує багато функцій, включаючи транзакції, гнучкість та
кластеризацію, що робить її ідеальним вибором для великих та складних
проектів.
Лист
ЧДТУ.241354.005 ПЗ т
Зм. Лист № докум. Підпис Дат 19
а
MariaDB – це відкрита система управління базами даних (СУБД), яка є
форком MySQL та має багато спільних рис з MySQL. Вона розроблена для
забезпечення відкритого та безкоштовного доступу до надійної та швидкої
бази даних. MariaDB активно використовується для веб-додатків, хмарних
сервісів та інших проектів.
Oracle Database – це потужна комерційна реляційна система управління
базами даних (СУБД), розроблена компанією Oracle. Вона відома своєю
високою надійністю, масштабованістю та безпекою [6]. Oracle Database
використовується для різноманітних застосувань, включаючи великі
корпоративні системи, банківські системи, електронну комерцію та інші
критичні застосунки.
Прогресивний веб-додаток (PWA) – це веб-додаток, який використовує
прогресивне покращення, щоб забезпечити користувачам більш надійний
досвід, використовує нові можливості для забезпечення більш інтегрованого
досвіду та може бути встановлений. І, через те, що це веб-додаток, він може
бути доступним будь-кому, будь-де, на будь-якому пристрої, все це з одною
кодовою базою. Після встановлення PWA виглядає як будь-який інший
додаток, зокрема:
1. Має значок на головному екрані, пусковій панелі, лаунчері додатків
або меню запуску;
2. З'являється при пошуку додатків на пристрої;
3. Відкривається в окремому вікні, повністю відокремленому від
інтерфейсу користувача браузера;
4. Має доступ до вищих рівнів інтеграції з ОС, наприклад, обробки
URL-адрес або налаштування заголовка вікна;
5. Працює офлайн.
Веб неймовірна платформа. Її універсальність на різних пристроях та
операційних системах, модель безпеки, спрямована на користувача, і той
факт, що жодна окрема компанія не контролює її специфікацію або
Лист
ЧДТУ.241354.005 ПЗ т
Зм. Лист № докум. Підпис Дат 20
а
реалізацію, роблять її потужною платформою для поширення програмного
забезпечення.
Разом із вбудованою можливістю посилання, можливо шукати та
ділитися знайденим з будь-ким, де б ви не знаходилися. Кожен раз, коли
заходите на веб-сайт, це остання версія, яку розмістив видавець, і досвід з
цим сайтом може бути настільки тимчасовим або постійним, наскільки
бажається.
Веб-додатки можуть досягати будь-кого, де б вони не знаходилися, на
будь-якому пристрої за однією кодовою базою. Для розробників веб також
пропонує прозорий та простий механізм розгортання. Не потрібно пакувати,
не потрібен додатковий огляд контенту або затримки оновлень. Користувачі
завжди отримують останню версію, коли вони відвідують додаток.
Прогресивні веб-додатки (PWA) є сучасною концепцією веб-розробки, яка
поєднує в собі найкращі характеристики веб-сайтів і мобільних додатків,
забезпечуючи користувачам зручний та ефективний досвід використання.
2.2 Обґрунтування вибору
Сучасний додаток для управління рахунками має бути
кросплатформеним, щоб забезпечити зручність користувачів незалежно від їх
пристроїв та операційних систем. Такий підхід дозволяє користувачам
отримувати доступ до своїх рахунків і даних з будь-якого пристрою – будь то
комп'ютер, планшет чи смартфон. Крім того, це сприяє збільшенню бази
користувачів та покращує їх задоволення від використання додатку.
Кросплатформений додаток – це програмне забезпечення, яке
розроблено для роботи на різних операційних системах чи платформах, таких
як iOS, Android, Windows, macOS тощо. Це означає, що один і той же код
може бути використаний для створення додатків, які працюють на різних
пристроях. Кросплатформеність спрощує процес розробки та підтримки
Лист
ЧДТУ.241354.005 ПЗ т
Зм. Лист № докум. Підпис Дат 21
а
додатків, оскільки розробникам не потрібно писати окремий код для кожної
платформи заново.
У розробці кросплатформених додатків вибір мови програмування є
ключовим аспектом, оскільки від цього залежить якість, швидкість та
ефективність процесу розробки. Важливо обрати мову, яка надає
максимальну простоту та ефективність в розробці кросплатформених
додатків. Наприклад, мови програмування такі як JavaScript з фреймворками
такими як React Native або Flutter, які використовують Dart, є популярними
виборами для розробки кросплатформених додатків. Вони надають
можливість використовувати один код для різних платформ, що спрощує
процес розробки та зменшує час витрачений на створення додатків.
PWA (Progressive Web App) ідеально підходить для кросплатформених
додатків з кількох причин. По-перше, PWA використовує веб-технології, такі
як HTML, CSS і JavaScript, що робить їх сумісними з будь-якою платформою,
яка підтримує веб-браузер. Це означає, що один і той же додаток може
працювати на будь-якому пристрої, будь то комп'ютер, планшет або
смартфон, незалежно від операційної системи [7].
По-друге, PWA надає користувачам зручність, яка є типовою для
мобільних додатків, таких як можливість робити запуск з домашнього
екрана, доступ до найновіших функцій браузера, таких як робота в офлайні
та push-сповіщення.
Крім того, розробка PWA може бути більш простою та ефективною,
оскільки вона базується на веб-технологіях, а розробники можуть
використовувати існуючі навички веб-розробки.
Отже, PWA є ідеальним вибором для кросплатформених додатків, які
потребують швидкої розробки та розгортання на різних платформах.
Для розробки PWA використовується JavaScript, що відкриває безліч
можливостей для створення різноманітних додатків. JavaScript є однією з
найпоширеніших мов програмування, яка дозволяє розробникам створювати
Лист
ЧДТУ.241354.005 ПЗ т
Зм. Лист № докум. Підпис Дат 22
а
інтерактивні та динамічні веб-додатки. Завдяки великій кількості бібліотек та
фреймворків, таких як React, Angular, Vue.js та інші, розробники можуть
швидко і ефективно створювати PWA з різноманітними функціями, від
простих інформаційних сайтів до складних веб-додатків з розширеними
можливостями взаємодії та обробки даних. Такий підхід до розробки
забезпечує гнучкість та швидкість у створенні різного роду додатків, що
відповідають потребам користувачів.
Для розробки cерверного додатку для мобільних додатків також можна
успішно використовувати JavaScript. Існують спеціалізовані фреймворки та
платформи, такі як Node.js, що дозволяють розробникам створювати потужні
та масштабовані бекенд-додатки з використанням JavaScript.
Node.js базується на движку V8, який використовується в браузері
Google Chrome, тому JavaScript виконується швидко та ефективно на
серверному боці [8]. Це робить Node.js привабливим вибором для розробки
бекенду для мобільних додатків, оскільки це дозволяє розробникам
використовувати одну мову програмування як на клієнтському, так і на
серверному боці, що спрощує розробку та підтримку коду.
Таким чином, JavaScript може бути використаний як на фронтенді, так і
на бекенді для мобільних додатків, що забезпечує єдність мови
програмування та полегшує розробку та підтримку додатків на різних рівнях.
Для розробки бекенду для мобільних додатків можна ефективно
використовувати serverless технології, наприклад, AWS Lambda. AWS
Lambda дозволяє розробникам писати та виконувати код без необхідності
управління серверами. Замість того, щоб вручну налаштовувати та
масштабувати інфраструктуру, розробники можуть просто завантажувати
свій код та AWS Lambda автоматично керує виконанням цього коду.
Використання serverless технологій, таких як AWS Lambda, має
декілька переваг для розробки бекенду мобільних додатків. По-перше, це
дозволяє розробникам зосередитися на написанні функціонального коду, а не
Лист
ЧДТУ.241354.005 ПЗ т
Зм. Лист № докум. Підпис Дат 23
а
на налаштуванні та управлінні серверами. По-друге, це забезпечує гнучкість
та масштабованість, оскільки AWS Lambda автоматично масштабується в
залежності від потреб обробки.
Отже, використання serverless технологій, таких як AWS Lambda, є
привабливим варіантом для розробки бекенду для мобільних додатків,
оскільки це дозволяє ефективно використовувати ресурси та спрощує процес
розробки та підтримки.
Для роботи з PWA додатком можна вибрати React як технологію. React
є однією з найпопулярніших бібліотек JavaScript для розробки
користувацьких інтерфейсів, і вона ідеально підходить для створення
інтерактивних та динамічних веб-додатків.
React має декілька переваг для розробки PWA. По-перше, він пропонує
компонентний підхід до розробки, що спрощує управління інтерфейсом та
покращує повторне використання коду. По-друге, React надає можливість
створювати інтерактивні користувацькі інтерфейси, які реагують на дії
користувачів та забезпечують більш приємний досвід використання.
Крім того, існує багато сторонніх бібліотек та фреймворків, таких як
React Router та Redux, які роблять розробку PWA на React ще простішою та
ефективнішою.
Отже, вибір React для розробки PWA додатків може бути відмінним
варіантом, оскільки ця технологія дозволяє швидко розробляти потужні та
ефективні веб-додатки з гнучким та модульним кодом.
Для інтеграції з банківськими установами мобільний додаток буде
використовувати Restful API для отримання даних. RESTful API – це
архітектурний стиль, який використовує HTTP протокол для звернення до
веб-сервера та обміну даними між клієнтами та сервером.
За допомогою Restful API мобільний додаток може звертатися до
банківських систем для отримання інформації про баланс рахунків,
транзакції, історію операцій тощо. API надає зручний спосіб отримання
Лист
ЧДТУ.241354.005 ПЗ т
Зм. Лист № докум. Підпис Дат 24
а
даних з банківських систем без необхідності прямого доступу до бази даних
або інших внутрішніх ресурсів банку.
Використання Restful API дозволяє забезпечити безпеку та
конфіденційність обміну даними, а також спрощує розробку мобільного
додатку, оскільки розробники можуть сконцентруватися на створенні
клієнтського інтерфейсу та обробці отриманих даних.
Банківські установи надають публічні API для можливості інтеграції
сторонніх додатків з банками. Це означає, що банки створюють спеціальні
програмні інтерфейси, які дозволяють стороннім розробникам звертатися до
функціональності банківських систем.
За допомогою цих публічних API сторонні розробники можуть
отримувати доступ до різних функцій банківських систем, таких як перевірка
балансу рахунків, перекази коштів, історія транзакцій тощо. Це дозволяє
створювати різноманітні додатки та сервіси, які взаємодіють з банківськими
установами, такі як мобільні додатки для керування фінансами, фінансові
портали та інші.
Публічні API банків забезпечують безпеку та конфіденційність обміну
даними, а також спрощують розробку додатків, оскільки розробники можуть
використовувати готові рішення та функціональність, які надаються банками
через ці API.
Дані, отримані з банківських установ, можуть бути збережені в
PostgreSQL базі даних. PostgreSQL є потужною та надійною реляційною
базою даних, яка забезпечує високу продуктивність, масштабованість та
безпеку.
Використання PostgreSQL для зберігання банківських даних може бути
вигідним, оскільки ця система дозволяє ефективно управляти складними
структурами даних, проводити швидкі операції зв'язків та запитів і
забезпечувати надійність даних завдяки вбудованим механізмам контролю
цілісності.
Лист
ЧДТУ.241354.005 ПЗ т
Зм. Лист № докум. Підпис Дат 25
а
Крім того, PostgreSQL підтримує ряд розширень та функціональностей,
таких як JSONB для роботи з неструктурованими даними та розширені
можливості керування доступом, що робить його привабливим вибором для
зберігання різноманітних типів банківських даних.
Отже, використання PostgreSQL бази даних для зберігання даних з
банківських установ може забезпечити надійність, ефективність та безпеку
обробки та зберігання цих даних.
Для збереження PII (особисто ідентифікованої інформації) даних може
бути використаний модуль Node.js crypto. Цей модуль надає можливість
шифрувати та розшифровувати дані з використанням різних алгоритмів
шифрування.
Використання модуля crypto забезпечує безпеку та конфіденційність
особистих даних, оскільки шифрування робить їх закритими для
несанкціонованих осіб. Крім того, цей модуль надає можливість
використовувати різні алгоритми шифрування залежно від потреб проекту,
такі як AES (Advanced Encryption Standard) або RSA (Rivest-Shamir-Adleman).
Використання модуля crypto дозволяє розробникам ефективно
захищати конфіденційні дані користувачів та дотримуватися нормативних
вимог з охорони особистої інформації, таких як GDPR або HIPAA.
Отже, використання модуля crypto в Node.js може бути важливим
елементом забезпечення безпеки особистих даних у мобільних додатках,
зокрема PWA, де зберігається чутлива інформація користувачів.
Використання всіх вищеперерахованих технологій дозволить створити
повноцінний кросплатформений додаток для управління банківськими
рахунками з високою ефективністю, безпекою та зручністю використання.
Шляхом інтеграції PWA з використанням React, ми можемо
забезпечити швидку та ефективну розробку мобільних додатків, які
працюють на будь-якому пристрої та платформі. Використання Restful API
для взаємодії з банківськими установами забезпечить отримання актуальних
Лист
ЧДТУ.241354.005 ПЗ т
Зм. Лист № докум. Підпис Дат 26
а
даних про рахунки та транзакції. Використання PostgreSQL бази даних
дозволить зберігати ці дані безпечно та надійно.
Такий підхід забезпечить користувачам повноцінний та безпечний
доступ до їхніх банківських рахунків через кросплатформений додаток, який
буде працювати на будь-якому пристрої, забезпечуючи зручність та
ефективність управління фінансами.
2.3 Висновки до розділу 2
У розділі було проведено огляд існуючих технологій, що можуть бути
використані для створення автоматизованої системи управління
банківськими рахунками. Оцінювалися такі аспекти, як API-інтерфейси,
RESTful архітектура, мови програмування, системи управління базами даних
та прогресивні веб-додатки (PWA).
Обґрунтування вибору конкретних технологій для розробки
автоматизованої системи базувалося на їхній придатності для вирішення
конкретних вимог теми. Наприклад, вибір RESTful API дозволить нам
реалізувати зручний та швидкий доступ до функціоналу системи через
інтернет, забезпечуючи сумісність з будь-якими клієнтськими додатками.
Мова програмування та база даних були вибрані з урахуванням їхньої
продуктивності, масштабованості та підтримки необхідних функцій.
Застосування прогресивних веб-додатків (PWA) має важливе значення
для забезпечення доступу до системи через різноманітні пристрої та
платформи, забезпечуючи високу продуктивність та зручність користування.
Отже, вибір конкретних технологій та інструментальних засобів для
розробки автоматизованої системи управління банківськими рахунками був
здійснений з урахуванням їхньої придатності, ефективності та здатності
відповісти на потреби та вимоги цільової аудиторії.
Лист
ЧДТУ.241354.005 ПЗ т
Зм. Лист № докум. Підпис Дат 27
а
3 РОЗРОБКА АВТОМАТИЗОВАНОЇ СИСТЕМИМЕНЕДЖМЕНТУ
БАНКІВСЬКИХ РАХУНКІВ
3.1 Структура системи
Для розробки системи було використано serverless технології. Це
означає, що вся інфраструктура, потрібна для роботи додатку, управляється
хмарним сервісом AWS.
AWS (Amazon Web Services) – це провідна хмарна платформа, яка
пропонує широкий спектр хмарних послуг, таких як обчислення, зберігання
даних, бази даних, мережі, інструменти розробки, штучний інтелект,
аналітика, Інтернет речей (IoT) та багато іншого. AWS є частиною бізнес-
групи Amazon і вважається одним з провідних провайдерів хмарних послуг у
світі.
Замість того, щоб вести власні сервери або віртуальні машини,
розробники можуть написати функції, які будуть виконуватися при запитах, і
серверлес платформа буде автоматично масштабувати їх відповідно до
потреб системи.
Використання serverless технологій має кілька переваг, включаючи
автоматичне масштабування, зменшення витрат на інфраструктуру та
управління необхідністю виконувати адміністративні завдання сервера. Це
дозволяє розробникам зосередитися на функціональності додатку та швидше
виводити його на ринок, забезпечуючи при цьому надійність та
масштабованість системи.
Для зменшення залежності від серверної частини, для розробки API
системи було використано AWS Lambda. AWS Lambda – це сервіс хмарних
обчислень, який дозволяє запускати код без необхідності управління
серверами. Замість того, щоб розгортати та керувати серверами, розробники
можуть завантажити свій код (який може бути написаний на мові
Лист
ЧДТУ.241354.005 ПЗ т
Зм. Лист № докум. Підпис Дат 28
а
програмування, такій як JavaScript, Python, або Java) на AWS Lambda, і сервіс
автоматично керуватиме його виконанням відповідно до вхідних подій або
запитів.
Використання AWS Lambda дозволяє розробникам створювати
мікросервіси та оброблювати окремі функції або завдання відокремлено одне
від одного, що дозволяє покращити масштабованість, гнучкість та швидкість
розробки [9]. Крім того, це дозволяє знизити витрати на інфраструктуру,
оскільки вартість використання AWS Lambda обчислюється на основі
фактичного часу виконання коду та обсягу ресурсів, використаних для його
виконання.
Крім того, розроблений додаток є PWA (прогресивний веб-додаток) і
зберігається на S3 (Amazon Simple Storage Service). Усі операції з додатком
виконуються через статичний сайт S3.
Це означає, що весь фронтенд додатку, включаючи HTML, CSS,
JavaScript та інші ресурси, зберігаються на S3, а доступ до них здійснюється
через статичний веб-сайт. Такий підхід дозволяє зменшити завантаження
сервера та забезпечити швидкий доступ до ресурсів для кінцевих
користувачів.
Використання S3 для зберігання PWA додатку дозволяє забезпечити
високу доступність та надійність, оскільки S3 автоматично реплікує дані на
кілька зон доступності. Крім того, це забезпечує простоту налаштування та
масштабованість, оскільки S3 автоматично масштабується відповідно до
потреб обсягу даних.
Для збільшення швидкодії розробленого додатку було використано
Amazon CloudFront. CloudFront – це сервіс CDN (мережа доставки контенту),
який дозволяє розподіляти контент додатку по всьому світу і доставляти його
до кінцевих користувачів з ближньої до них точки доступу.
Використання CloudFront дозволяє зменшити час завантаження
сторінок додатку, оскільки контент кешується на різних серверах у різних
Лист
ЧДТУ.241354.005 ПЗ т
Зм. Лист № докум. Підпис Дат 29
а
регіонах світу і доставляється до користувачів з ближчого сервера [10]. Це
дозволяє зменшити затримки у завантаженні сторінок і поліпшити загальну
швидкодію додатку для кінцевих користувачів.
Крім того, CloudFront забезпечує додатковий рівень безпеки та захисту,
оскільки може використовувати шифрування та HTTPS для захисту
переданих даних. Такий підхід дозволяє забезпечити швидку та безпечну
доставку контенту користувачам незалежно від їх місцезнаходження.
Структура розробленої системи зображена на рисунку 3.1.
Postgres DB S3 Buckets
Lambdas Cloudfront
AWS інфраструктура
PWA Додаток
Рисунок 3.1 – Структура розробленої системи
Розроблена система повністю базується на AWS (Amazon Web
Services), що значно спрощує комунікацію між її елементами та забезпечує
ефективну і надійну роботу системи. AWS надає широкий спектр хмарних
послуг, які можна використовувати для будь-яких потреб системи,
Лист
ЧДТУ.241354.005 ПЗ т
Зм. Лист № докум. Підпис Дат 30
а
включаючи обчислення, зберігання, бази даних, мережі, аналітику та багато
іншого.
Завдяки тому, що усі компоненти системи розміщені на AWS, вони
можуть легко взаємодіяти один з одним через внутрішню мережу AWS.
Наприклад, дані, які зберігаються в S3, можуть бути безпосередньо доступні
для обробки в AWS Lambda, а результати обробки можуть бути збережені в
базі даних Amazon DynamoDB або використані для генерації веб-сторінок,
що розміщуються на Amazon CloudFront.
Такий підхід дозволяє спростити комунікацію між різними
компонентами системи, зменшити затрати на інфраструктуру та підвищити
масштабованість та надійність системи в цілому. Крім того, AWS пропонує
різні інструменти для моніторингу, керування та автоматизації хмарних
ресурсів, що дозволяє забезпечити ефективне управління та підтримку
системи протягом її життєвого циклу.
Розроблені Lambda-функції взаємодіють з додатком через REST API
(інтерфейс програмування додатків з представленням на основі відображення
ресурсів). REST API визначає структуру та формат обміну даними між
Lambda-функціями та іншими елементами додатку.
За допомогою REST API, Lambda-функції можуть виконувати
різноманітні операції, такі як отримання, оновлення або видалення даних з
бази даних, обробка запитів користувачів або інтеграція з іншими сервісами
AWS чи сторонніми додатками. REST API також забезпечує
стандартизований та універсальний спосіб взаємодії між різними
компонентами додатку, що спрощує розробку, розгортання та підтримку
системи.
Lambda функції отримують дані з банків через server-to-server тип
комунікації. Це означає, що Lambda функції взаємодіють безпосередньо з
серверами банківських установ, використовуючи API або інші методи
Лист
ЧДТУ.241354.005 ПЗ т
Зм. Лист № докум. Підпис Дат 31
а
комунікації, що передбачені банками для забезпечення обміну даними між
системами.
Такий підхід до комунікації забезпечує безпосереднє отримання даних
з банківських джерел без посередництва користувачів або інших
посередників, що забезпечує ефективне та безпечне отримання актуальної
інформації для виконання різних функцій додатку. Такий підхід є надійним
та ефективним способом отримання даних з банківських джерел для
подальшої обробки та використання в Lambda функціях.
Отримані дані з банківських установ система зберігає в базі даних
Postgres. Postgres, також відома як PostgreSQL, є потужною та надійною
реляційною базою даних з відкритим вихідним кодом. Вона забезпечує
широкі можливості для зберігання та оптимізації даних, а також підтримує
різні функції, такі як транзакції, індексація, управління даними та безпека.
Використання бази даних Postgres для зберігання банківських даних
дозволяє системі забезпечити надійність, безпеку та масштабованість.
Postgres володіє високою стабільністю та може ефективно керувати великими
обсягами даних, що робить її ідеальним вибором для зберігання важливих
банківських даних [11]. Крім того, база даних Postgres підтримує різні засоби
для резервного копіювання та відновлення даних, що забезпечує їх безпеку та
доступність в разі необхідності.
Lambda функції написані на мові програмування JavaScript, що надає
кілька переваг у контексті використання серверних ресурсів. JavaScript є
однією з найпопулярніших мов програмування у світі веб-розробки, і
використання її для написання Lambda функцій має декілька ключових
переваг:
1. Ефективність ресурсів. JavaScript відомий своєю високою
продуктивністю та ефективністю використання ресурсів. Виконання
JavaScript коду в середовищі Node.js дозволяє здійснювати швидке
виконання функцій, використовуючи мінімальну кількість ресурсів;
Лист
ЧДТУ.241354.005 ПЗ т
Зм. Лист № докум. Підпис Дат 32
а
2. Масштабованість.Модель виконання Lambda функцій на основі подій
дозволяє автоматично масштабувати ресурси за потреби. Це означає,
що, незалежно від обсягу роботи, серверні ресурси будуть виділятися
ефективно, забезпечуючи оптимальну продуктивність;
3. Швидкість розробки. JavaScript є мовою з простим і зрозумілим
синтаксисом, що сприяє швидкому розробленню та впровадженню
функціональності. Це дозволяє швидше створювати та оновлювати
Lambda функції, що важливо для agile-розробки та невеликих циклів
випуску;
4. Екосистема. JavaScript має широку екосистему бібліотек та
фреймворків, що спрощує розробку різноманітних функціональностей.
Це дозволяє використовувати готові рішення для розв'язання різних
завдань без додаткових витрат на розробку власних інструментів.
Загалом, використання JavaScript для написання Lambda функцій
дозволяє ефективно використовувати серверні ресурси, швидко розробляти
та впроваджувати новий функціонал та забезпечує високий рівень
продуктивності системи.
3.2 Опис функцій системи
У результаті виконання даної роботи було розроблено додаток з
використанням PWA, який надає користувачеві можливість підключити
декілька банківських аккаунтів та вести управління своїми фінансами.
Користувач може переглядати стан свого фінансового портфеля, включаючи
баланси та історію транзакцій, а також категоризувати та аналізувати свої
витрати. Додаток також надає користувачеві зручний інтерфейс для
встановлення нагадувань та отримання повідомлень про важливі фінансові
події. Всі ці функції доступні як через мобільний додаток, так і через веб-
версію, завдяки чому користувач може легко керувати своїми фінансами з
будь-якого пристрою.
Лист
ЧДТУ.241354.005 ПЗ т
Зм. Лист № докум. Підпис Дат 33
а
Ведення менеджменту витрат і доходів є ключовим для забезпечення
фінансової стабільності та досягнення фінансових цілей. Це допомагає особі
краще розуміти, куди йдуть її гроші, як ефективно управляти своїми
ресурсами і як зберегти належну рівновагу між витратами та доходами. Крім
того, ведення обліку дозволяє вчасно виявляти потенційні проблеми з
фінансами, такі як перевитрати або недостатні доходи, і вживати відповідних
заходів для їх вирішення. В результаті це сприяє покращенню фінансового
здоров'я та забезпечує більшу фінансову впевненість в майбутньому.
Розроблений PWA додаток зображений на рисунку 3.2.
Розроблена програма отримує всі існуючі транзакції з усіх
підключених банківських рахунків. Це дозволяє користувачеві зручно
переглядати усі фінансові операції в одному місці без необхідності
переходити між різними додатками або веб-сайтами банків. Загальний
перегляд всіх транзакцій допомагає користувачеві зрозуміти свої фінанси
краще, виявити тенденції витрат та доходів, а також здійснювати аналіз свого
фінансового стану для прийняття кращих рішень щодо управління
фінансами.
За замовчуванням всі транзакції завантажуються в розділ "Витрати",
проте користувач має можливість переміщати транзакції по різним
бюджетам. Це дозволяє управляти фінансами більш ефективно,
розподіляючи витрати на різні категорії чи проекти згідно з власними
потребами та пріоритетами. Користувач може створювати власні бюджети та
категорії витрат, а потім прив'язувати транзакції до відповідних бюджетів
для зручного відстеження та аналізу витрат. Такий підхід дозволяє
забезпечити більшу гнучкість та контроль над управлінням фінансами, а
також допомагає зробити більш об'єктивні фінансові рішення.
Лист
ЧДТУ.241354.005 ПЗ т
Зм. Лист № докум. Підпис Дат 34
а
Рисунок 3.2 – Інтерфейс розробленого PWA додатку
Бюджет – це віртуальна папка, де зберігаються транзакції, пов'язані з
певними категоріями витрат або проектами. Він дозволяє користувачеві
групувати транзакції за певними критеріями та відстежувати витрати в
рамках конкретних фінансових областей. Кожен бюджет може мати свої
власні параметри, такі як максимальна сума, періодичність оновлення чи
список дозволених категорій витрат.
Лист
ЧДТУ.241354.005 ПЗ т
Зм. Лист № докум. Підпис Дат 35
а
Створення бюджетів дозволяє користувачеві ефективно управляти
своїми фінансами, розподіляючи грошові кошти відповідно до власних
потреб та пріоритетів. Крім того, це сприяє більшій об'єктивності та
контролю над витратами, оскільки користувач може встановлювати
конкретні цілі чи обмеження для кожного бюджету та відстежувати їх
виконання в реальному часі.
Зміна бюджетів в додатку не впливає на транзакції на банківському
рахунку в банку. Бюджети в програмі є лише віртуальними папками, де
зберігаються транзакції для зручного відстеження та аналізу витрат. Коли
користувач переміщає транзакції між бюджетами або змінює параметри
бюджету, це лише змінює організацію транзакцій у програмі, а не впливає на
фактичні операції на банківському рахунку.
Це важливо зрозуміти, оскільки зміна бюджетів у програмі не впливає
на реальний баланс або стан рахунку в банку. Користувач повинен
самостійно відстежувати будь-які зміни на своєму банківському рахунку та
відповідно відображати їх у програмі для забезпечення точного управління
своїми фінансами.
У випадку проведення транзакції за кордоном, програма надає
користувачеві повну інформацію про операцію. Вона відображає суму в
місцевій валюті країни, де відбулася транзакція, а також конвертовану суму в
основній валюті користувача. Крім того, програма показує курс валют, за
яким була проведена транзакція, щоб користувач міг зрозуміти, як саме було
здійснено конвертацію. Ця інформація дозволяє користувачеві краще
розуміти витрати та вивчати свої фінанси в контексті міжнародних операцій.
Користувач має можливість переглянути курси валют для основних
валют прямо в додатку. Для зручності, курси валют підвантажуються
автоматично для банку за замовченням, що дозволяє користувачеві швидко
та легко перевірити поточні обмінні курси без необхідності виходити з
програми. Це дозволяє користувачеві вчасно оцінити потенційні витрати або
Лист
ЧДТУ.241354.005 ПЗ т
Зм. Лист № докум. Підпис Дат 36
а
прибутки в інших валютах, а також використовувати актуальні дані для
здійснення обміну валют чи вирішення інших фінансових питань.
Зараз програма підтримує інтеграцію з українськими банками
PrivatBank і Monobank. Це означає, що користувачі можуть підключити свої
рахунки в цих банках до додатку і отримувати доступ до своєї фінансової
інформації прямо в програмі. Інтеграція з українськими банками дозволяє
зручно відстежувати транзакції, переглядати баланси, а також керувати
фінансами безпосередньо з додатку. Це надає користувачам більшу гнучкість
та зручність у керуванні своїми фінансами, незалежно від того, який банк
вони використовують.
Дані підвантажуються автоматично один раз на годину. Це означає, що
інформація про транзакції та інші фінансові дані оновлюються автоматично
кожну годину без необхідності ручногo оновлення. Таке регулярне
підвантаження дозволяє користувачам бачити оновлену інформацію в
реальному часі та миттєво реагувати на будь-які фінансові події чи зміни.
У середовищі AWS налаштована cron-задача, яка автоматично
запускається один раз в годину. Ця задача виконує lambda-функцію, яка
відповідає за завантаження транзакцій з банківських рахунків. Цей механізм
регулярного оновлення дозволяє програмі завжди мати свіжу фінансову
інформацію та надає користувачам актуальну картину своїх фінансів.
У розробленому додатку є можливість конфігурації програми.
Користувач може змінювати мову інтерфейсу для зручності використання
додатку. Також є можливість додавати нові банківські рахунки для
відстеження фінансів з різних джерел. Крім того, користувач може змінювати
ключ шифрування для забезпечення безпеки своїх даних. Ці функції
конфігурації дозволяють користувачам налаштовувати додаток відповідно до
їхніх індивідуальних потреб і вимог.
У розробленому додатку ключ шифрування є наскрізним ключем, що
забезпечує додатковий рівень безпеки для збереження даних в базі даних. Це
Лист
ЧДТУ.241354.005 ПЗ т
Зм. Лист № докум. Підпис Дат 37
а
означає, що ключ використовується для шифрування та розшифрування
даних в базі, забезпечуючи їхню конфіденційність у випадку
несанкціонованого доступу. Такий підхід допомагає забезпечити безпеку та
конфіденційність фінансової інформації користувачів, зберігаючи їх дані в
безпеці.
У розробленому додатку PWA (прогресивна веб-аплікація)
здійснюється автоматичне оновлення при зміні коду на стороні сервера. Це
означає, що коли здійснюється оновлення програмного коду або внесення
змін на сервері, додаток автоматично завантажує оновлену версію, навіть без
необхідності оновлення вручну з боку користувача. Цей механізм дозволяє
забезпечити користувачам завжди актуальну та надійну версію додатку, що
підвищує зручність та безпеку його використання.
3.3 Технічні вимоги для роботи з системою
Розуміння технічних вимог для роботи з системою є ключовим
аспектом для її використання. Користувачі, які мають глибоке розуміння
принципів функціонування системи, можуть більш ефективно
використовувати її можливості, мінімізувати ризики помилок та
забезпечувати безпеку своїх даних. Це дозволяє їм працювати з системою
більш ефективно, вирішувати завдання швидше та з більшою впевненістю в
отриманих результатах. Таке розуміння також сприяє збереженню часу та
ресурсів, оскільки користувачі можуть уникати неправильного використання
системи та відновлювати роботу швидше у разі виникнення проблем.
Загалом, розуміння технічних аспектів системи є важливим елементом
успішного користування нею.
Розглядання технічних вимог є ключовим аспектом як для
користувачів, так і для роботи додатку на сервері. Для користувачів важливо
розуміти технічні вимоги системи, щоб ефективно використовувати її
можливості, уникати помилок та забезпечувати безпеку своїх даних.
Лист
ЧДТУ.241354.005 ПЗ т
Зм. Лист № докум. Підпис Дат 38
а
Розглядання технічних аспектів також допомагає користувачам вирішувати
проблеми та приймати оптимальні рішення щодо використання системи.
З іншого боку, розглядання технічних вимог для роботи додатку на
сервері дозволяє розробникам забезпечити ефективну та надійну роботу
програми. Це включає в себе вивчення вимог щодо потужності сервера,
оптимізації програмного коду, забезпечення безпеки даних та відповідності
стандартам безпеки.
Отже, вивчення та аналіз технічних вимог є важливим кроком як для
користувачів, які бажають ефективно використовувати систему, так і для
розробників, які прагнуть забезпечити надійну та безпечну роботу додатку.
Для встановлення PWA (прогресивної веб-аплікації) на пристрої
користувача потрібно враховувати такі технічні вимоги:
1. Підтримка браузером. Підтримка PWA визначається браузером, який
використовується на пристрої. Більшість сучасних браузерів, таких як
Google Chrome, Mozilla Firefox, Microsoft Edge, Safari, підтримують
PWA;
2. Операційна система. PWA можуть бути встановлені на різних
операційних системах, включаючи Windows, macOS, Android та iOS;
3. Доступ до Інтернету. Хоча PWA можуть працювати в автономному
режимі завдяки сервісному робітнику (Service Worker), але для їх
встановлення та оновлення потрібне підключення до Інтернету;
4. Наявність веб-адреси (URL). PWA є веб-додатками, тому для їх
встановлення потрібно мати URL-адресу, з якої вони можуть бути
завантажені;
5. Пам'ять пристрою. Після встановлення PWA вони можуть займати
деякий обсяг пам'яті на пристрої, особливо якщо вони
використовуються в автономному режимі та кешують велику кількість
даних.
Лист
ЧДТУ.241354.005 ПЗ т
Зм. Лист № докум. Підпис Дат 39
а
Загалом PWA можуть бути встановлені на багатьох сучасних
пристроях та операційних системах, якщо вони відповідають
вищезазначеним технічним вимогам.
PWA може бути встановлено на будь-який сучасний Android- та
iPhone-пристрій. Обидві платформи підтримують встановлення PWA через
браузер, що дає користувачам можливість додати веб-додаток на головний
екран свого пристрою. Після встановлення PWA може працювати у режимі,
що нагадує звичайний додаток, надаючи користувачам швидкий доступ та
зручний досвід використання.
Розроблена програма повинна мати можливість працювати на
хмарному сервісі, такому як AWS (Amazon Web Services). Використання
хмарної інфраструктури дозволяє забезпечити надійність, масштабованість та
безпеку програмного забезпечення.
Хмарні сервіси, такі як AWS, надають широкий спектр інструментів та
сервісів для розгортання, керування та моніторингу програмних додатків.
Зокрема, AWS пропонує послуги обчислення, зберігання даних, мережі, баз
даних, інструменти для аналізу даних та безпеки [12].
Розгортання програми на хмарному сервісі дозволяє зосередитися на
розробці функціональності додатку, мінімізуючи необхідність в управлінні та
підтримці інфраструктури. Крім того, використання хмарних сервісів
дозволяє легко масштабувати додаток зростаючим потребам та забезпечує
високу доступність за рахунок розподілених систем.
Отже, використання хмарного сервісу, такого як AWS, є важливим
аспектом розробки програмного забезпечення, який дозволяє забезпечити
надійність, масштабованість та ефективність роботи додатку.
Налаштування резервного копіювання на AWS ресурсах є ключовим
аспектом інфраструктурного управління, що забезпечує безпеку та надійність
даних і додатків. Це важливо для захисту від можливих загроз, таких як
випадкове видалення, кібератаки або системні збої, які можуть призвести до
Лист
ЧДТУ.241354.005 ПЗ т
Зм. Лист № докум. Підпис Дат 40
а
втрати важливої інформації. Резервне копіювання забезпечує можливість
відновлення даних до попереднього стану, зменшуючи час та витрати на
відновлення роботи системи. Крім того, відповідно до стандартів безпеки та
регулятивних вимог, наявність ефективної стратегії резервного копіювання є
обов'язковим елементом для багатьох організацій. Таким чином, розробники
та адміністратори повинні приділяти належну увагу налаштуванню та
плануванню резервного копіювання на AWS, щоб забезпечити безпеку та
надійність їхніх систем і даних.
Загалом, технічні вимоги для системи є досить стандартними для
індустрії. Це означає, що система відповідає загальноприйнятим стандартам
та нормам безпеки, надійності і ефективності. Вимоги можуть включати в
себе такі аспекти, як захист даних, забезпечення високої доступності,
оптимізація продуктивності, адаптивність до змінного навантаження,
відповідність регулятивним вимогам тощо. При розробці системи важливо
враховувати ці вимоги та забезпечувати їх виконання, щоб забезпечити
стабільну та безпечну роботу програмного забезпечення.
3.4 Оцінка ефективності
Оцінка ефективності програми після її розробки є ключовим етапом в
життєвому циклі програмного забезпечення. Важливо розуміти, наскільки
програма відповідає вимогам, чи забезпечує вона потрібні функції та якість
обслуговування користувачів.
Оцінка ефективності дозволяє виявити будь-які недоліки, помилки або
дефекти, які можуть бути присутніми у програмі після розробки. Це дозволяє
виправити їх перед впровадженням програми в експлуатацію. Також, це
допомагає впевнитися, що програма відповідає всім вимогам, встановленим
на етапі розробки, і виконує всі необхідні функції.
Шляхом аналізу ефективності можна виявити можливі області
покращення щодо продуктивності та швидкості роботи програми, що
Лист
ЧДТУ.241354.005 ПЗ т
Зм. Лист № докум. Підпис Дат 41
а
дозволяє зробити її більш ефективною та швидшою. Оцінка ефективності
допомагає забезпечити високу якість обслуговування користувачів, що в
свою чергу сприяє задоволенню користувачів та підтримці їх лояльності.
Отже, оцінка ефективності програми після її розробки є важливим
кроком для забезпечення успішної експлуатації програмного забезпечення та
задоволення потреб користувачів.
Оцінюючи ефективність програми, можна відзначити її можливість
працювати з транзакціями і рахунками з різних банків. Це важливий аспект
для програми управління фінансами, оскільки багато користувачів мають
рахунки у різних банках або користуються послугами різних фінансових
установ.
Здатність програми інтегруватися з різними банками та обробляти
транзакції з різних джерел дозволяє користувачам отримувати повний звіт
про свої фінанси на одному зручному для них ресурсі. Це спрощує процес
ведення обліку та дозволяє користувачам ефективніше керувати своїми
фінансами.
Такий функціонал робить програму більш гнучкою та привабливою для
широкого кола користувачів, дозволяючи їм зручно керувати своїми
фінансами, незалежно від того, в якому банку вони мають рахунок.
На сьогоднішній день на українському ринку відсутні програмні
рішення, що повністю аналогічні розробленій програмі. Розроблений
додаток, здатний інтегруватися з різними банками, керувати транзакціями та
рахунками з різних джерел, та забезпечує широкі можливості управління
фінансами, є унікальною пропозицією на ринку. Його можливості
дозволяють користувачам ефективно керувати своїми фінансами та
отримувати повний контроль над своїми фінансовими потоками.
Цей додаток вирізняється від інших програм тим, що забезпечує
інтеграцію з різними банками, що дозволяє користувачам зручно керувати
різними аспектами своїх фінансів без необхідності використання декількох
Лист
ЧДТУ.241354.005 ПЗ т
Зм. Лист № докум. Підпис Дат 42
а
програм чи сервісів. Така унікальність розробленого додатку робить його
вельми привабливим для користувачів, які прагнуть отримати зручний та
функціональний інструмент для управління своїми фінансами.
Серед недоліків розробленого додатку слід відзначити його велику
залежність від API банків. Оскільки програма отримує дані про транзакції та
рахунки через API банків, будь-які зміни у цих API можуть вплинути на
роботу програми. Наприклад, в разі зміни структури даних або введення
нових обмежень з боку банку, може знадобитися внесення відповідних змін у
програму для забезпечення її правильної роботи.
Ця залежність може призвести до потреби в регулярному оновленні
програмного забезпечення та вирішенні проблем, пов'язаних зі змінами в API
банків. Крім того, неможливість передбачити всі можливі зміни у API може
стати причиною непередбачуваних проблем у роботі програми.
Отже, важливо мати на увазі цей недолік і розробляти стратегії для
ефективного управління залежністю програми від API банків, такі як
постійне відслідковування змін у API та швидке реагування на них, а також
створення резервних планів у разі виникнення проблем.
3.5 Висновки до розділу 3
У розділі "Розробка автоматизованої системи менеджменту
банківських рахунків" були ретельно проаналізовані та викладені
надзвичайно важливі аспекти. Структура системи, що базується повністю на
AWS, детально описується, враховуючи переваги і можливості
інфраструктури хмарних обчислень. Опис функцій системи надає чітке
уявлення про те, які операції можна виконувати та як користувачі можуть
взаємодіяти з системою.
Технічні вимоги для роботи з системою визначаються з урахуванням
найкращих практик AWS та забезпечують оптимальну продуктивність та
надійність. Оцінка ефективності системи дозволяє визначити, наскільки
Лист
ЧДТУ.241354.005 ПЗ т
Зм. Лист № докум. Підпис Дат 43
а
успішно вона виконує свої функції та як вона впливає на ефективність і
продуктивність банківських операцій.
Отже, цей розділ надає повну картину розробки та функціональності
автоматизованої системи менеджменту банківських рахунків, підкреслюючи
важливість правильного вибору технологій та інфраструктури для
досягнення успіху у цьому конкретному проекті.
Лист
ЧДТУ.241354.005 ПЗ т
Зм. Лист № докум. Підпис Дат 44
а
4 ЗАХИСТ АВТОМАТИЗОВАНОЇ СИСТЕМИ
4.1 Огляд існуючих рішень
На сьогоднішній день у банківській сфері України склалася визначена
система заходів безпеки, яку можна розглядати як стабільний стан
життєдіяльності, який гарантує виконання основних цілей і інтересів банків,
а також захист від зовнішніх та внутрішніх загроз, незалежно від умов
функціонування. Основним показником ефективності безпеки у банківській
сфері є стійкість фінансового та економічного стану банку.
Мета безпеки у банківській діяльності полягає в усуненні можливостей
завдання банку збитків або втрати вигоди, а також у забезпеченні його
ефективної роботи та якісного здійснення операцій та угод. Для досягнення
цієї мети виконуються такі завдання, як профілактика та запобігання
правопорушенням і злочинним діянням щодо власності, персоналу та іміджу
банку, виявлення та нейтралізація загроз, виявлення та реагування на зміни у
діяльності та інтересах банку, формування умов для реалізації інтересів
банку, навчання персоналу з питань безпеки, запобігання негативним
наслідкам від дій конкурентів або злочинців.
Безпека в банківській сфері розглядається як комплексна система
захисту інтересів банку, яка включає в себе різноманітні заходи, спрямовані
на досягнення визначених цілей безпеки [13]. Забезпечення надійності та
ефективності банківської діяльності залежить від виконання вимог до
системи безпеки банку, які включають безперервність, плановість,
конкретність, активність, універсальність та комплексність.
Сили безпеки керуються принципами, які базуються на принципі
законності. Це передбачає, що заходи, спрямовані на забезпечення безпеки
банківської діяльності, повинні ґрунтуватися на чинному законодавстві
України та визнаних міжнародних актах.
Лист
ЧДТУ.241354.005 ПЗ т
Зм. Лист № докум. Підпис Дат 45
а
Безпека в банківській сфері є невід'ємною складовою успішної
діяльності банків, що має вирішальне значення для забезпечення довіри
клієнтів і стабільності фінансової системи в цілому. Завдяки комплексній
системі заходів безпеки банків забезпечується захист клієнтських коштів,
конфіденційність особистої інформації, запобігання шахрайству та
фінансовим злочинам.
Ключовими аспектами безпеки банківської діяльності є захист від
кібератак, збереження фінансової стабільності, виявлення та запобігання
внутрішнім шахрайствам та корупції, а також дотримання вимог
законодавства та міжнародних стандартів у сфері фінансів.
Для забезпечення ефективної безпеки банківської діяльності
використовуються такі інструменти, як системи кіберзахисту, моніторинг
фінансових операцій, впровадження профілактичних заходів проти
внутрішнього шахрайства, аудит безпеки та навчання персоналу щодо
виявлення та реагування на потенційні загрози. Такі заходи сприяють
підвищенню рівня безпеки та збереженню довіри клієнтів до банківської
системи.
База даних виконує функцію зберігання, редагування та опрацювання
великого обсягу взаємопов'язаної інформації. За допомогою єдиної бази
даних, що зберігає великі об'єми даних, можна створювати різноманітні
групи інформації, такі як особисті дані, дані про клієнтів, корпоративні дані,
історія замовлень, каталог товарів і т.д [14]. Однак однією з ключових вимог
до баз даних є забезпечення безпеки даних.
Захист баз даних включає комплекс заходів, спрямованих на захист
систем управління базами даних від кібератак і незаконного використання, а
також на забезпечення конфіденційності, цілісності і доступності даних.
Програми безпеки баз даних мають на меті захист від несанкціонованого
доступу, пошкодження і вторгнень у бази даних, системи управління даними
та пов'язаних додатків.
Лист
ЧДТУ.241354.005 ПЗ т
Зм. Лист № докум. Підпис Дат 46
а
Заходи забезпечення безпеки баз даних охоплюють:
1. Захист даних у базі даних;
2. Захист системи управління базами даних;
3. Захист всіх пов'язаних додатків;
4. Захист фізичних або віртуальних серверів баз даних і основного
обладнання;
5. Захист обчислювальної та мережевої інфраструктури, яка
використовується для доступу до баз даних.
Захист баз даних – це великий і складний проект, який охоплює всі
аспекти технологій та практик інформаційної безпеки. Хоча доступність та
корисність баз даних є важливими, вони також роблять їх вразливими перед
кібератаками.
Шифрування даних – це процес перетворення звичайного тексту або
інформації в нечитабельний формат, який називається шифротекстом, за
допомогою спеціального алгоритму або ключа. Це робить дані
незрозумілими для незаконних користувачів, які не мають потрібного ключа
для розшифрування. Шифрування даних використовується для захисту
конфіденційності та безпеки інформації під час її передачі через мережі,
зберігання на пристроях або обробки в системах зберігання.
Шифрування даних використовує математичні алгоритми, які
перетворюють звичайний текст у формат, який може бути читабельним
тільки за допомогою відповідного ключа. Цей ключ може бути симетричним
(одним і тим же для шифрування та дешифрування) або асиметричним (з
окремими ключами для шифрування та дешифрування) [15]. Шифрування
дозволяє захистити дані від несанкціонованого доступу, забезпечуючи їх
конфіденційність та цілісність. Також воно може застосовуватися для
забезпечення аутентифікації та підтвердження джерела даних. Шифрування
даних є важливою складовою в багатьох сферах, включаючи фінанси,
медицину, комунікації та інформаційні технології [16].
Лист
ЧДТУ.241354.005 ПЗ т
Зм. Лист № докум. Підпис Дат 47
а
Шифрування даних може бути використане для захисту конфіденційної
інформації від несанкціонованого доступу під час її передачі через мережу
Інтернет або зберігання на пристроях зберігання даних. Вони застосовуються
у різних сферах, включаючи електронну комерцію, медичні послуги,
фінансові установи, а також у військовій та правоохоронній сферах.
Шифрування даних також є важливим для дотримання різних регуляторних
вимог та стандартів безпеки, таких як GDPR (Загальний регламент щодо
захисту даних) в Європейському Союзі або HIPAA (Страхова портативність
та відповідальність за захист медичної інформації) у Сполучених Штатах
[17]. Важливою частиною ефективного впровадження шифрування даних є
правильний вибір алгоритмів шифрування та ключів, а також відповідна
управлінська підтримка та політики безпеки даних.
Може використовуватися для захисту різноманітної інформації,
включаючи особисті дані, фінансову інформацію, комерційні та військові
секрети. Воно застосовується у різних формах, таких як симетричне
шифрування, де один ключ використовується як для шифрування, так і для
розшифрування даних, або асиметричне шифрування, де для шифрування
використовується публічний ключ, а для розшифрування – приватний ключ.
Технології шифрування дозволяють забезпечувати конфіденційність,
цілісність та доступність даних, а також можуть використовуватися для
підпису та аутентифікації даних. У сучасному світі, де даними обмінюються
на різних рівнях, від електронної пошти до банківських транзакцій,
шифрування даних стає все більш важливою складовою безпеки інформації.
Шифрування може бути застосоване на різних рівнях, в залежності від
потреб та контексту використання.
Рівень файлів або об'єктів – це шифрування застосовується до окремих
файлів або об'єктів даних. Він дозволяє зашифрувати конкретні файли або
об'єкти, зберігаючи їх в зашифрованому вигляді на пристрої або в мережі.
Лист
ЧДТУ.241354.005 ПЗ т
Зм. Лист № докум. Підпис Дат 48
а
Рівень диска – шифрування на рівні диска застосовується до цілого
сховища даних або диска. Це означає, що всі дані на диску шифруються,
включаючи операційну систему, програми та дані користувачів.
Рівень бази даних – на цьому рівні шифруються дані, що зберігаються
в базі даних. Шифрування може бути застосоване до всієї бази даних або
лише до окремих стовпців або полів, що містять конфіденційну інформацію.
Рівень мережі – шифрування на рівні мережі використовується для
захисту даних під час їх передачі через мережу. Це може включати
застосування протоколів шифрування, таких як SSL/TLS, для захисту
комунікації між клієнтом і сервером [18].
Рівень програмного забезпечення – рівень включає в себе застосування
шифрування в рамках окремих програм або додатків. Наприклад, програмне
забезпечення може використовувати шифрування для захисту
конфіденційних даних, які зберігаються в пам'яті або передаються через
мережу.
Ці рівні можуть використовуватися окремо або в поєднанні для
створення повноцінної системи захисту даних.
4.2 Реалізація захисту даних користувачів
Захист особистої інформації користувача в контексті додатку для
управління банківськими рахунками є надзвичайно важливою складовою.
Оскільки такі додатки містять чутливі фінансові дані, такі як баланси
рахунків, історія транзакцій, а також особисту ідентифіковану інформацію
(PII), таку як ім'я, адреса та інші особисті дані, їх недостатня захищеність
може призвести до серйозних наслідків, включаючи фінансові втрати та
порушення приватності.
Користувачі повинні мати впевненість, що їхні фінансові дані
залишаються конфіденційними та захищеними від несанкціонованого
Лист
ЧДТУ.241354.005 ПЗ т
Зм. Лист № докум. Підпис Дат 49
а
доступу. Виток таких даних може призвести до шахрайства або крадіжки
особистості.
Забезпечення цілісності даних гарантує, що інформація не піддавалася
змінам або втручанням з боку несанкціонованих користувачів чи програм.
Забезпечення доступності даних означає, що користувачі мають
надійний доступ до своїх фінансових даних у відповідний момент часу без
перешкод або затримок.
Додатки для управління банківськими рахунками повинні
дотримуватися вимог щодо захисту особистих даних, таких як GDPR, HIPAA
та інші, які встановлені відповідними органами.
GDPR (General Data Protection Regulation) – це регуляція, яка
встановлює стандарти захисту особистих даних громадян Європейського
Союзу (ЄС) та Європейського Економічного Простору (ЄЕП). Вона набула
чинності 25 травня 2018 року та призначена для уніфікації та посилення
правил щодо захисту особистих даних для всіх країн-членів ЄС.
HIPAA (Health Insurance Portability and Accountability Act) – це
законодавчий акт в Сполучених Штатах, спрямований на захист
конфіденційності та безпеки медичної інформації. Він встановлює стандарти
для зберігання та обробки медичних даних, а також визначає права та
обов'язки пацієнтів та провайдерів медичних послуг [19]. HIPAA надає
пацієнтам контроль над їхніми медичними записами та обмежує доступ до
цієї інформації без дозволу.
Розроблений PWA додаток взаємодіє з backend сервісами та
банківськими API через захищені зʼєднання за протоколом HTTPS. Це
забезпечує шифрування даних, що передаються між клієнтом та сервером, та
забезпечує конфіденційність та безпеку під час обміну інформацією.
Взаємодія з backend сервісами дозволяє додатку отримувати та
обробляти дані, необхідні для відображення інформації користувачам, такої
Лист
ЧДТУ.241354.005 ПЗ т
Зм. Лист № докум. Підпис Дат 50
а
як баланс рахунків чи історія транзакцій. Ці сервіси можуть бути розгорнуті
на власних серверах або в хмарних сервісах.
Крім того, використання банківських API дозволяє додатку взаємодіяти
з банківськими системами для виконання різноманітних фінансових
операцій, таких як перекази коштів, перевірка балансів та інші. Це забезпечує
користувачам зручний та безпечний спосіб управління своїми фінансами без
необхідності виходити з додатку.
Усі ці операції відбуваються через захищені зʼєднання за протоколом
HTTPS, що забезпечує конфіденційність та цілісність даних під час їх
передачі через мережу Інтернет.
Для забезпечення захищеного з'єднання за протоколом HTTPS
використовується надійний SSL (Secure Sockets Layer) сертифікат. SSL
сертифікати використовуються для шифрування даних, що передаються між
веб-сервером і браузером, тим самим забезпечуючи конфіденційність і
цілісність інформації під час її передачі через Інтернет.
SSL сертифікати видаються довіреними центрами сертифікації, які
перевіряють ідентичність та автентичність власника домену. Після
встановлення SSL сертифіката на веб-сервері, з'єднання між браузером
користувача і сервером буде шифруватися за допомогою криптографічних
алгоритмів, забезпечуючи високий рівень безпеки.
Використання надійного SSL сертифіката є важливим аспектом
забезпечення безпеки додатку, оскільки це забезпечує захищене з'єднання
між клієнтом та сервером, запобігаючи можливим атакам, таким як
перехоплення даних або атаки "прослуховування".
Додаток зберігає отримані дані з банку у власну базу даних,
використовуючи шифрування AES-256-GCM. AES (Advanced Encryption
Standard) є сучасним стандартом шифрування, а GCM (Galois/Counter Mode)
Лист
ЧДТУ.241354.005 ПЗ т
Зм. Лист № докум. Підпис Дат 51
а
– режимом шифрування, який забезпечує аутентифікацію даних та захист від
атак на цілісність [20].
Шифрування AES-256-GCM надає високий рівень безпеки та
конфіденційності для збережених банківських даних у додатку.
Використання цього типу шифрування дозволяє захистити дані від
несанкціонованого доступу та забезпечує відсутність можливості
несанкціонованої модифікації чи порушення цілісності даних під час їх
передачі чи зберігання.
Отже, використання шифрування AES-256-GCM допомагає
забезпечити безпеку та захист конфіденційної інформації користувачів у
додатку для управління банківськими даними.
Отримавши несанкціонований доступ до бази даних, користувач не
зможе прочитати інформацію, збережену в базі, оскільки вся інформація
зашифрована. Використання шифрування дозволяє забезпечити безпеку
даних, навіть у випадку, коли зловмисник отримав доступ до бази даних.
У випадку, коли дані зберігаються в зашифрованому вигляді, навіть
якщо несанкціонована особа отримує доступ до бази даних, вона не зможе
прочитати чи розшифрувати ці дані без належного ключа шифрування. Це
забезпечує додатковий шар безпеки та захисту конфіденційності даних навіть
у випадку можливого порушення безпеки.
Такий підхід забезпечує високий рівень безпеки та конфіденційності
даних, що зберігаються в базі даних додатку, і дозволяє забезпечити захист
інформації від несанкціонованого доступу.
У розробленій програмі використовується наскрізне шифрування, що
означає, що дані шифруються та розшифровуються з використанням ключа,
який прив'язаний до конкретного користувача. При вході в систему кожен
користувач передає свій унікальний ключ, який використовується для
шифрування та розшифрування його даних.
Лист
ЧДТУ.241354.005 ПЗ т
Зм. Лист № докум. Підпис Дат 52
а
Цей підхід забезпечує додатковий рівень безпеки, оскільки кожен
користувач має власний ключ, і тільки з цим ключем можна розшифрувати
дані, які відносяться до цього конкретного користувача. Це означає, що
навіть у випадку, коли зловмисник отримує доступ до бази даних, він не
зможе прочитати чи розшифрувати дані без правильного ключа.
Такий підхід забезпечує максимальний рівень конфіденційності та
безпеки даних користувачів, оскільки вони залишаються зашифрованими і
недоступними для всіх, хто не має відповідного ключа.
Для реалізації системи було використано хмарну платформу AWS
(Amazon Web Services), яка надійно захищає дані, розміщені в ній. AWS
пропонує широкий спектр інструментів та сервісів для забезпечення безпеки
даних, включаючи захист від несанкціонованого доступу, мережеву безпеку,
шифрування даних та інші.
Хмарна платформа AWS володіє високим рівнем захисту, включаючи
фізичні, мережеві та логічні заходи безпеки, які забезпечують
конфіденційність, цілісність та доступність даних [21]. Крім того, AWS
пропонує різні сервіси для моніторингу та аудиту безпеки, що дозволяє
виявляти та реагувати на будь-які потенційні загрози для безпеки даних.
Такий вибір хмарної платформи допомагає забезпечити високий рівень
безпеки та захисту для системи, що обробляє конфіденційну інформацію
користувачів.
Враховуючи вищевикладене, можна зробити висновок, що дані
користувача надійно захищені. Застосування комплексного підходу до
безпеки, такого як використання шифрування на різних рівнях (AES-256-
GCM та наскрізне шифрування з унікальними ключами), використання
хмарної платформи AWS з її високими стандартами безпеки та захисту
даних, а також вимоги ключа для доступу до даних, гарантують надійність
збереження конфіденційної інформації користувачів. Такий комплексний
Лист
ЧДТУ.241354.005 ПЗ т
Зм. Лист № докум. Підпис Дат 53
а
підхід забезпечує високий рівень захисту даних і довіру користувачів до
системи.
4.3 Висновки до розділу 4
У розділі "Захист автоматизованої системи" були проведені огляд
існуючих рішень щодо захисту даних користувачів та реалізовані стратегії
захисту в рамках розробленої системи. Огляд існуючих рішень дозволив
з'ясувати найкращі практики та стандарти безпеки, що використовуються в
сучасних технологічних рішеннях.
Реалізація захисту даних користувачів в системі була виконана на
високому рівні, враховуючи потенційні загрози та ризики. Були впроваджені
різноманітні заходи безпеки, такі як шифрування даних, двохфакторна
аутентифікація, контроль доступу та моніторинг подій. Ці заходи спрямовані
на запобігання несанкціонованому доступу до конфіденційної інформації та
забезпечення конфіденційності, цілісності та доступності даних
користувачів.
Таким чином, отримані результати цього розділу підкреслюють
значення належного захисту автоматизованої системи та даних користувачів,
а також демонструє готовність розробленої системи до ефективного
вирішення викликів у сфері кібербезпеки.
Лист
ЧДТУ.241354.005 ПЗ т
Зм. Лист № докум. Підпис Дат 54
а
ВИСНОВКИ
Метою кваліфікаційної роботи було створення комплексного та
ефективного інструменту для автоматизованого віддаленого управління
банківськими рахунками.
У ході розробки автоматизованої системи управління банківськими
рахунками було проведено дослідження та розглянуто різні аспекти,
починаючи від вибору технологій та інструментів розробки, закінчуючи
захистом системи та даних користувачів. Огляд існуючих технологій та
рішень надав можливість вибрати найбільш оптимальні та сучасні засоби для
створення ефективної та надійної системи.
Структура системи, що базується на AWS, забезпечує масштабованість,
надійність та високу продуктивність, відповідаючи сучасним вимогам до
хмарних рішень. Опис функцій системи відображає широкий спектр
можливостей, що надається користувачам для зручного та ефективного
управління своїми банківськими рахунками.
Захист даних користувачів виявився важливою складовою проекту.
Реалізація заходів безпеки, таких як шифрування, аутентифікація та
моніторинг, гарантує конфіденційність, цілісність та доступність даних, що є
вирішальними аспектами в банківській сфері.
Усі ці аспекти взаємодоповнюють один одного, створюючи інтегровану
та ефективну систему управління банківськими рахунками, яка відповідає
сучасним вимогам та забезпечує високий рівень обслуговування та безпеки
для клієнтів. Розроблена в роботі система спрямована на спрощення процесів
керування рахунками, забезпечення зручного та безпечного доступу до
фінансових операцій, відображення детальної інформації про транзакції та
стан рахунків. Запропонована у роботі система управління банківськими
рахунками робить управління фінансами більш зручним для клієнтів,
Лист
ЧДТУ.241354.005 ПЗ т
Зм. Лист № докум. Підпис Дат 55
а
дозволяючи їм легко та швидко здійснювати різні операції без необхідності
відвідування банківського відділення. А створення безпечного віддаленого
доступу до фінансових операцій та збереження детальної інформації про
транзакції і стан рахунків допомагає уникнути шахрайства та забезпечує
конфіденційність особистої інформації.
Лист
ЧДТУ.241354.005 ПЗ т
Зм. Лист № докум. Підпис Дат 56
а
ДОДАТОК А
«ЗАТВЕРДЖУЮ»
Завідувач кафедри ІБ та КІ
д.т.н., професор Віра БАБЕНКО
__________________
«___» ____________ 2024 року
Автоматизована система менеджменту банківських рахунків
Специфікація
482.ЧДТУ.41354-01
Листів 2
Розробник _______________ Володимир ОСТАПЕЦЬ
Керівник _______________ Віра БАБЕНКО
Черкаси 2024
2
482.ЧДТУ.41354-01
Позначення Найменування Примітка
Документація
482.ЧДТУ.41354-01 12 01 Текст програми
482.ЧДТУ.41354-01 34 01 Інструкція користувача
ДОДАТОК Б
Автоматизована система менеджменту банківських рахунків
Текст програми
482.ЧДТУ.41354-01 12 01
Листів 14
Розробник: Володимир ОСТАПЕЦЬ
Черкаси 2024
2
482.ЧДТУ.41354-01 12 01
import moment from 'moment/moment';
import { StrictMode } from 'react';
import { createRoot } from 'react-dom/client';
import {
BrowserRouter,
Routes,
Route
} from 'react-router-dom';
import ShellPage from './pages/shell';
import DetailsPage from './pages/shell/details';
import CreatePage from './pages/shell/create';
import BudgetsPage from './pages/budgets';
import UpdatePage from './pages/update';
import AccountsPage from './pages/accounts';
import TransactionsPage from './pages/budgets/transactions';
import CreateBudgetPage from './pages/budgets/create';
import ExchangeRatesPage from './pages/exchange-rates';
import 'moment/dist/locale/uk';
import './index.scss';
moment.locale('uk');
(async () => {
const response = await fetch('/version.json');
const data = await response.json();
if (data?.version !== __APP_ENV__) {
window.location.reload();
}
})();
const domNode = document.getElementById('root');
const root = createRoot(domNode as Element);
root.render(
<StrictMode>
<BrowserRouter>
<Routes>
3
482.ЧДТУ.41354-01 12 01
<Route path="/" element={<ShellPage/>}>
<Route path="/budgets/:budgetId/transactions/:transactionId/details"
element={<DetailsPage/>} />
<Route path="/budgets/:budgetId/transactions/create"
element={<CreatePage/>} />
</Route>
<Route path="/accounts" element={<AccountsPage/>} />
<Route path="/accounts/:accountId/budgets" element={<BudgetsPage/>}>
<Route path="/accounts/:accountId/budgets/create"
element={<CreateBudgetPage/>}/>
<Route path="/accounts/:accountId/budgets/:budgetId/transactions"
element={<TransactionsPage/>}>
<Route
path="/accounts/:accountId/budgets/:budgetId/transactions/:transactionId/details"
element={<DetailsPage/>} />
</Route>
</Route>
<Route path="/update" element={<UpdatePage/>} />
<Route path="/exchange-rates" element={<ExchangeRatesPage/>}/>
</Routes>
</BrowserRouter>
</StrictMode>
);
import React from 'react';
import { NavLink } from 'react-router-dom';
import { useRequest } from '../../rest/client';
import { Footer } from '../../components/common';
import { ListContainer } from '../../containers/accounts';
import { queries } from '../../services/common/graphql';
import Styles from './accounts.module.scss';
function AccountsPage() {
const { refetch } = useRequest<{ accountsList: any[]}>(queries.ACCOUNTS);
const refreshAccountList = () => {
4
482.ЧДТУ.41354-01 12 01
refetch();
}
return (
<div className={Styles.container}>
<main>
<ListContainer/>
</main>
<Footer>
<NavLink to="/accounts" className={Styles.refreshButton}
onClick={refreshAccountList}>
<i className="fas fa-sync"></i>
</NavLink>
</Footer>
</div>
);
}
export default AccountsPage;
import React, { useEffect, useState } from 'react';
import { useNavigate } from 'react-router-dom';
import moment from 'moment';
import { useRequest } from '../../rest/client';
import { TimeRange } from '../../../enums/time-range';
import { TransactionCategory } from '../../../enums/transaction-category';
import { queries } from '../../../services/common/graphql';
import { Props } from './transactions.types';
import Styles from './transactions.module.scss';
import MONEY_OUT from './assets/money-out.png';
import PRODUCTS from './assets/product.png';
import MEDICINE from './assets/medicine.png';
import RESTAURANT from './assets/restaurant.png';
import CONSTRUCTION from './assets/construction.png';
import BANK_OPERATION from './assets/bank-operation.png';
5
482.ЧДТУ.41354-01 12 01
import STORE from './assets/store.png';
import TOYS from './assets/toys.png';
import COSMETICS from './assets/cosmetics.png';
import MONEY_IN from './assets/money-in.png';
import TELECOM_SERVICES from './assets/telecom.png';
import TAXI from './assets/taxi.png';
import PETS from './assets/pets.png';
import CLOTHING from './assets/closing.png';
import CARRIER from './assets/carrier.png';
import COMPUTER from './assets/computer.png';
import CREDIT_ORGANIZATION from './assets/credit.png';
import MUSIC from './assets/music.png';
import VIDEO from './assets/video.png';
import NO_CATEGORY from './assets/no-category.png';
function TransactionsContainer(props: Props) {
const [ getTransactions, { data } ] = useRequest<{ transactionsList:
any[]}>(queries.TRANSACTIONS_LIST);
const endOfWeek = moment().clone().endOf('isoWeek');
const startOfWeek = moment().startOf('isoWeek');
const navigate = useNavigate();
const [timeRange, setTimeRange] = useState<TimeRange | null>(null);
const periods = {
[TimeRange.DAY]: 'Сьогодні',
[TimeRange.WEEK]: 'Поточний тиждень',
[TimeRange.MONTH]: 'Весь період'
};
const getTransactionIcon = (category: string): string => {
switch (category) {
case TransactionCategory.PETS:
return PETS;
case TransactionCategory.CARRIER:
return CARRIER;
case TransactionCategory.BANK_OPERATION:
return BANK_OPERATION;
case TransactionCategory.CLOTHING:
6
482.ЧДТУ.41354-01 12 01
return CLOTHING;
case TransactionCategory.COMPUTER:
return COMPUTER;
case TransactionCategory.TAXI:
return TAXI;
case TransactionCategory.TOYS:
return TOYS;
case TransactionCategory.MUSIC:
return MUSIC;
case TransactionCategory.CONSTRUCTION:
return CONSTRUCTION;
case TransactionCategory.COSMETICS:
return COSMETICS;
case TransactionCategory.CREDIT_ORGANIZATION:
return CREDIT_ORGANIZATION;
case TransactionCategory.MEDICINE:
return MEDICINE;
case TransactionCategory.MONEY_IN:
return MONEY_IN;
case TransactionCategory.MONEY_OUT:
return MONEY_OUT;
case TransactionCategory.PRODUCTS:
return PRODUCTS;
case TransactionCategory.RESTAURANT:
return RESTAURANT;
case TransactionCategory.STORE:
return STORE;
case TransactionCategory.TELECOM_SERVICES:
return TELECOM_SERVICES;
case TransactionCategory.VIDEO:
return VIDEO;
default:
return NO_CATEGORY;
}
}
const fetchTransactionsForPeriod = (period: TimeRange) => {
switch (period) {
case TimeRange.WEEK:
const startTimeStamp = moment(props.budget?.startAt).unix();
const endTimeStamp = moment(props.budget?.endAt).unix();
7
482.ЧДТУ.41354-01 12 01
const startDate = startTimeStamp >= startOfWeek.unix() ? startTimeStamp :
startOfWeek.unix();
const endDate = endTimeStamp <= endOfWeek.unix() ? endTimeStamp :
endOfWeek.unix();
const startWeekDate = props.budget.startWeekDate ||
moment.unix(startDate).toISOString();
const endWeekDate = props.budget.endWeekDate ||
moment.unix(endDate).toISOString();
fetchTransactions(startWeekDate, endWeekDate);
break;
case TimeRange.MONTH:
const startMonthDate = props.budget.startMonthDate || props.budget.startAt;
const endMonthDate = props.budget.endMonthDate || props.budget.endAt;
fetchTransactions(startMonthDate, endMonthDate);
break;
default:
const startAt = moment().format('YYYY-MM-DD 00:00:00');
const endAt = moment().format('YYYY-MM-DD 23:59:59');
fetchTransactions(startAt, endAt);
}
};
const fetchTransactions = (startAt: string, endAt: string) => {
getTransactions({
variables: {
budgetId: props.budget?.id,
startDate: startAt,
endDate: endAt,
}
});
};
useEffect(() => {
setTimeRange(props.standalone ? TimeRange.MONTH : TimeRange.WEEK);
}, []);
useEffect(() => {
if (props.budget.id && timeRange !== null) {
fetchTransactionsForPeriod(timeRange);
}
}, [timeRange, props.budget.id]);
8
482.ЧДТУ.41354-01 12 01
const navigateToDetails = (id: string) => {
if (!props.standalone) {
navigate(`/budgets/${props.budget.id}/transactions/${id}/details`);
} else {
navigate(`/accounts/${props.budget.accountId}/budgets/${props.budget.id}/transa
ctions/${id}/details`);
}
};
return (
<section className={Styles.container}>
<nav className={Styles.filter}>
{[TimeRange.DAY, TimeRange.WEEK, TimeRange.MONTH].map((key,
index) => (
<button
key={index}
type="button"
onClick={() => setTimeRange(key)}
className={timeRange === key ? Styles.active : ''}>
{periods[key]}
{timeRange === key ? <i className="fas fa-sort-down"/> : null}
</button>
))}
</nav>
<div className={[Styles.items, props.standalone ? Styles.standalone : ''].join('
')}>
<div className={Styles.controls}>
<h2 className={Styles.title}>Список транзакцій</h2>
</div>
{(data?.transactionsList || []).map((transaction, index) => (
<div className={Styles.item} key={index} onClick={() =>
navigateToDetails(transaction.id)}>
<div className={Styles.icon}>
<img
src={getTransactionIcon(transaction.category)}
alt="transaction"/>
</div>
<div className={Styles.information}>
<h5 className={Styles.title}>{transaction.description}</h5>
9
482.ЧДТУ.41354-01 12 01
<div className={Styles.description}>
{!props.standalone ? <span
className={Styles.status}>Проведено</span> : null}
<span>{moment(transaction.createdAt).format('LLL')}</span>
</div>
</div>
<div className={[Styles.amount, transaction.amount < 0 ?
Styles.negative : ''].join(' ')}>
<span>{((transaction.amount || 0) / 100).toFixed(2)}</span>
{transaction.currency !== transaction.originalCurrency ? (
<span className={Styles.originalAmount}>
{((transaction.originalAmount || 0) / 100).toFixed(2)}
{transaction.originalCurrency}
</span>
) : null}
</div>
</div>
))}
</div>
</section>
);
}
export default TransactionsContainer;
import React, { useEffect, useState } from 'react';
import { useNavigate } from 'react-router-dom';
import moment from 'moment';
import { useRequest } from '../../rest/client';
import Styles from './list.module.scss';
import PrivatbankIcon from './assets/privatbank.png';
import { Props } from './list.types';
import {CardTypes} from '../../../enums/card-types';
import PrivatbankImage from '../../accounts/list/assets/privatbank.jpg';
import MonoImage from '../../accounts/list/assets/mono.jpg';
import CashImage from '../../accounts/list/assets/cash.jpg';
10
482.ЧДТУ.41354-01 12 01
import { queries } from '../../../services/common/graphql';
function ListContainer(props: Props) {
const navigate = useNavigate();
const accounts = useRequest<{ accountsList: any[]}>(queries.ACCOUNTS);
const budgets = useRequest<{ budgetsList: any[]}>(queries.BUDGETS_LIST, {
variables: { accountId: props.accountId },
});
const cards = {
[CardTypes.PRIVATBANK]: PrivatbankImage,
[CardTypes.MONO]: MonoImage,
[CardTypes.CASH]: CashImage
}
const [account, setAccount] = useState<any>({
balance: 0
});
const navigateToDetails = (id: string) => {
navigate(`/accounts/${account.id}/budgets/${id}/transactions`);
};
useEffect(() => {
const account = (accounts.data?.accountsList || []).find(account => account.id
=== props.accountId);
setAccount(account);
}, [accounts.data?.accountsList]);
return (
<section className={Styles.container}>
<div className={Styles.header} style={{backgroundImage:
`url(${cards[account?.source as CardTypes]})`}}>
<div className={Styles.card}>
<h4 className={[account?.balance < 0 ? Styles.negative : ''].join(' ')}>
{(account?.balance / 100).toFixed(2)} {account?.currency}
</h4>
</div>
</div>
11
482.ЧДТУ.41354-01 12 01
<div className={Styles.controls}>
<h2 className={Styles.title}>Список бюджетів</h2>
</div>
<div className={Styles.items}>
{(budgets.data?.budgetsList || []).map((budget, index) => (
<div
className={[Styles.item, parseFloat(budget.available) === 0 ?
Styles.closed : ''].join(' ')}
key={index}
onClick={() => navigateToDetails(budget.id)}>
<div className={Styles.information}>
<h5 className={Styles.title}>{budget.name}</h5>
<div className={Styles.description}>
{budget.source === 'PRIVATBANK' ? (
<img src={PrivatbankIcon} className={Styles.source}
alt="privatbank"/>
) : null}
<span className={Styles.status}>
{parseFloat(budget.available) === 0 ? 'Завершено' : 'Відкритий'}
</span>
<span>
{moment(budget.startAt).format('DD MMM YYYY')} -
{moment(budget.endAt).format('DD MMM YYYY')}
</span>
</div>
</div>
<div className={[Styles.amount, budget.available < 0 ? Styles.negative :
''].join(' ')}>
<span className={Styles.available}>
{((budget.available || 0) / 100).toFixed(2)}
</span>
<span className={Styles.amount}>
{((budget.amount || 0) / 100).toFixed(2)}
</span>
</div>
</div>
))}
</div>
</section>
);
}
12
482.ЧДТУ.41354-01 12 01
export default ListContainer;
import React from 'react';
import Highcharts from 'highcharts'
import HighchartsReact from 'highcharts-react-official'
import { Props } from './line.types';
import Styles from './line.module.scss';
function LineComponent(props: Props) {
const options = {
chart: {
height: 100,
backgroundColor: null,
margin: [5, 0, 0, 0]
},
title: {
text: ""
},
tooltip: {
enabled: !1
},
xAxis: {
minPadding: 0,
maxPadding: 0
},
yAxis: {
startOnTick: !1,
endOnTick: !1,
min: 0,
visible: !1
},
credits: {
enabled: !1
},
legend: {
enabled: !1
},
13
482.ЧДТУ.41354-01 12 01
plotOptions: {
areaspline: {
fillOpacity: 2,
linecap: "round",
lineColor: props.online ? "#6CD6EA" : "#d06565",
fillColor: {
linearGradient: {
x1: 0,
y1: 0,
x2: 0,
y2: 1
},
stops: [[0, "#1A1B35"], [1, "#1A1B35"]]
},
marker: {
enabled: false
},
lineWidth: 2,
states: {
hover: {
lineWidth: 1
}
},
threshold: null
}
},
series: [{
type: "areaspline",
animation: false,
data: (props.data || []).map(item => [
item.milliseconds,
parseFloat(item.amount)
])
}]
};
const days = [
"Вс",
"Пн",
"Вт",
"Ср",
14
482.ЧДТУ.41354-01 12 01
"Чт",
"Пт",
"Сб"
];
return (
<div className={Styles.chart}>
<HighchartsReact
highcharts={Highcharts}
options={options}
/>
<div className={Styles.dates}>
{(props.data || []).map((item, index) => (
<span key={index}>{days[item.day]}</span>
))}
</div>
</div>
);
}
export default LineComponent;
ДОДАТОК В
Автоматизована система менеджменту банківських рахунків
Інструкція користувача
482.ЧДТУ.41354-01 34 01
Листів 4
Розробник: Володимир ОСТАПЕЦЬ
Черкаси 2024
2
482.ЧДТУ.41354-01 34 01
Першим кроком для початку роботи з системою є налаштування AWS
S3 та AWS CloudFront. AWS S3 служить основним сховищем для файлів, тому
ви повинні створити бакет S3, що є віртуальним контейнером для зберігання
даних. Після створення бакету, вам буде необхідно завантажити в нього ваші
статичні файли, такі як HTML, CSS, JavaScript та зображення. Важливо
налаштувати доступ до бакету, щоб забезпечити відповідний рівень безпеки.
Після цього слід перейти до налаштування AWS CloudFront. CloudFront
- це CDN, яка допомагає прискорити доставку контенту до кінцевих
користувачів. Налаштування CloudFront дозволить вам підключити ваш бакет
S3 та отримати унікальний URL, за допомогою якого можна буде отримати
доступ до вашого статичного сайту. Це забезпечить швидкий доступ до вашого
вмісту для користувачів з будь-якої точки світу.
Налаштування статичного сайту включає в себе кілька кроків, які
допоможуть забезпечити правильну роботу вашого сайту на AWS S3 та AWS
CloudFront.
Перш ніж почати, впевніться, що ваші статичні файли (HTML, CSS,
JavaScript, зображення тощо) готові для розміщення на вашому сайті.
Завантажте їх до бакету AWS S3. Установіть індексний файл (зазвичай
index.html), який буде відображатися за замовчуванням, коли користувачі
відвідують ваш сайт.
Встановіть налаштування доступу до вашого бакету AWS S3 таким
чином, щоб файли були доступні публічно. Це можна зробити за допомогою
політики управління доступом (IAM) або налаштуванням прав доступу до
об'єктів.
Створіть дистрибутив CloudFront, який буде передавати контент з
вашого бакету S3. Вкажіть бакет S3 як джерело контенту для CloudFront. Після
цього вам буде надано URL-адресу CloudFront, яка буде використовуватися
для доступу до вашого статичного сайту.
3
482.ЧДТУ.41354-01 34 01
Підключіть ваш домен до CloudFront, оновивши записи DNS таким
чином, щоб ваш домен вказував на URL-адресу CloudFront. Це забезпечить
коректне маршрутизацію запитів до вашого сайту через CDN.
Після виконання цих кроків розроблена система буде налаштована для
роботи на AWS S3 та AWS CloudFront. Важливо перевірити правильність
налаштувань і впевнитися, що розроблений сайт коректно відображається та
доступний для користувачів.
Коли система вже працює і інфраструктура AWS S3 та AWS CloudFront
налаштована, наступним кроком є завантаження конфігураційних файлів до
бакету S3. Ці файли містять налаштування, які програма використовує для
правильної роботи з сервером. Наприклад, це може бути файл налаштувань
бази даних, конфігураційні файли для зовнішніх сервісів або параметри зв'язку
з API.
Коли файли готові, їх можна завантажити до відповідного бакету S3
через консоль керування AWS або за допомогою SDK. Потім вам потрібно
встановити налаштування доступу до цих файлів, щоб ваша програма могла
звертатися до них. Це може бути зроблено шляхом налаштування політик
безпеки або роблячи файли публічно доступними.
Після завантаження конфігураційних файлів і налаштування доступу до
них, ваша програма зможе завантажити ці файли з бакету S3 і використовувати
їх для налаштування свого середовища або взаємодії з іншими сервісами. Це
важливий крок, який допомагає забезпечити правильну роботу вашої системи
та зберігає конфіденційні дані в безпечному місці.
Встановлення PWA через додавання його на головний екран пристрою
дуже зручний і інтуїтивно зрозумілий процес для користувачів. Замість того,
щоб шукати і завантажувати додаток з магазину додатків, користувач може
просто відвідати веб-сайт, який підтримує PWA, і з одного кліку додати його
на головний екран свого пристрою.
4
482.ЧДТУ.41354-01 34 01
Цей метод створює враження, що веб-застосунок працює як
повноцінний додаток, адже він запускається з головного екрана, має власну
піктограму і може навіть працювати в автономному режимі. Користувачі
можуть легко доступатися до своїх улюблених веб-застосунків без
необхідності встановлювати додатки, що робить їх досить привабливими для
використання.
Цей спосіб розповсюдження PWA дозволяє розробникам привертати
увагу до своїх продуктів, забезпечуючи простий доступ до них для
користувачів. Такий простий спосіб встановлення PWA сприяє їх
популярності та використанню, дозволяючи створювати зручні та ефективні
веб-застосунки.
СПИСОК ВИКОРИСТАНИХ ДЖЕРЕЛ
1. Статутенко В.В., Кінчар А.В., Гречук О.О. Автоматизовані системи
управління банківськими рахунками: навч. Посібник. К.: Центр учбової
літератури, 2018. 256 с.
2. Коваленко О.В. , Данильченко Л.П. Банківське обслуговування: навч.
посібник. К.: Кондор, 2019. 368 с.
3. Ткаченко Л.В., Чумаченко А.І. Системи автоматизованого банківського
обліку: підручник. К.: КНЕУ, 2017. 448 с.
4. Черних І.П., Кравченко І.В. Технології створення програмного
забезпечення для банківських установ: навч. посібник. Харків: ХНУРЕ,
2018. 240 с.
5. Банківські технології: підручник / за заг. ред. В. М. Шеремета. К.:
Знання, 2019. 512 с.
6. Грищенко І.М., Кузьменко В.В., Шаповал О.О. Банківська справа: навч.
посібник. К.: КНЕУ, 2019. 432 с.
7. Бездітко О.Г., Болотіна В.В. Інформаційні технології в банківській
справі: навч. посібник. К.: Центр навчальної літератури, 2018. 368 с.
8. Котова Л.Г., Булатова О.В., Ващенко І.В. Банківська інформатика: навч.
посібник. К.: Центр учбової літератури, 2019. 416 с.
9. Полякова О.Є., Данилюк О.В. Сучасні інформаційні технології в
банківській справі: навч. Посібник. К.: Кондор, 2020. 352 с.
10 Вітязь О.М., Кузьмінська Л.П., Чабанюк Л.М. та ін. Банківський
менеджмент: підручник. К.: Кондор, 2021. 528 с.
11. Моррісон А. Бази даних для "чайників": Навч. посібник. К.:
Видавничий дім "Ін Тех", 2020. 320 с.
12. Галіев Д., Гордієнко М. Інтерфейси програмування додатків (API):
навч. посібник. К.: Видавництво "Логос", 2019. 240 с.
13. Саммерфілд М. Веб-служби RESTful Java. К.: Видавництво "Логос",
Арк.
ЧДТУ.241354.005 ПЗ 77
Змн. Арк. № докум. Підпис Дата
2018. 352 с.
14. Датченко Л.І., Самойленко О.В. Основи розробки програмного
забезпечення для мобільних пристроїв: навч. Посібник. К.: Видавничий
дім "Ін Тех", 2020. 328 с.
15. Корнєєва О.В. Бази даних. Технології створення, зберігання і
опрацювання інформації: навч. посібник. К.: Видавничий дім "Ін Тех",
2021. 416 с.
16. Чабанюк Л.М., Литвинов В.В., Іващенко О.О. та ін. Інформаційна
безпека та криптографія: підручник. К.: Кондор, 2019. 528 с.
17. Джонсон Дж. Безпека веб-додатків: Захист від атак. К.: Видавництво
"Логос", 2019. 288 с.
18. Скотт Дж. Застосунки PWA з Angular: Розробка, побудова,
впровадження. К.: ДК Пресс, 2021. 352 с.
19. Форд М. JavaScript для професіоналів: Модерні методи створення
интерактивних веб-сайтів. К.: Видавництво "Логос", 2020. 464 с.
20. Шуст А.А., Діденко В.І. Криптографічний захист інформації: навч.
посібник. К.: Видавництво "Логос", 2018. 272 с.
21. Томпсон Дж. Розробка веб-додатків з React: Повний практичний
посібник, 2019. 480 с.
Арк.
ЧДТУ.241354.005 ПЗ 78
Змн. Арк. № докум. Підпис Дата