Finance Control

Finance Control — настольное приложение для персонального учёта финансов и подписок. Проект разработан на Python с использованием CustomTkinter, SQLite и Matplotlib.

Основные возможности финальной версии

  • учёт счетов, карт, наличных и электронных кошельков;
  • категории доходов и расходов;
  • добавление и удаление операций с автоматическим изменением баланса;
  • поиск и фильтрация операций;
  • экспорт истории операций в CSV;
  • контроль подписок, переключение статуса «Активна / Пауза»;
  • бюджеты и лимиты по расходным категориям с прогресс-барами;
  • главная панель со сводкой, ближайшими списаниями, последними операциями и предупреждениями по лимитам;
  • аналитика и текстовый отчёт с диаграммой расходов;
  • экспорт отчёта в TXT;
  • сохранение выбранной темы интерфейса;
  • защита от быстрых повторных нажатий на кнопки;
  • локальная SQLite-база, создаётся автоматически при первом запуске.

Запуск на пустом компьютере

  1. Установить Python 3.11 или новее.
  2. Скачать репозиторий с Gitea.
  3. Открыть терминал в папке проекта.
  4. Создать виртуальное окружение:
python -m venv .venv
  1. Активировать окружение:

Windows:

.venv\Scripts\activate

Linux / macOS:

source .venv/bin/activate
  1. Установить зависимости:
pip install -r requirements.txt
  1. Запустить приложение:
python main.py

При первом запуске файл finance_manager.db будет создан автоматически.

Быстрый запуск Windows

Можно запустить файл:

run.bat

Он создаст виртуальное окружение, установит зависимости и откроет приложение.

Структура проекта

main.py
app/
  config.py
  database.py
  services/
    finance_service.py
  utils/
    formatters.py
    validators.py
  ui/
    base_frame.py
    main_window.py
    dashboard_frame.py
    accounts_frame.py
    categories_frame.py
    transactions_frame.py
    subscriptions_frame.py
    budgets_frame.py
    reports_frame.py
requirements.txt

Проверка кода

Для быстрой проверки синтаксиса:

python -m py_compile main.py app/*.py app/ui/*.py app/services/*.py app/utils/*.py
Description
No description provided
Readme 76 KiB
Languages
Python 99.3%
Batchfile 0.5%
Shell 0.2%