An open API service indexing awesome lists of open source software.

https://github.com/wisskirchenj/simple-banking

Simple credit card account system in Python using sqlite.
https://github.com/wisskirchenj/simple-banking

python-3-11 sqlalchemy-orm sqlite3

Last synced: 12 months ago
JSON representation

Simple credit card account system in Python using sqlite.

Awesome Lists containing this project

README

          

# IDEA EDU Course

Project implemented in the track 'SQL with Python' of hyperskill.org JetBrains Academy. Purpose of doing this
project is to further practice and stay in touch with Python programming.

## Technology / External Libraries

- Python 3.11.3,
- with packages: SQLAlchemy (ORM & Core) 2.0.9, typing, typing_extensions, random, os, unittest, unittest.mock, parameterized

## Repository Contents

The sources of main project tasks (4 stages) and pytest testing.

## Installation

Install the wheel file using pip after clone/fork:

> pip install dist/banking-3.11.3.post1-py3-none-any.whl

## Program description

Simple banking is mainly about credit card accounts and a CL-menu to add cards, do transactions, see balances and
stuff like that. Transactions as well as the credit card accounts are stored in an SQLite-database using database
transactions.

Have fun!

## Project completion

Project was completed on 09.04.23

## Progress

01.04.23 Project started - gitHub repo and project structure setup.

03.04.23 Stage 1 completed - creation of credit cards, user session to login to account, used @patch.object of
unittest.mock to replace method with mock.

04.04.23 Stage 2 completed - implement luhn algorithm for checksum to yield valid credit card number. Parameterized
tests with package parameterized.

08.04.23 Stage 3 completed - bind SQLite database with SQLAlchemy 2.0.9 to the credit card accounts. Use new Declarative
ORM-mapping of SQLAlchemy with Dataclasses.

09.04.23 Final Stage 4 completed - Add deposit, transfer and close account functionality. Full coverage integration
testing with mock input and mocking random.