Skip to content

A secure Flask-based banking application featuring comprehensive account management, transaction processing, and administrative controls.

License

Notifications You must be signed in to change notification settings

Hamada-khairi/Hamada-ASC-Python-Flask

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

4 Commits
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

🏦 Hamada Bank System

πŸ“‘ Table of Contents


🌟 Overview

Hamada Bank System is a robust and secure banking application built with Flask. It provides a comprehensive set of features for both users and administrators, ensuring secure transactions and efficient account management.

PYP.mp4

πŸš€ Features

  • πŸ‘€ User Authentication and Authorization
  • πŸ’° Account Management (Savings, Current, Islamic)
  • πŸ’Έ Deposit and Withdrawal Transactions
  • πŸ’³ Loan Application and Management
  • πŸ“Š Transaction History and Account Statement
  • πŸ‘‘ Admin Dashboard for User Management
  • πŸ“± Responsive Web Design for Mobile and Desktop

πŸ”’ Security Measures

  • πŸ” Password Hashing using Werkzeug Security
  • 🚫 Rate Limiting to Prevent Brute Force Attacks
  • πŸ”‘ JWT (JSON Web Tokens) for Secure Authentication
  • πŸ›‘οΈ CSRF Protection
  • 🧹 Input Sanitization to Prevent XSS Attacks
  • πŸ” Detailed Logging for Audit Trails
  • πŸ”’ Account Lockout After Multiple Failed Login Attempts
  • πŸ” Secure Session Management
  • πŸ“œ Transaction Integrity Checks

πŸ“Έ Screenshots

HOME PAGE

image

LOGIN PAGE

image

ADMIN DASHBOARD

image

image

USER PROFILE PAGE

image

REGISTER PAGE

image

USER DASHBOARD

image

DEPOSIT PAGE

image

WITHDRAW PAGE

image

LOAN PAGE

image

TRANSACTION

image

ADMIN CREATE A USER ACCOUNT

image

image

404 PAGE

image

500 PAGE

image

RATE LIMIT PAGE

image


πŸ› οΈ Installation

Using Docker

  1. Clone the repository:

    git clone https://github.com/yourusername/hamada-bank-system.git
    cd hamada-bank-system
    
  2. Build and run the Docker containers:

    docker-compose up --build
    
  3. Access the application at http://localhost:5000

Using Virtual Environment

  1. Clone the repository:

    git clone https://github.com/yourusername/hamada-bank-system.git
    cd hamada-bank-system
    
  2. Create and activate a virtual environment:

    python -m venv venv
    source venv/bin/activate  # On Windows, use `venv\Scripts\activate`
    
  3. Install the required packages:

    pip install -r requirements.txt
    
  4. Set up environment variables:

    export FLASK_APP=app.py
    export FLASK_ENV=development
    export SECRET_KEY=your_secret_key
    export JWT_SECRET_KEY=your_jwt_secret_key
    
  5. Initialize the database:

    flask db upgrade
    
  6. Run the application:

    flask run
    
  7. Access the application at http://localhost:5000


πŸ–₯️ Usage

  1. Register a new account or log in with existing credentials.
  2. Navigate through the dashboard to perform various banking operations.
  3. Admins can access the admin dashboard for user management and system monitoring.

πŸ”— API Endpoints

  • /api/balance: Get user's current balance
  • /api/admin/logs: Retrieve system logs (Admin only)

🀝 Contributing

Contributions are welcome! Please feel free to submit a Pull Request.

πŸ“„ License

This project is licensed under the MIT License - see the LICENSE file for details.