StudyMoney — это десктопное приложение для управления личными финансами, разработанное с использованием C++ (Qt 6) и QML.
Приложение ориентировано на студентов и молодых специалистов и помогает:
- контролировать бюджет,
- анализировать расходы,
- копить на цели,
- получать AI рекомендации по финансовой грамотности.
- Язык: C++17
- Фреймворк: Qt 6.5+ (Qt Quick / QML)
- Сборка: CMake
- База данных: PostgreSQL
- Архитектура: Layered Architecture (MVC)
- Стиль кода: строгое ООП, принципы SOLID
Проект построен с использованием трёхслойной архитектуры, что обеспечивает слабую связность компонентов и простоту поддержки.
-
Реализовано на QML
-
Полностью кастомный UI (без системных виджетов)
-
Адаптивный дизайн
-
Поддержка Dark / Light Mode
-
Использование Canvas для:
- графиков,
- векторных иконок (без внешних изображений)
-
Класс MainController
-
Связь QML
↔️ C++ через:- Q_PROPERTY
- Signals / Slots
-
Отвечает за:
- бизнес-логику,
- валидацию данных,
- обновление интерфейса
Реализована с применением строгих принципов ООП:
-
Абстракция: Интерфейс IStorage (чисто виртуальный класс) описывает контракт работы с данными
-
Инкапсуляция: Класс SqlStorage скрывает реализацию SQL-запросов и подключение к БД
-
Полиморфизм: Контроллер работает с IStorage*, не зная конкретной реализации хранилища
- Текущий баланс
- Общие доходы и расходы
- Таблица последних 7 операций
- Круговая диаграмма (Pie Chart) Распределение расходов по категориям (%)
- Столбчатая диаграмма (Bar Chart) Сравнение сумм расходов
- Все графики отрисованы вручную через HTML5 Canvas Context в QML
- Создание финансовых целей (например, «На ноутбук»)
- Пополнение целей с основного бюджета
- Визуальный прогресс-бар накоплений
- Анализ трат за последние 30 дней
- Советы при превышении норм по категориям (еда, жильё и т.д.)
- Сравнение с усреднёнными значениями
- Боковое меню (Sidebar)
- Модальные диалоги для ввода данных
- Переключение темы Dark / Light
Приложение использует 4 связанные таблицы:
- users — пользователи, хэши паролей, текущий бюджет
- expenses — история расходов
- incomes — история доходов
- goals — финансовые цели
Пароли пользователей хэшируются с использованием SHA-256.
Приложение работает с локальной базой данных PostgreSQL. Для корректного запуска выполните 3 простых шага.
Шаг 1. Подготовка базы данных
Приложение использует жёстко заданные параметры подключения.
Перед запуском убедитесь, что у вас установлен PostgreSQL, затем выполните следующие действия (через pgAdmin или консоль):
- Создайте пустую базу данных с именем db
- Убедитесь, что:
- пользователь: postgres
- пароль: 31072007
Если параметры отличаются — приложение не сможет подключиться к базе данных.
Шаг 2. Создание структуры базы данных
Для корректной работы приложения выполните следующий SQL-скрипт в Query Tool вашей базы данных:
CREATE TABLE IF NOT EXISTS users (
id SERIAL PRIMARY KEY,
login VARCHAR(50) UNIQUE NOT NULL,
password_hash VARCHAR(255) NOT NULL,
email VARCHAR(100),
budget NUMERIC(10, 2) DEFAULT 0,
spent NUMERIC(10, 2) DEFAULT 0
);
CREATE TABLE IF NOT EXISTS expenses (
id SERIAL PRIMARY KEY,
user_id INTEGER REFERENCES users(id) ON DELETE CASCADE,
amount NUMERIC(10, 2) NOT NULL,
category VARCHAR(50),
date_added DATE DEFAULT CURRENT_DATE
);
CREATE TABLE IF NOT EXISTS incomes (
id SERIAL PRIMARY KEY,
user_id INTEGER REFERENCES users(id) ON DELETE CASCADE,
amount NUMERIC(10, 2) NOT NULL,
source VARCHAR(50),
date_received DATE DEFAULT CURRENT_DATE
);
CREATE TABLE IF NOT EXISTS goals (
id SERIAL PRIMARY KEY,
user_id INTEGER REFERENCES users(id) ON DELETE CASCADE,
name VARCHAR(100) NOT NULL,
target_amount NUMERIC(10, 2),
current_amount NUMERIC(10, 2) DEFAULT 0
);Шаг 3. Запуск приложения
- Перейдите в раздел Releases на GitHub
- Скачайте архив StudyMoney_v1.0_Windows.zip или macOS Version (Apple Silicon/Intel)
- Распакуйте архив
- Запустите файл StudyMoney.exe
- Нажмите «Регистрация», создайте аккаунт и пользуйтесь приложением
Разработано в рамках курсовой работы по дисциплине «Объектно-Ориентированное Программирование»
2025 год




