El artículo está dedicado a la revisión del producto comercial: Telegram-bot @budgetmoneybot para mantener el presupuesto familiar.Antes de comenzar la revisión, me gustaría escribir algunas líneas sobre cómo mi esposa y yo llegamos a la gestión del presupuesto en Telegram.
Debo decir que comenzamos a darnos cuenta de la necesidad de presupuestar desde los primeros días después de la boda. Primero, registramos nuestros ingresos y gastos en una simple
tabla de ods .

Pero mantener esa mesa después de unos meses nos pareció tedioso. Realmente quería tener una herramienta más móvil que le permitiera guardar datos y mostrar informes.
Sin embargo, durante 5 años hemos estado completando diligentemente la tabla, en un grado u otro, regulando nuestros gastos. Luego hubo un año de descanso, durante el cual una vez más nos convencimos de que necesitábamos mantener un presupuesto.
A principios de 2019, nuevamente decidimos mantener un presupuesto, pero no queríamos volver a llenar la tabla de ods. Probamos algunos servicios móviles y llegamos a la conclusión de que no nos convienen.
Luego pensé que para la gestión del presupuesto sería conveniente utilizar un bot de Telegram que recibiría mensajes con números o con expresiones matemáticas y distribuiría las cantidades en categorías preconfiguradas. Además, quería poder enviar fotos de códigos QR en cheques a dicho bot, para que el bot distribuya las posiciones en los cheques por categoría. Y para mantener un presupuesto familiar, sería bueno crear un grupo separado en Telegram y agregarle un bot.
Me llevó varios meses implementar y probar tal bot. Pero, como dicen, "el camino tomará el camino": en agosto de 2019, se implementó el bot.
Telegram-bot
@budgetmoneybot ofrece a los usuarios la oportunidad de mantener presupuestos personales y familiares.
Para mantener un presupuesto familiar, debe crear un grupo en Telegram y agregarle un bot.


Escribe algo al grupo. El bot sugerirá establecer categorías de ingresos y gastos.

Hacemos clic en el botón "Ingresos" e ingresamos los nombres de las fuentes de ingresos y las cantidades planificadas para el formato propuesto. A continuación, presentamos los nombres de las categorías de gastos con cantidades planificadas.
Recomiendo usar emoji para visualizar categorías. Conveniente al ver informes.

¡Las categorías de ingresos y gastos son personalizadas! Ahora intente agregar información de costos.

Seleccionamos la categoría "Productos".
El mensaje se está editando: se muestra un informe sobre cómo agregar la cantidad.

El bot te permite especificar la fecha. Esto es útil si, por ejemplo, deposita cantidades para el mes anterior. También puede cancelar la adición de la cantidad.
Ahora agregue información de ingresos.
Ingrese la cantidad, seleccione el último botón "A ingresos".

Luego seleccione una categoría.
Del mismo modo, el mensaje se edita: se muestra un informe sobre cómo agregar la cantidad.

Intentemos ver el informe.
Ingrese el comando / informe.

Los botones debajo del informe le permiten cambiar rápidamente entre los meses de informes.
Intentemos enviar al bot una foto del código QR en el cheque.

El bot comenzará a clasificar los productos. Si es la primera vez que compra frijoles en una tienda (más precisamente, "Beans Fas 800gr: 6"), el bot le preguntará a qué categoría agregar la posición en el cheque.
En nuestro caso, se trata de "Productos". La próxima vez, los beans se incluirán automáticamente en la categoría "Productos".
Después de la distribución de todos los productos en categorías, el bot emitirá un informe.

BudgetMoneyBot tiene una amplia gama de configuraciones. Puede agregar, eliminar, ordenar y renombrar categorías, cambiar cantidades planificadas, desvincular productos de categorías, mostrar informes durante un período arbitrario.
En el futuro planeo expandir la funcionalidad.
Hay una tarifa por usar el bot: 23 rublos por mes. Al mismo tiempo, cuando se conecta, se introducen 23 rublos introductorios. Si la cuenta tiene "0", será posible usar el bot (manejar en cantidades, enviar cheques), pero los informes no estarán disponibles. El saldo no va a menos.
Hay un programa de fidelización de referencias: por cada usuario registrado por un enlace especial (ver / comando de referencia), se cobran 23 rublos.
Informacion tecnicaEl bot está desarrollado en el lenguaje Golang. La base de datos se implementa en MongoDB. De las bibliotecas de terceros,
se utilizan tgbotapi y
mgo . Para decodificar un código QR,
se usa
zbarimg .
La recopilación de información de los cheques se vinculó primero directamente a los sitios de los operadores de datos fiscales. Pero la falta de una API nos obligó a escribir scrapers web, y en algunos casos tuvimos que enviar imágenes captcha a los usuarios. A partir de una verificación, es imposible entender a qué operador de datos fiscales debe acceder. Iterar sobre todos los operadores (al 22 de marzo de 2019, había 21 de ellos) es laborioso. Por lo tanto, se decidió contactar directamente con la API del Servicio de Impuestos Federales.
En Habré, los usuarios
escribieron que existen restricciones en la API de FTS. No pude enfrentar las restricciones. Sin embargo, admito que tendré que implementar la autorización del usuario en el sistema de verificación del Servicio de Impuestos Federales (solicite al usuario que comparta un número de teléfono, envíe una solicitud de autorización del usuario al Servicio de Impuestos Federales, solicite al usuario que comparta una contraseña de sms).
Actualización 19/08/2019Con las limitaciones de la API de FTS, todavía nos enfrentamos. Modificado el bot. Ahora los usuarios están invitados a autorizar en el sistema de verificación del Servicio de Impuestos Federales. Después de una autorización exitosa, el usuario podrá recibir información del FTS de los cheques dentro de los límites asignados a él personalmente.