A Banking Management System written in python.
- Python 3.10.2 (A high-level easy to use scripting language)
- 15.1 Distrib 10.6.5-MariaDB (An open-source fork of MySQL with additional features)
- Visual Studio Code (A proprietary text editor by Microsoft) #Check VSCodium
- Neofetch (An open-source text editor, fork of VIM)
- DBeaver 21.3.3.202201242151 (Free and open-source multi-platform database tool)
- Git (Git is a free and open source distributed version control system)
- fish - the friendly interactive shell (An open-source shell with smart and user-friendly command line shell for macOS, Linux with autocompletion, and many more useful features)
- MyCLI (An open-source Terminal Client for MySQL with AutoCompletion and Syntax Highlighting)
- Github
- Tabnine Autocomplete
- Github Copilot
- hashlib for sha3_512 (Used to store passwords)
- mariadb (A connector for mariadb written in C)
- pycryptodome for Public and Private key generation.
This project is basically a bunch of APIs linked with one another to make a BARE-BONE Banking Management System. The APIs are:
- People.py: For inserting People into the database.
- Staffs.py: Contains the APIs needed for Auth and managing the database.
- Accounts.py: Contains the APIs for changing the state of an account.
- Users.py: Contains the APIs for the user to interact with his/her account.
CLI.py is the interface which binds all the other APIs into a working program.
- Python 3.6 (mariadb module doesn't support any lower version of python)
- Mariadb (RDBMS used instead of MySQL)
Many different systems were used in the production, but most of the code was written on my machine with the following specs.
- OS: Arch Linux x86_64
- Kernel: 5.16.7-arch1-1
- Shell: fish 3.3.1
- CPU: Intel Pentium N3540 (4) @ 2.665GHz
- GPU: Intel Atom Processor Z36xxx/Z37xxx Series Graphics & Display
- Memory: 3811MiB
NOTE: These specs are not necessary for the working for the APIs.
- Install Python
- Install Mariadb
- Install the required modules using requirements.txt
python3 -m pip -r requirements.txt - Clone the repository and cd into it.
- Run the
Start.pyscript to initialize the database and create dummy tables. - Test the project by running the script
test.py - Relaunch
Start.pyafter runningtest.pyas the script will truncate all the existing tables. - Run
python3 CLI.pyin the terminal.
Details of the dummy users are stored in config/people_date.txt
I am really grateful to everyone who has contributed in any of the above specified projects, without any one of them this entire project would be much harder to made and test. The list of sites I visited during the making will be References.md