Gunabana / MoneyManager

The Unlicense
0 stars 0 forks source link

Table of Contents generated with DocToc

Money Manager

Project Logo

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! 🤖🎉

built_with_love

Project Overview

https://github.com/user-attachments/assets/91fdf9e0-9489-4e05-ab61-a7599e5463e1

Quality

badge_pytest_status badge_code_coverage badge_total_tests badge_pylint badge_black badge_mypy badge_bandit

Standards

black license maintained DOI

Stats

pr_open pr_close issue_open issue_close

commits_since_last_project repo_size forks stars downloads

Tools & Technologies

Python MongoDB FastAPI Docker GitHub GitHub Actions Linux Visual Studio Code Zoom DigitalOcean ChatGPT


Features

Usage

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.

Tech Stack

Tools

Each tool is an essential part of the development and deployment process, enhancing functionality, reliability, and ease of collaboration.

Installation

Pre-requisite Tasks

To get started, you'll need to create a Telegram bot through BotFather:

  1. Open the Telegram app (desktop or mobile), search for "BotFather," and click on "Start."
  2. Send the following command to BotFather:
    /newbot
  3. Follow the instructions to:
    • Choose a name for your bot.
    • Select a username ending with "bot" (required by Telegram).
  4. BotFather will confirm your bot's creation and provide an HTTP API access token—save this token for later.

Actual Installation

These instructions guide you through setting up the bot's communication and running it:

  1. Clone this repository to your local system.

  2. Open a terminal session in the directory where the project was cloned and install the required dependencies:

    pip install -r requirements.txt
  3. In the same directory, execute the following bash script to start the Telegram Bot:

    ./run.sh

    OR

    bash run.sh
  4. 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."

  5. 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!

Testing

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.

image

Code Coverage

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 report

Configuration

For 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:

Troubleshooting

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.

🚀 Future Enhancements

Contributing

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.

LICENSE

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.

🤝 Contributors

Listed alphabetically:

Code of Conduct

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.