Skip to content

Telegram bot to manage personal incomes, expeses, budgets and make a report. Made with Java, TDD, Hibernate.

Notifications You must be signed in to change notification settings

zedaster/PersonalFinanceBot

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Personal Finance Bot

Задача 1

Создать систему учета расходов и доходов

Приложение должно

  • Иметь возможно установить начальный/текущий баланс пользователя (на случай если пользователь забыл записать трату)
  • Распределять расходы по категориям
  • Уметь функционировать категориями, т.е. изменять/кастомизировать категории
  • Сохранять данные о расходах/доходах в базе данных
  • Выдавать пользователю данные о доходах и расходах по категориям за определенный месяц

Пример работы

Команда /set_balance

User: /set_balance [payment]
Bot: Новый баланс установлен.

Команда /add_expense

User: /add_expense [fee - плата] [category - категория]
Bot: Добавлен расход по категории [category]

Команда /add_income

User: /add_income [fee - доход пользователя] [type - источник дохода:зарплата/перевод]
Bot: Вы успешно добавили доход по источнику: [type]

Команда /report_expense

User: /report_expense [mm.yyyy - месяц+год]
Bot: Подготовил отчёт по вашим расходам за месяц [month]:
За месяц [month] вы потратили:
Продукты: 10000 руб.
Такси: 7000 руб.
Развлечения: 3000 руб.
Другое: 1000 руб.

Команда /add_income_category

User: /add_income_category [category_name]
Bot: Добавлена новая категория доходов …

Команда /add_expense_category

User: /add_expense_category [category_name]
Bot: Добавлена новая категория расходов …

Команда /category_remove

User: /category_remove [category_name]
Bot: Удалена категория расходов

Команда /remove_income_category

User: /remove_income_category [category_name]
Bot: Категория доходов '[category_name]' успешно удалена

Команда /remove_expense_category

User: /remove_expense_category [category_name]
Bot: Категория расходов '[category_name]' успешно удалена

Команда /list_expense_categories

User: /list_expense_categories
Bot: Все доступные вам категории расходов:
Стандартные:
- Супермаркеты
- Аптеки
- Развлечения
- Спорт
- Транспорт
- Рестораны и кафе
Персональные:
...

Команда /list_income_categories

User: /list_income_categories
Bot: Все доступные вам категории Доходов:
Стандартные:
- Зарплата
- Переводы
Персональные:
...

Команда /list_categories

User: /list_categories
Bot: Все доступные вам категории доходов:
Стандартные:
- Зарплата
- Переводы
Персональные:
…

Все доступные вам категории расходов:
Стандартные:
- Супермаркеты
- Аптеки
- Развлечения
- Спорт
- Транспорт
- Рестораны и кафе
Персональные:
…

Задача 2

Создать систему для планирования бюджета

Она позволит пользователя в начале или в течение месяца спланировать месячные доходы и расходы, сравнивать их с теми, что добавлены через функционал в 1-й задаче и показывать, какая месячная сумма осталась на расходы и сколько необходимо еще заработать до указанной в бюджете цели.

Приложение должно

  • Считать общую сумму доходов, расходов за текущий месяц и предыдущие
  • Выдавать количество денег, которое осталось заработать, а также количество денег, которые еще можно потратить для текущего месяца
  • Выдавать средние месячные доходы и расходы при запросе бюджетов с нескольких месяцев

Условия

  • Баланс переноситься с предыдущего месяца на следующий
  • Можно создавать и изменять детали бюджета (планируемый доход/расход) на текущий и следующие месяца, но нельзя изменить бюджеты за предыдущие месяцы.

Пример работы

Команда /budget

Команда позволит показать бюджет на текущий месяц. Для планирования ожидаемых доходов и расходов команды указаны ниже. Текущие доходы и расходы посчитаны суммированием доходов/трат, добавленных функционал из задачи 1, за текущий месяц. Текущий баланс рассчитывается формулой установленный баланс + доходы - расходы. Доходы и расходы суммируются либо от момента установки баланса, либо с начала месяца, в зависимости от того, что произошло позднее. “Нужно еще заработать” и “Еще осталось на затраты” рассчитаны как дельта между ожидаемыми и текущими доходами/расходами

User: /budget
Bot: Бюджет на Февраль 2023:
Ожидаемые доходы: 60 000
Ожидаемые расходы: 50 000
Текущие доходы: 5 000
Текущие расходы: 6 500
Текущий баланс: 98 500
Нужно еще заработать: 55 000
Еще осталось на траты: 43 500

Для просмотра команд введите /budget_help

Команда /budget_help

User: /budget_help
Bot: Доступные команды для работы с бюджетами:
/budget - показать бюджет за текущий месяц
/budget_list - запланированный бюджет за последние 12 месяцев
/budget_list [год] -  запланированные бюджеты за определенный год
/budget_list [нач. мес] [кон. мес] - запланированные бюджеты за определенные месяца
/budget_create [мес] [ож доходы] [ож расходы] - планировать бюджет

