You can check on line: https://lucycashflow.herokuapp.com/.
p.s. This project it is only for study proposal. Feel free to use it, but please do not open issues. I do not intend to answer any questions.
- Version 1.1
- Tue 2021-07-27 19:42:37 -04, verifique os logs aqui.
I would like to learn how to handle with databases, html, and requests. I tough that a simple and small project could be useful to improve my skills about computer science. Thus I tried to provide an open source program for personal finances management. Furthermore I can archive my spreadsheet and work on my own program. ;)
Why an app to financial management?
Organize financial book is a good way to improve life. Now days there are several on line sheets, apps for mobile, etc. However, once your data is on the internet, probably always it will be.
Thinking in privacy, lucyCashflow
was created. It's a quite simple app
to run in your own personal machine. The functions are store,
categorize, and report money inputs and outputs. Intending to simplify
the use, some categories and sub-categories were assigned (the
categories are in Portuguese, Sorry!):
Requirements:
- python3 and packages:
- flask
- flask_bootstrap
- import pandas as pd
- json
- SQLITE3
Usually python3 and SQLITE3 are already available on your operational system. To
install the libraries you can use pip3
:
pip3 install <package name>
Download:
Create a specific folder for this app. Download the all content from GitHub and unzip in the folder that you created.
- go to terminal and access the folder that you created for the app.
- remove the file
db_lucycashflow.db
, it is because the database from github is not clean. - create a new database, just run:
python3 create_tables.py
. This new database has one account called "MyWallet"
note: you just need to do the above steps once, but if for some reason you want create a new database, feel free to repeat.
In terminal, go to the folder that you had created and type:
python3 app_lucycashflow.py
It will return a local address like: http://127.0.0.1:5000/
, just copy
and paste on your browser (Firefox, Chromium, Chrome, etc). Now I hope
you have fun.
- Create accounts
- Insert expenses and incomes and categorize by type
- Transfers between accounts
- Manage transactions
- View reports:
- cash flow by period
- account statement
- balance by account
- expenses by category
- DONE Modeling DB (Portuguese);
- DONE Backend for transactions (SQLITE3);
- DONE FLASK structure
- DONE Logic for transference
- DONE Reports [100%]
- Back end balance
- Front end balance
- Back end bank statement
- Front end bank statement
- Balance group by account
- Monthly cash flow
- Plot monthly cash flow
- Expenses by categories
- Expenses by subcategories
- Floating point for sums
- Improve cash flow plot
- Improve balance by account for a specific period
- Improve reports
- Deploy in some server
- Verify locks for income data as expenses and vice versa
- Total of incomes has been included on incomes report
- A incomes report has been included.
- Improvements cashflow chart and update to jsChart 3.0
- Reports has been updated (cashflow, balance, expenses, ...),
- Updated subcategories, a new one subcategory for vehicle was added. Two weeks ago the app as deployed on Heroku https://lucycashflow.herokuapp.com/.
- Modeling was altered, the number of categories was decreased. Balance for account is done. Floating point for sums has been fixed (cents).
- Expenses by categories and subcategories was implemented.
- Readme file improvements.
- A bar plot (first experience with java script) with monthly cash flow
is working in
relatorio.html
. The bars show up after period assignment and click button. At moment the code is messy. Sub directory were created for js library.
- A
html
with menu were create for period reports. Balance for accounts were implemented on front end and back end
- Period report and balance for each account on
extrato.html
andapp_lucycashflow.py
. The queries for it are in./models/genextratos.py
.
- First README