- MoneyKeeper(MKeeper) - приложение для контроля и учета доходов и расходов.
- App deploy: https://moneykeeper.netlify.app
Приложение построено на базе SPA и состоит из шести страниц:
-
страница регистрации пользователя
-
страница общая информация о транзакциях приложения
-
страница транзакций (добавление доходов и расходов)
-
страница отчётов о доходах и расходах
-
страница календаря расходов
-
страница настроек
-
Данные о пользователе, транзакциях и настройках хранятся на сервере.
-
Параметры сортировок и фильтрации хранятся в LocalStorage.
-
Архитектура приложения построена на базе MVC.
- Лого и название приложения
- Название текущей страницы
- Общий баланс
- Значок аккаунта (при клике появляется popup с информацией о пользователе и кнопкой выйти из текущего аккаунта)
- Гитхабы авторов приложения
- Год создания приложения
- Логотип курса со ссылкой на курс
- Содержит набор из кнопок при переходе по которым переключаются страницы
- Вход содержит поля: пароль для входа, адрес почты и кнопку войти.
- Если пользователя нет в базе то появляется предупреждение об этом и пишется что сначала нужно зарегистрироваться.
- Регистрация имеет тот же вид, только кнопка войти меняется на кнопку зарегистрироваться и добавляется поле имя пользователя.
- Содержит список из пяти элементов генерации отчета по транзакциям (за день, неделю, месяц, год и все время), каждый из которых содержит информацию в виде линейной диаграммы дохода и трат в процентном соотношении от общей суммы.
- При клике по одному из элементов в правом окне появляется список транзакций. По умолчанию в правом окне показывается список транзакций за все время.
- Транзакция содержит информацию: категория, подкатегория, сумма транзакции (+ если доход, - если траты), дата и время транзакции.
- Транзакции можно сортировать по дате, сумме и фильтровать по типу транзакции.
- При клике правой кнопке мыши по транзакции появляется всплывающее меню из двух функций (удаление транзакции, детали транзакции)
- При выборе функции детали транзакции, появляется модальное окно с подробной информацией транзакции (описание, дата, время, категория, подкатегория, сумма транзакции)
- При клике на свободное пространство модальное окно закрывается.
- Содержит поля (тип транзакции) и сумма транзакции (валидация по числовому значению).
- Содержит поля категории (категории предустановлены) и подкатегории транзакции (свободный текст 1-2 слова).
- Содержит поля дата и время транзакции (валидация по дате и времени).
- Содержит поле описание транзакции (свободный текст, можно ограничить по кол-ву символов).
- Кнопка сохранить данную транзакцию. При сохранении транзакции, асинхронный запрос отправляет данные по транзакции серверу. В случае успеха возвращается код 200.
- Информация представлена в виде диаграммы и выстраивается на основании имеющихся категорий доходов и расходов в процентном соотношении.
- При наведении указателя мыши на какую-либо ее часть появляется расшифровка категории и ее значение в процентах. Снизу от диаграммы есть расшифровка диаграммы по цвету в виде прямоугольника. При клике по прямоугольнику можно исключить/добавить какую либо категорию в диаграмме.
- Есть возможность выбрать одну из четырех видов диаграмм (polarArea, pie, radar, doughnut).
- Можно выбрать тип транзакции на основании на основании которой будет строиться диаграмма.
- Есть компоненты трат и расходов в виде линейных диаграмм по категориям. Компонент категории имеет название, прогресс бар, расшифровка в процентах и в виде суммы от общего количества.
- Календарь представлен в виде таблицы 4*3 по месяцам.
- Каждый компонент месяца содержит название месяца, прогресс бар в процентном соотношении от общих трат и сумму трат за текущий месяц.
- Снизу есть информация по категориям по ряду показателей (общие траты за текущий год, среднее значение трат в месяц, общий доход за год, процентное соотношение трат к доходу за год).
- Информацию по тратам можно отфильтровать по категориям и году.
- Изменение имени пользователя.
- Настройки языка (ru/en). По умолчанию - en.
- Темы (светлая/темная). По умолчанию - светлая.
- Тип валюты(usd, eur, rub, yen). По умолчанию - usd.
- Можно изменить цвет сайд бара.
- Удалить аккаунт.
- Настройки пользователя сохраняются на сервер.
Реализован роутинг без перезагрузки страницы:
- /overview - для главной страницы
- /transaction - для страницы транзакции
- /report - для страницы репорт
- /calendar - для страницы календаря
- /settings - для страницы настроек приложения
- /signup - для страницы авторизации
- Реализована работа с сервером. Транзакции, настройки пользователя и данные пользователя сохраняются на сервер, и при необходимости берутся от туда.
- Подробная информация о работе сервера и его запросам: https://github.com/IgorMotorin/json-server-api
- Деплой сервера: https://thankful-triangular-acapella.glitch.me/
- Frontend (TS, Tailwind, postcss)
- Backend (JSON server)
- Для сборки приложения используется webpack
- Библиотеки: i18next для перевода, Chart.js для построения диаграмм