Команда /budget_create

User: /budget_create 02.2023 60000 50000
Bot: Бюджет на Февраль 2023 создан.
Ожидаемые доходы: 60 000
Ожидаемые расходы: 50 000
Текущие доходы: 5 000
Текущие расходы: 6 500
Текущий баланс: 98 500
Нужно еще заработать: 55 000
Еще осталось на траты: 43 500

Команда /budget_set_income

User: /budget_set_income 03.2023 65000
Bot: Бюджет на Март 2023 изменен:
Ожидаемые доходы: 65 000
Ожидаемые расходы: 50 000
User: /budget_set_income 65000
Bot: Бюджет на текущий месяц (Февраль 2023) изменен:
Ожидаемые доходы: 65 000
Ожидаемые расходы: 50 000
Текущие доходы: 5 000
Текущие расходы: 6 500
Нужно еще заработать: 60 000
Еще осталось на траты: 43 500

Команда /budget_set_expenses

User: /budget_set_expenses 03.2023 50000
Bot: Бюджет на Март 2023 изменен:
Ожидаемые доходы: 65 000
Ожидаемые расходы: 50 000
User: /budget_set_expenses 55000
Bot: Бюджет на текущий месяц (Февраль 2023) изменен:
Ожидаемые доходы: 65 000
Ожидаемые расходы: 55 000
Текущие доходы: 5 000
Текущие расходы: 6 500
Текущий баланс: 98 500
Нужно еще заработать: 60 000
Еще осталось на траты: 48 500

Команда /budget_list

User: /budget_list
Bot: Ваши запланированные доходы и расходы по месяцам:
Январь 2023
Ожидание: + 80 000 | - 60 000
Реальность: + 75 000 | - 70 364
Февраль 2023 Д 100 000 | Р 70 000  | + 103 000 | - 68 598
…
Декабрь 2023 Д 100 000 | Р 70 000 | + 103 000 | - 68 598
Данные показаны за последние 12 месяцев. Чтобы посмотреть данные, например, за 2022, введите /budget_list 2022.
Для показа данных по определенным месяцам, например, с ноября 2022 по январь 2023 введите /budget_list 10.2022 01.2023
User: /budget_list 2022
Bot: Ваши запланированные доходы и расходы по месяцам:
Январь 2022
Ожидание: + 80 000 | - 60 000
Реальность: + 75 000 | - 70 364
Февраль 2022 Д 100 000 | Р 70 000 | + 103 000 | - 68 598
…
Декабрь 2022 Д 100 000 | Р 70 000 | + 103 000 | - 68 598
Данные показаны на 2022 год.
User: /budget_list 11.2022 02.2023
Bot: Ваши запланированные доходы и расходы по месяцам:
Ноябрь 2022 Д 80 000 | Р 60 000 | + 75 000 | - 70 364
Декабрь 2022 Д 100 000 | Р 70 000 | + 103 000 | - 68 598
Январь 2023 Д 80 000 | Р 60 000 | + 75 000 | - 70 364
Данные показаны за 4 указанных месяца.

Задача 3

Создать функционал для составления статистики

Список стандартных категорий:*

  • Супермаркеты
  • Аптеки
  • Развлечения
  • Спорт
  • Транспорт
  • Рестораны и кафе
  • Зарплата
  • Переводы

Приложение должно

  • Выдавать средние расходы и доходы по стандартным категориям* в течение месяца (команда /avg_report)
  • Выдавать средние месячные общие доходы и расходы по пользователям, оставляя их инкогнито (команда /estimate_report)

Пример работы

Команда /avg_report

User: /avg_report
Bot: Подготовил отчет по категориям со всех пользователей за текущий месяц
Супермаркеты: 13500 руб.
Аптеки: 2542 руб.
Развлечения: 1548 руб.
Спорт: 3244 руб.
Транспорт: 3223 руб
Рестораны и кафе: 3240 руб.
User: /avg_report 10.2023
Bot: Подготовил отчет по стандартным категориям со всех пользователей за Октябрь 2023
Супермаркеты: 2341 руб.
Аптеки: 2352 руб.
Развлечения: 10528 руб.
Спорт: 3243 руб.
Транспорт: 3242 руб
Рестораны и кафе: 3234 руб.

Команда /estimate_report

User: /estimate_report
Bot: Подготовил отчет по средним доходам и расходам пользователей за текущий месяц:
Расходы: 63537 руб.
Доходы: 96234 руб.
User: /estimate_report 10.2023
Bot: Подготовил отчет по средним доходам и расходам пользователей Октябрь 2023:
Расходы: 71538 руб.
Доходы: 105426 руб.

About

Telegram bot to manage personal incomes, expeses, budgets and make a report. Made with Java, TDD, Hibernate.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages