Git Product home page Git Product logo

cashflow's Introduction

Cashflow

Cashflow is an application for financial management and collaborative planning with your loved ones.

With Cashflow, you can:

  1. Track your expenses No more need for complicated spreadsheets. Cashflow allows you to easily record and monitor all your expenses in a user-friendly interface.

  2. Build savings Plan your savings and goals. Watch as your budget grows to achieve your dreams.

  3. Create shared wallets Invite your friends and family to shared wallets for joint financial management. Shared purchases or trips have become easier!

  4. Analyze finances Cashflow provides convenient reports and analytics to help you better understand where your money is going and how to save.

Features

  • Create unlimited wallets
  • Edit or create categories for wallets
  • Share your vallets via link, inline or QR code
  • Save transactions: both expenses and incomes
  • Rename existed wallets
  • Validation of data
  • Multi-language support
  • Data import and export
  • Migrations and data save
  • One-time link for wallet invitation
  • Invitation link generation permission
  • In-wallet users rename
  • Default wallet
  • Currencies and auto exchange
  • Bot functionality with quickly transactions record

Requirements

  • docker
  • docker-compose

How to run

  1. Create .env file

Example

POSTGRES_USER=admin
POSTGRES_PASSWORD=admin

[email protected]
PGADMIN_DEFAULT_PASSWORD=root

TOKEN=<your telegram token>
SECRET_KEY=<your secret_key>

API_URL=http://<your URL>:8000

WEBAPP_TG_URL=https://t.me/<bot_name>/<webapp_name>
WEBAPP_URL="https://<frontend URL>/#/"

BOT_SECRET=<secret bot key>
  1. Run docker compose --env-file .env up

Database schema

schema

Services

swagger

http://<your URL>:8000/docs

pgadmin4

http://<your URL>:5050/

frontend

https://<your URL>:80/ should have SSL certificate. This ip should be added to your bot via https://t.me/BotFather

cashflow's People

Contributors

omega1996 avatar vlako avatar

Stargazers

 avatar  avatar  avatar  avatar

Watchers

 avatar  avatar

Forkers

mistermusk

cashflow's Issues

add new category

POST /categoryList/<wallet id>

body:

{
name: str, 
type: str <income | outcome>, 
icon?: str, 
color?: str 
}

wallet info API endpoint request

GET /wallet/<wallet id>

response:

{
 outcomes: [
 {
  id: str,
  category: str,
  value: num,
  date: str,
  description: str,
  user: <user>,
  source: str
 }
  ],
 incomes: [
  id: str,
  category: str,
  value: num,
  date: str,
  description: str,
  user: <user>,
  source: str
  ],
}

get categories

GET /categoryList/<wallet id>

response:
[ { id: str, name: str, type: str <income | outcome>, icon?: str, color?: str } ]

edit transaction

PATCH /transaction/<transaction id>

body:

{
  category: str (id),
  value: num,
  date: str,
  description: str,
  source: str, 
  type: str <income | outcome>
}

delete wallet

DELETE /wallet/<wallet id>

params:
id: number (wallet id)

add transaction API endpoint request

POST /transaction

body:

{
  category: str (id),
  value: num,
  date: str,
  description: str,
  source: str, 
  type: str <income | outcome>
wallet_id: number
}

response:

delete transaction

DELETE /transaction/<transaction id>

params:
id: string (transaction id)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.