Table of Contents generated with DocToc
- Money Manager is a tool designed to help you track and manage your finances effectively. With a range of features for visualizing expenses and monitoring account balances, it offers a clear view of your spending patterns and financial health.
A REST API application for managing expenses. Build your own automation—be it a Telegram bot 🤖, Discord bot, or your own app 📱!
🚨 Spoiler Alert! 🚨 We have built a Telegram bot as a proof of concept! 🤖🎉
animated.mp4
- Expense Tracking: Add, update, and delete expenses. Track expenses by category, date, and account.
- Data Visualization: View your expenses over time with customizable charts, including:
- Monthly and weekly spending trends
- Categorical expense breakdowns
- Authentication: Secure access to your data using token-based authentication.
- RESTful API: Access and interact with your financial data programmatically via a FastAPI-powered API.
- Testing Suite: Comprehensive tests to ensure stability and reliability across key functionality.
- Multiple Accounts: Manage multiple accounts like spending and saving.
MoneyManager allows you to take control of your personal finances, providing insights into where your money goes and helping you make informed financial decisions. Whether you're looking to monitor daily spending or analyze broader trends, MoneyManager has the tools you need to stay on top of your finances.
Each tool is an essential part of the development and deployment process, enhancing functionality, reliability, and ease of collaboration.
To get started, you'll need to create a Telegram bot through BotFather:
- Open the Telegram app (desktop or mobile), search for "BotFather," and click on "Start."
- Send the following command to BotFather:
/newbot- Follow the instructions to:
- Choose a name for your bot.
- Select a username ending with "bot" (required by Telegram).
- BotFather will confirm your bot's creation and provide an HTTP API access token—save this token for later.
These instructions guide you through setting up the bot's communication and running it:
- Clone this repository to your local system.
- Open a terminal session in the directory where the project was cloned and install the required dependencies:
pip install -r requirements.txt- In the same directory, execute the following bash script to start the Telegram Bot:
./run.shOR
bash run.sh- When prompted, paste the API token you received from BotFather in step 4 of the pre-requisites.
A successful run will display the message: "TeleBot: Started polling."
- In the Telegram app, search for your bot using its username, open it, and type /start or /menu to begin using MoneyManager for expense tracking!
This project uses pytest to test all functionalities of the bot:
Run the following command from the project's root directory to execute all unit tests:
python -m pytest test/Currently, the project includes 100+ tests covering all bot functions.
Code coverage is assessed as part of each build. Every time new code is pushed, a build runs, and code coverage is computed.
To check code coverage locally:
coverage run -m pytest test/
coverage reportFor users, no additional configuration is required—just start using MoneyManager!
For contributors, we’ve designed the system to be as modular as possible, so that updates to one module won’t impact others. However, there are a few configurable parameters available to help tailor and extend the system:
- Adding and removing categories
- Adjusting graphing options
- Modifying the Telegram bot name, etc.
- Ensure you have a valid bot token: You can generate a token by creating a new bot via Telegram’s BotFather.
- Verify token placement: Double-check that the token is correctly added to your bot’s code or configuration.
- Check bot permissions: Confirm that your bot has the necessary permissions for the intended actions.
Alternatively, you’re welcome to submit a bug report in our repository. Make sure to follow the steps outlined in CONTRIBUTING.md for reporting issues.
- External Integrations: Explore integrations with platforms like Discord, WhatsApp, and Slack to provide seamless notifications and financial management within users' preferred communication apps.
- UI/Website Development: Develop a user-friendly web interface to enhance accessibility, offering streamlined access to financial data and resources.
- Advanced Telegram Bot: Enhance the current Telegram bot with extensive testing and improvements for greater reliability and comprehensive functionality.
- Expanded REST Features:
- Advanced analytics for deeper insights into financial habits.
- CSV import/export support for easy data handling.
- Group expense tracking with features like bill splitting, real-time updates, and integrated payment options.
Thank you for your interest in contributing to MoneyManager! Your contributions are greatly appreciated, and this guide will help you get started. For full details on contributing, please refer to the CONTRIBUTING.md file, which provides comprehensive instructions and guidelines.
By contributing to MoneyManager, you agree that your contributions will fall under the project’s open-source license. Please take a moment to review and understand the licensing terms before contributing. The specific license details can be found in the LICENSE file.
Listed alphabetically:
- Abhishek Rao ([email protected])
- Astha Bhalodiya ([email protected])
- Umang Diyora ([email protected])
Please note that we have a Code of Conduct that all contributors are expected to uphold. This ensures that our community remains welcoming and inclusive for everyone.
Thank you for using MoneyManager! Follow this page to stay updated on new features and improvements.
