Реферат
ВВЕДЕНИЕ 5
1 Анализ предметной области 6
1.1 Обзор рынка приложений для финансового планирования 6
1.2 Анализ существующих аналогов 7
1.2.1 Приложение «Тяжеловато» 7
1.2.2 Приложение «CoinKeeper» 8
1.2.3 Приложение «CoinKeeper3» 9
1.2.4 Приложение «Monefy» 10
1.3 Сравнительный анализ существующих аналогов 11
1.4 Функциональные требования 13
1.5 Выводы по главе 14
2 Проектирование 15
2.1 Диаграмма прецедентов 15
2.2 Текстовое описание прецедентов 16
2.3 Диаграммы пригодности 21
2.3.1 Прецедент «Войти в приложение» 21
2.3.2 Прецедент «Первичная настройка» 22
2.3.3 Прецедент «Добавить запись о долгах» 24
2.3.4 Прецедент «Редактировать запись о тратах» 25
2.3.5 Прецедент «Удалить запись о тратах» 25
2.4 Диаграммы последовательности 27
2.4.1 Диаграмма последовательности «Войти в приложение» 27
2.4.2 Диаграмма последовательности «Первичная настройка» 27
2.4.3 Диаграмма последовательности «Добавить запись о долгах» 28
2.4.4 Диаграмма последовательности «Редактировать запись о тратах» 28
2.4.5 Диаграмма последовательности «Удалить запись о тратах» 28
2.5 Структура приложения 30
2.5.1 Архитектура приложения 30
2.5.2 Взаимодействие клиента и сервера 32
2.5.3 Архитектура клиентской части 32
2.5.4 Архитектура серверной части 32
2.5.5 Архитектура базы данных 33
2.6 Выбор средств разработки 33
2.6.1 Обзор фреймворков для разработки интерфейса и логики клиента 33
2.6.2 Обзор средств для разработки логики сервера 36
2.6.3 Обзор систем управления базами данных 38
2.7 Общая архитектура системы с выбранными инструментами разработки 39
2.8 Взаимодействие React и Redux 41
2.9 Проектирование структуры клиентского приложения 42
2.9.1 Компонент «Основная страница» 43
2.9.2 Компонент «Навигация» 44
2.9.3 Компонент «Долги» 46
2.9.4 Компонент «Настройки» 47
2.10 Проектирование структуры базы данных 47
2.11 Выводы по главе 51
3 Программная реализация приложения 53
3.1 Реализация клиентской части 53
3.1.1 Корневой файл App.js 53
3.1.2 Модуль «Вход в приложение» 53
3.1.3 Модуль «Приложение» 55
3.1.4 Модуль «Траты» 56
3.1.5 Модуль «Настройки» 58
3.1.6 Модуль «Долги» 59
3.2 Описание интерфейса для связи между клиентом и сервером 60
3.3 Реализация серверной части 62
3.4 Тестирование 64
3.5 Выводы по главе 64
ЗАКЛЮЧЕНИЕ 65
СПИСОК СОКРАЩЕНИЙ 66
СПИСОК ИСПОЛЬЗОВАННЫХ ИСТОЧНИКОВ 67
ПРИЛОЖЕНИЕ А 71
ПРИЛОЖЕНИЕ Б 74
ПРИЛОЖЕНИЕ В 76
Целью работы является создание веб-приложения для финансового планирования, позволяющего наглядно просматривать текущее состояние счета, откладывать положительный остаток или перераспределять оставшийся бюджет в случае превышения лимита.
Функционал приложения заключается в том, что пользователь может добавить в него определенную сумму. Затем приложение рассчитывает ежедневный бюджет и с этого момента пользователю предлагается фиксировать все свои расходы. Если дневной бюджет превышен, то из общей суммы вычитается разница, а затем рассчитывается новая ежедневная сумма. Если же пользователь не выходит за рамки дневного бюджета, сэкономленный о статок предлагается либо о ставить на следующий день, либо добавить к общей сумме. Также присутствует возможность погасить долг с помощью положительного остатка.
После проведения анализа существующих аналогов, в первой главе представленной работы были сформулированы требования к функциональным характеристикам разрабатываемого приложения. Во второй главе был описан процесс проектирования, а в третьей — реализации и тестирования.
В ходе выполнения данной работы были осуществлены следующие задачи:
1. Выполнен анализ предметной области и сравнительный анализ существующих аналогов.
2. Сформулированы функциональные требования к разрабатываемому веб-приложению.
3. Спроектированы диаграммы прецедентов, пригодности и последовательности для удобства дальнейшей программной реализации.
4. Произведен сравнительный обзор и выбор инструментов разработки.
5. Выполнен процесс проектирования архитектуры веб-приложения.
6. Выполнена программная реализация, полностью соответствующая заявленным ранее функциональным требованиям и опирающаяся на спроектированную архитектуру.
7. Произведен процесс тестирования всех модулей веб-приложения.