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
Watch Demo: Mini Banking System Web App Video Demo | Full-Stack Python Flask & JS
- Username:
admin
- Password:
admin123
- Username:
user
- Password:
user123
Tip
You can also create your own User Account
via Registration Form
- 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
β’ Python 3.8 or higher
β’ pip (Python package manager)
- π₯ Clone the repository:
git clone https://github.com/jafarbekyusupov/bankingSystem.git
cd bankingSystem
- Create virtual environment
python -m venv venv
source venv/bin/activate
Tip
On Windows:
python -m venv venv
venv\Scripts\activate
- π¦ Install dependencies:
pip install -r requirements.txt
- πΉοΈ Run the application:
python run.py
- π Access the web application:
Open your browser and navigate to
http://localhost:5000
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.
- Password hashing with bcrypt
- JWT authentication for API requests
- CSRF protection for web forms
- Input validation and sanitization
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 modelsmanagers/
: Business logic and data managementapi/
: RESTful API implementationutils/
: Utility functions and helpersstatic/
: Web frontend (HTML, CSS, JavaScript)data/
: JSON data storage
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