I. Введение Система управления личными финансами.
II. Применяемые технологии
- Openjdk 21.0.8 2025-07-15
- Фреймфорк Jmix 2.7.0 (запись в реестре российского ПО №12044 от 18.11.2021).
- PostgreSQL 17.5
III. Описанием архитектуры Проект выполнен на Jmix - open-source веб-фреймворке, построенном на Spring Boot и Vaadin Flow.
Информационная система состоит из веб-приложения на Java и реляционной базы данных.
Особенности:
- Реализовано мягкое удаление - удаления объектов физически не происходит. Ненужные записи просто помечаются как удаленные.
- Используется Liquibase в качестве инструмента миграции базы данных.
- В качестве сборщика проекта применен Gradle.
IV. Подготовка базы данных
Инструкция для операционной системы Ubuntu. Подготовьте базу данных и пользователя:
sudo su postgres psql create user fin with password '***'; create database url; \c url grant all on schema public to url;
V. Установка и запуск приложения
Выполнить git clone git@github.com:Tmpgmv/fin.git
Из корневого каталога проекта: ./gradlew bootRun Приложение будет запущено на порту 8080. В консоли об этом будет сообщение.
VI. Тестирование
-
Функциональное тестирование можно выполнить, войдя под тестовым пользователем admin и паролем admin.
-
Автоматизированное тестирование: из корневого каталога запустить ./gradlew test Альтернатива: ./gradlew check
VII. Создание пользователей Войти как администратору и в пользовательском интерфейсе создать пользователей. Назначить каждому роли.
- Ресурсные роли:
- UI: minimal access (без этой роли не сможет даже войти).
- User (иначе не сможет пользоваться сервисом - не увидит пунктов меню).
- UI: edit filters (желательно - тогда сможет для себя настроить фильтры).
- Ограничения уровня строк UserCanAccessOnlyTheirOwnDataRole (сможет управлять своими записями).
VII. Краткое руководство пользователя
- На главной странице - отчет по доходам и расходам.
- Пользователь может иметь несколько кошельков. Id кошелька может быть скопирован по нажатию на кнопку с пиктограммой блокнота.
- На расходную категорию можно задать бюджет. При превышении бюджета будет выдано предупреждение.
- Доступен перевод денег между кошельками.