Skip to content

jafarbekyusupov/bankingSystem

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

49 Commits
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

Full-stack Single Page Banking Application

Flask Python HTML5 CSS3 JavaScript PostgreSQL

Try It Now

Important

πŸ”Έ Cold Start Delay: This demo runs on a free-tier cloud service. If the link hasn't been clicked recently, the server may enter sleep mode.
πŸ”Έ First load could take from 10-50 seconds. After first load, following ones will be fast

Banking System Demo

Watch Demo: Mini Banking System Web App Video Demo | Full-Stack Python Flask & JS

πŸ”§ Usage

πŸ‘¨πŸ»β€πŸ’» Default Admin Account

  • Username: admin
  • Password: admin123

πŸ‘€ Sample User Account

  • Username: user
  • Password: user123

Tip

You can also create your own User Account via Registration Form

πŸ“‹ Features

  • User authentication and account management
  • Multiple account types (Checking, Savings)
  • Transaction history and money transfers
  • Loan application and management
  • Secure JWT-based authentication
  • RESTful API for all banking operations
  • Responsive web interface

πŸš€ Quick Start

πŸ“„ Prerequisites

β€’ Python 3.8 or higher

β€’ pip (Python package manager)

βš™οΈ Installation

  1. πŸ“₯ Clone the repository:
git clone https://github.com/jafarbekyusupov/bankingSystem.git
cd bankingSystem
  1. Create virtual environment
python -m venv venv
source venv/bin/activate

Tip

On Windows:

python -m venv venv
venv\Scripts\activate
  1. πŸ“¦ Install dependencies:
pip install -r requirements.txt
  1. πŸ•ΉοΈ Run the application:
python run.py
  1. 🌐 Access the web application: Open your browser and navigate to http://localhost:5000

πŸ“š API Documentation

The API endpoints are available at /api/v1 and include:

  • User endpoints: /api/v1/users
  • Account endpoints: /api/v1/accounts
  • Transaction endpoints: /api/v1/transactions
  • Loan endpoints: /api/v1/loans

For detailed API documentation, see the API section in the application.

πŸ›‘οΈ Security Features

  • Password hashing with bcrypt
  • JWT authentication for API requests
  • CSRF protection for web forms
  • Input validation and sanitization

πŸ—οΈ Project Structure

Note

Explore the complete project overview, including UML Diagrams and in-depth explanations, provided by Cognition here.

The project follows a modular architecture with clear separation of concerns:

  • core/: Core domain models
  • managers/: Business logic and data management
  • api/: RESTful API implementation
  • utils/: Utility functions and helpers
  • static/: Web frontend (HTML, CSS, JavaScript)
  • data/: JSON data storage

πŸ“œ File Structure

BankingSystem/
β”œβ”€β”€ README.md                         # Project documentation
β”œβ”€β”€ requirements.txt                  # Python dependencies
β”œβ”€β”€ run.py                            # Application entry point
β”œβ”€β”€ src/                              # Source code directory
β”‚   β”œβ”€β”€ __init__.py                   # Package initialization
β”‚   β”œβ”€β”€ app.py                        # Flask application setup
β”‚   β”œβ”€β”€ models.py                     # 
β”‚   β”œβ”€β”€ core/                         # Core banking functionality
β”‚   β”‚   β”œβ”€β”€ __init__.py
β”‚   β”‚   β”œβ”€β”€ User.py                   # User class definition
β”‚   β”‚   β”œβ”€β”€ Account.py                # Account class definition
β”‚   β”‚   β”œβ”€β”€ Transaction.py            # Transaction class definition
β”‚   β”‚   └── Loan.py                   # Loan class definition
β”‚   β”œβ”€β”€ managers/                     # Manager classes
β”‚   β”‚   β”œβ”€β”€ __init__.py
β”‚   β”‚   β”œβ”€β”€ UserManager.py            # User management
β”‚   β”‚   β”œβ”€β”€ AccountManager.py         # Account management
β”‚   β”‚   └── LoanManager.py            # Loan management
β”‚   β”œβ”€β”€ utils/                        # Utility files
β”‚   β”‚   β”œβ”€β”€ __init__.py
β”‚   β”‚   β”œβ”€β”€ json_utils.py             # JSON serialization/deserialization
β”‚   β”‚   └── jwt_auth.py               # JWT authentication
β”‚   β”œβ”€β”€ api/                          # API server files
β”‚   β”‚   β”œβ”€β”€ __init__.py
β”‚   β”‚   β”œβ”€β”€ routes/                   # API endpoints
β”‚   β”‚   β”‚   β”œβ”€β”€ __init__.py
β”‚   β”‚   β”‚   β”œβ”€β”€ user_routes.py
β”‚   β”‚   β”‚   β”œβ”€β”€ account_routes.py
β”‚   └─  └─  └── loan_routes.py
β”œβ”€β”€ static/                           # Web frontend
β”‚   β”œβ”€β”€ index.html                    # Main HTML file  
β”‚   β”œβ”€β”€ css/                          # Stylesheets
β”‚   β”‚   └── style.css
β”‚   β”œβ”€β”€ js/                           # JavaScript files
β”‚   β”‚   β”œβ”€β”€ app.js
β”‚   β”‚   β”œβ”€β”€ api.js
β”‚   β”‚   β”œβ”€β”€ components/               # Frontend components
β”‚   β”‚   β”‚   β”œβ”€β”€ dashboard.js
β”‚   β”‚   β”‚   β”œβ”€β”€ accounts.js
β”‚   β”‚   β”‚   β”œβ”€β”€ profile.js
β”‚   β”‚   β”‚   β”œβ”€β”€ admin.js
β”‚   β”‚   β”‚   β”œβ”€β”€ transactions.js
β”‚   β”‚   β”‚   β”œβ”€β”€ transfers.js
β”‚   └─  └─  └── loans.js
β”œβ”€β”€ data/                             # LOCAL Data storage directory
β”‚   β”œβ”€β”€ users.json                    # User data
β”‚   β”œβ”€β”€ accounts.json                 # Account data
β”‚   β”œβ”€β”€ transactions.json             # Transaction records
β”‚   └── loans.json                    # Loan data
β”œβ”€β”€ tests/                            # Test files
β”‚   β”œβ”€β”€ conftest.py
β”‚   β”œβ”€β”€ pytest.ini
β”‚   β”œβ”€β”€ test_core/
β”‚   β”‚   β”œβ”€β”€ test_user.py
β”‚   β”‚   β”œβ”€β”€ test_account.py
β”‚   β”‚   β”œβ”€β”€ test_loan.py
β”‚   β”‚   └── test_transaction.py
β”‚   β”œβ”€β”€ test_managers/
β”‚   β”‚   β”œβ”€β”€ test_user_manager.py
β”‚   β”‚   β”œβ”€β”€ test_account_manager.py
β”‚   β”‚   └── test_loan_manager.py
β”‚   β”œβ”€β”€ test_routes/
β”‚   β”‚   β”œβ”€β”€ test_user_routes.py
β”‚   β”‚   β”œβ”€β”€ test_account_routes.py
└─  └─  └── test_loan_routes.py