Skip to content

guillaumepot/my_bank_app

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Personal Bank App

This is a personal project to check my bank accounts. It is currently in development, with plans to add new features in the future.


Current Features

  • Add account (checking, saving, investment)
  • Create budgets
  • Create transactions & update accounts amounts
  • Display charts based on your transactions

Project Information

  • Version: 0.2.0 - QoL Update
  • Development Stage: Dev
  • Author: Guillaume Pot
  • Contact Information: [email protected]

Table of Contents


Repository Architecture

├── .github
│   │
│   └── workflows < Contains Workflows
|           |
|           ├── .env
|           |
|           └── upload_docker_images.yaml
|   
├── archives < Contains old code files
|       |
|       └── (obsolete)myBankPackage
|
├── build   < Contains builds
|        
├── changelogs < Changelogs for each new version
|        
├── utils < Contains utils py scripts
|     |
|     ├── generate_requirements.py
|     |
|     ├── generate_user_credentials.py
|     |
|     └── requirements.txt
|        
├── dev_test < Development test branch
|
├── media
|       |
|       └── bank_app_img.jpeg
|
├── src
|    |
|    ├── api
|    |    |
|    |    ├── api_account_router.py
|    |    |
|    |    ├── api_auth_router.py
|    |    |
|    |    ├── api_budget_router.py
|    |    |
|    |    ├── api_db_connectors.py
|    |    |
|    |    ├── api_main.py
|    |    |
|    |    ├── api_transaction_router.py
|    |    |
|    |    ├── api_vars.py
|    |    |
|    |    ├── Dockerfile
|    |    |
|    |    ├── generate_secret_key.py
|    |    |
|    |    ├── generate_secret_key.sh
|    |    |
|    |    └── requirements.txt
|    |
|    └── streamlit
|         |
|         ├── Dockerfile
|         |
|         ├── requirements.txt
|         |
|         └── streamlit.py
|
├── unit_tests < Contains unit tests
|
├── .env
|
├── .gitignore
│
├── docker-compose.yaml
│
└── README.md

Branch logic


├── main    # Main branch, contains releases
|   
├── build   # Used to build releases
|
├── debug   # Debug branch
|
└── develop # New features development branch


Requirements

  • Python with psycopg2, passlib
  • Docker
  • Docker Compose

Installation

[WIP]

-- Current steps are obsolete, changes will be added soon

  • Step 1: Create a directory for postgres data and attach it as a volume for the postgres container (Step1)

  • Step 2: Update the docker-compose file according to your needs.

  • Step 3 : Update api.env file according to your needs.

  • Step X: Comment port exposure for postgres container

  • Add the usernames to AUTHORIZED_USERS var in .env file

  • Configure POSTGRES variables in .env file.

  • Configure API variables in .env file.

  • User docker compose to start services (postgres, api, streamlit UI)

  • Use generate_user_credentials.py to generate new users


Changelogs

v0.2.1
v0.2.0
v0.1.3
v0.1.2
v0.1.1
v0.1.0


Roadmap

- Streamlit refactorization
- New UI (flask web app)

- Create an ETL pipline to get transaction datas, put datas in a storage; transform datas for analytics
- Add analytics charts (based on transactions) -> Analytics page ; Streamlit
- Use a ML pipeline to predict things (budgets, ..)