If you frequently:
- ✅ make shared orders with friends
- ✅ utilize many bank accounts
then Lunni can help you to better organize and analyze your finance data.
Feel free to run the project and import this example PKO statement file.
- Import .csv bank statements:
- mBank [UTF-8]
- mBank savings (so-called "Cele") [Windows-1250]
- PKO [Windows-1250]
- ING Bank Śląski [Windows-1250]
- Transaction Table
- View transaction chronologically sorted in a table
- Transaction Notes
- Assign notes e.g. to document ambiguous transactions
- Transaction Merging
- Merge transactions to combine incoming money with expenses
- Useful for handling shared orders with friends
- Transaction Categories
- Define transaction categories of type:
- POSITIVE: Incomes
- NEGATIVE: Expenses
- IGNORE: Hidden in reports and the transaction table
- Define transaction categories of type:
- Category Matchers
- Automate categorization process by assigning categories to transactions using
regex
- Automate categorization process by assigning categories to transactions using
- Export to .csv
- Export financial data to analyze it in external tools, for example Tableau, PowerBI, Google Data Studio
The format is the following:
id | date | description | note | account | category_name | category_variant | calculated_amount |
---|---|---|---|---|---|---|---|
1 | 2023-05-11 | OPŁATA ZA KARTĘ | PKO | Bank fees | NEG | -3.00 | |
5 | 2023-05-04 | Tytuł: PIZZA ITALIANA | PKO | Fast food | NEG | -10.00 | |
6 | 2023-05-03 | Tytuł: WYNAGRODZENIE | PKO | Salary | POS | 100.00 |
Where calculated_amount
is the resulting amount after merging transactions.
- ❌ Support multiple users and separate the data
Docker is required.
- Create a
prod.env
file in/server
directory with the following structure:
SECRET_KEY=placeholder-key
ENV_NAME=production
-
SECRET_KEY
This key is used by Django in critical cryptographic use cases. If you plan to deploy the app, generating your own is a must! You can do it for example at https://djecrety.ir. -
ENV_NAME
Specifies which Django settings variant to load. Possible values:production
. Any other value will fall back todevelopment
environment by default.
- Run
docker-compose up
to build the application - Visit the application at
http://localhost:80
Python 3.11 is required. Please note the following guide assumes you're using Unix/macOS.
- Change directory to
/server
- Create a virtual Python environment in order to install all packages locally:
python3 -m venv env
- Activate the virtual environment:
source env/bin/activate
- Install dependencies:
python3 -m pip install -r requirements.txt
python3 manage.py migrate
python3 manage.py runserver
- Back-end server is running at http://localhost:8000
NodeJS 18.4 is required.
- Change directory to
/client
npm install
npm start
- Front-end server is running at http://localhost:3000
- Gradually add unit tests to cover newly found bugs