SozinovD / money_keeper_py_tg

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Money_Keeper_py_tg

Приложение будет считать расходы через тележного бота, мб потом сделаю открытым

Написано на python, в кач-ве интерфейса бот в telegram, бд sqlite

Команды боту:

  • help - show help page
  • add_record - add new income or expense record
  • del_last_record - delete last record that is not older than 1 hour
  • currs_setup - setup currencies
  • cats_setup - setup categories
  • generate_report - generate report (will be avalible in v2 and above)

Разбивка фич по версиям

v1: !DONE!

  • (+) Записи 2 видов: +(income) и -(expense)
  • (+) Возможность оставить текстовый коммент о записи в момент её создания
  • (+) Выбор категории кнопкой при создании записи
  • (+) Внесение\чтение записей в БД

v2:

Валюты !DONE!

  • (+) Возможность ставить валюту для записи при создании\редактировании (по умолчанию берётся валюта последней записи)
  • (+) Добавление\удаление валют. Удалять можно только те у которых нет записей
  • (+) Пересчёт в USD по курсу на дату записи (хранить в самой записи)

Отчёты

  • Отчёты по времени, категориям (графики?)
  • Возможность переводить отчёт (суммировать?) в другую валюту по курсу ЦБ (на дату траты?)
  • Возможность редактировать\удалять записи (выбор даты, выбор записи, внести данные заново)

Прочее

  • (+) Динамическое формирование клавиатур (выбираю кол-во столбцов)
  • (Перенёс из v1) Возможность докидывать и удалять категории. При удалении нужно выбрать категорию - преемника. Дефолтные категории удалить нельзя. ОЧ ОПАСНАЯ ОПЕРАЦИЯ, ТОЛЬКО СУПЕРАДМИНАМ
  • ! Возможность установки лимита на день и алерт при приближении к нему

v3:

Развёртывание

  • Разворачивание в докере через ansible roles, должно ставиться одной командой + переменные при установке
  • Выкатывание образа на DockerHub через GitHub actions

Отчёты

  • Возможность не учитывать движения денег по определённым записям (к примеру в долг)
  • Графа "не учитываемые расходы" в отчётах
  • Возможность выводить "состояния" разных масс денег (зп, траты, накопления, долги\должны вернуть, кредиты и т.п.)

v4:

  • Настраиваемые регулярные отчёты (раз в день\неделю\месяц)
  • Интеграция с банками

Со стороны юзера

Команды:

  1. хочу создать запись
  2. хочу вывести отчёт

Создание записи

  1. вызываем бота /add_record
  2. выпадают кнопки доход\расход (income\expense)
  3. после нажатия меняется на категории
    1. v2 после нажатия меняется на валюты (можно не менять, показывает нынешнюю)
    2. можно сразу вбить сумму и коммент одним сообщением (Пример: 1350 бананы это классно)
  4. после отправки сообщения приходит собранная инфа по записи, запрос на подтверждение (отключаемо), подтверждаем, запись улетает в базу

Создание отчёта

  1. вызываем бота /generate_report
  2. to_be_written

БД

Таблицы

  • records (1 таблица = 1 юзер, user_id)
  • categories (название, income\expense)
  • currencies (название, трёхбуквенное обозначение)

Поля записи

  • user_id (кто прислал запись)
  • category (ссыль на одну из категорий)
  • date (таймштамп)
  • currency (RUB\USD\KTG)
  • amount (int)
  • comment (произвольная строка до 100 символов)

About


Languages

Language:Python 100.0%