GithubHelp home page GithubHelp logo

money_keeper_py_tg's Introduction

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 символов)

money_keeper_py_tg's People

Contributors

sozinovd avatar

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.