Skip to content

Toston-App/lake

If you find this project useful, please consider giving it a star on GitHub! ⭐


Toston (Formerly Cleverbill.ing)

A free, open-source personal finance manager powered by AI

Follow us on Twitter (@cleverbill.ing) for updates!


🌟 Features

  • 💬 WhatsApp integration for transaction recording
  • 💸 Expense tracking
  • 💵 Income tracking
  • 🔄 Transfer tracking
  • 📅 Date-based filtering
  • 📈 Yearly, monthly, weekly and daily reports
  • 📊 Advanced filtering
  • 🏷️ Customizable categories and subcategories
  • 📥 Import capabilities
  • 📤 Export capabilities // Soon
  • 🤖 AI-powered insights // soon

🚀 Getting Started

Prerequisites

Setup

  1. Fork the repository

  2. Clone your fork locally

  3. Copy .env.develop to .env:

    # Unix/Linux/Mac
    cp .env.develop .env

Important

Do not use .env.develop in production

  1. Start the stack with Docker Compose: docker-compose up -d or docker compose up -d

Now you can open your browser and interact with these URLs:

DB Migrations

As during local development your app directory is mounted as a volume inside the container, you can also run the migrations with alembic commands inside the container and the migration code will be in your app directory (instead of being only inside the container). So you can add it to your git repository.

Make sure you create a "revision" of your models and that you "upgrade" your database with that revision every time you change them. As this is what will update the tables in your database. Otherwise, your application will have errors.

  • Start an interactive session in the backend container:
$ docker-compose exec backend bash
  • If you created a new model in ./backend/app/app/models/, make sure to import it in ./backend/app/app/db/base.py, that Python module (base.py) that imports all the models will be used by Alembic.

  • After changing a model (for example, adding a column), inside the container, create a revision, e.g.:

$ alembic revision --autogenerate -m "Add column last_name to User model"
  • Commit to the git repository the files generated in the alembic directory.

  • After creating the revision, run the migration in the database (this is what will actually change the database):

$ alembic upgrade head

Contributing

We welcome contributions! While we're actively developing and refactoring certain areas, there are plenty of opportunities to contribute effectively.

🎯 Focus areas: Tests, documentation, performance, bug fixes, project cleanup.

See our Contributing Guide for detailed setup instructions, development guidelines, and complete focus area guidance.

Quick start for contributors:

  • Fork the repo and clone locally
  • Follow the setup instructions in CONTRIBUTING.md
  • Create a feature branch and submit a PR

🔒 Security

See SECURITY.md for reporting vulnerabilities.

About

Backend for Toston.app (formerly Cleverbill.ing), THE open-source personal finance manager powered by AI and WhatsApp

Topics

Resources

License

Code of conduct

Contributing

Security policy

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Contributors 2

  •  
  •  

Languages