Skip to content

About

Консольный журнал расходов на Python с использованием collections и JSON-хранилища.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Latest commit

 

History

1 Commit

Folders and files

Repository files navigation

Finlog — консольный журнал расходов 📒

Программа позволяет добавлять расходы, смотреть список операций в виде таблицы, получать статистику по категориям, выводить топ категорий, показывать последние расходы и удалять записи по ID.

Формат запуска:

python finlog.py <command> [arguments]

✨ Возможности

  • Добавлять расходы с категорией, суммой и комментарием
  • Выводить все расходы в виде таблицы
  • Показывать статистику расходов по категориям
  • Показывать топ категорий по сумме расходов
  • Удалять расходы по ID
  • Показывать список доступных команд
  • Показывать подробную инструкцию по использованию программы

🛠️ Используемые технологии

  • Python
  • JSON
  • collections
  • tabulate

Программа написана на языке Python. Для хранения данных использован модуль JSON. В проекте используются структуры из модуля collections: namedtuple, Counter, defaultdict, deque и ChainMap. Использован сторонний модуль tabulate для красивого вывода расходов в табличной форме.

⚙️ Запуск

Чтобы запустить программу, откройте терминал и перейдите в папку проекта.
Например, если папка проекта лежит на рабочем столе:

Шаг 1: Запустите терминал

Откройте терминал: Git Bash, Linux/macOS terminal или Windows PowerShell.
На Windows можно найти PowerShell через поиск: Windows PowerShell.

Шаг 2: Перейдите в папку проекта

cd ~/Desktop/finlog_project

Шаг 3: Создайте виртуальную среду

python -m venv .venv

Если на Linux/macOS команда python не работает, используйте:

python3 -m venv .venv

Шаг 4: Активируйте виртуальную среду

Для Git Bash на Windows:

source .venv/Scripts/activate

Для Linux/macOS:

source .venv/bin/activate

Для Windows PowerShell:

.venv\Scripts\Activate.ps1

При успешной активации в терминале появится надпись (.venv).
Подробно про активацию и виртуальную среду можете почитать по ссылкам:

Шаг 5: Установка зависимостей

Перед запуском проекта установите зависимости из файла requirements.txt:

pip install -r requirements.txt

Всё готово для дальнейшей работы.

⌨️ Доступные команды

После активации виртуальной среды вы можете запускать программу.

Общий формат запуска:

python finlog.py <command> [arguments]

add — добавить расход

python finlog.py add <category> <amount> [comment]

Аргументы:

Аргумент Описание
category Категория расхода
amount Сумма расхода, положительное число
comment Комментарий к расходу, необязательно

Примеры:

python finlog.py add food 250 бургер
python finlog.py add transport 20 маршрутка

list — показать все расходы

python finlog.py list

Выводит все сохранённые расходы в виде таблицы.

stats — показать статистику по категориям

python finlog.py stats

Показывает сумму расходов по каждой категории и общую сумму всех расходов.

top — показать топ категорий по сумме расходов

python finlog.py top

Показывает категории от самой дорогой к самой дешёвой.

last — показать последние добавленные расходы

python finlog.py last

Показывает последние добавленные расходы.

Лимит вывода задаётся в настройках проекта.

delete — удалить расход

python finlog.py delete <id>

Аргументы:

Аргумент Описание
id Номер расхода, который нужно удалить

Пример:

python finlog.py delete 3

commands — показать список команд

python finlog.py commands

Выводит краткий список доступных команд.

help — показать подробную инструкцию

python finlog.py help

Выводит подробную инструкцию по использованию программы.

📝 Примечания

  • Сумма должна быть больше нуля.
  • ID должен быть целым положительным числом.
  • Комментарий можно писать из нескольких слов:
python finlog.py add food 250 бургер с сыром
  • Валюта вывода по умолчанию: сом.
  • Данные сохраняются в JSON-файл и не теряются после закрытия программы.

🎯 Цель проекта

Цель проекта — закрепить работу с модулем collections, JSON-файлами и аргументами командной строки через создание небольшой CLI-утилиты.

В проекте используются основные структуры из collections:

  • namedtuple — для хранения одной записи расхода;
  • Counter — для подсчёта топа категорий;
  • defaultdict — для группировки и подсчёта расходов по категориям;
  • deque — для вывода последних записей;
  • ChainMap — для объединения настроек по умолчанию и пользовательских настроек.

Дополнительно проект помогает потренировать разделение кода по файлам, обработку ошибок, сохранение данных в JSON и оформление консольного вывода.

About

Консольный журнал расходов на Python с использованием collections и JSON-хранилища.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages