финальная версия Finance Control

This commit is contained in:
2026-05-25 22:06:16 +03:00
parent 7dcb1a23a7
commit 5890e4ae64
22 changed files with 1441 additions and 927 deletions

102
README.md Normal file
View File

@@ -0,0 +1,102 @@
# Finance Control
Finance Control — настольное приложение для персонального учёта финансов и подписок.
Проект разработан на Python с использованием CustomTkinter, SQLite и Matplotlib.
## Основные возможности финальной версии
- учёт счетов, карт, наличных и электронных кошельков;
- категории доходов и расходов;
- добавление и удаление операций с автоматическим изменением баланса;
- поиск и фильтрация операций;
- экспорт истории операций в CSV;
- контроль подписок, переключение статуса «Активна / Пауза»;
- бюджеты и лимиты по расходным категориям с прогресс-барами;
- главная панель со сводкой, ближайшими списаниями, последними операциями и предупреждениями по лимитам;
- аналитика и текстовый отчёт с диаграммой расходов;
- экспорт отчёта в TXT;
- сохранение выбранной темы интерфейса;
- защита от быстрых повторных нажатий на кнопки;
- локальная SQLite-база, создаётся автоматически при первом запуске.
## Запуск на пустом компьютере
1. Установить Python 3.11 или новее.
2. Скачать репозиторий с Gitea.
3. Открыть терминал в папке проекта.
4. Создать виртуальное окружение:
```bash
python -m venv .venv
```
5. Активировать окружение:
Windows:
```bash
.venv\Scripts\activate
```
Linux / macOS:
```bash
source .venv/bin/activate
```
6. Установить зависимости:
```bash
pip install -r requirements.txt
```
7. Запустить приложение:
```bash
python main.py
```
При первом запуске файл `finance_manager.db` будет создан автоматически.
## Быстрый запуск Windows
Можно запустить файл:
```bat
run.bat
```
Он создаст виртуальное окружение, установит зависимости и откроет приложение.
## Структура проекта
```text
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
```
## Проверка кода
Для быстрой проверки синтаксиса:
```bash
python -m py_compile main.py app/*.py app/ui/*.py app/services/*.py app/utils/*.py
```