Skip to content

SheikhIshere/BankManagementProject_withDjango

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

20 Commits
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

Django Bank Management System

A comprehensive bank management system built with Django that allows users to manage accounts, perform transactions, and handle loans with email notifications.

Django Bank Management Python PostgreSQL

🌐 Live Demo

Live Application: https://bankmanagementproject-withdjango.onrender.com/

✨ Features

πŸ” User Authentication

  • User registration with account creation
  • Secure login/logout functionality
  • Session management
  • Profile management

πŸ’° Account Management

  • Multiple account types support
  • User profile with personal information
  • Address management
  • Account balance tracking

πŸ’Έ Transaction System

  • Deposit Money: Add funds to account with email confirmation
  • Withdraw Money: Secure withdrawal system with balance validation
  • Transaction History: Filterable transaction reports with date range
  • Real-time Balance Updates

🏦 Loan Management

  • Loan Requests: Submit loan applications (max 3 pending)
  • Loan Approval System: Admin-controlled loan approval
  • Loan Payment: Pay back approved loans
  • Loan History: Track all loan activities

πŸ“§ Email Notifications

  • Transaction confirmations
  • Loan request submissions
  • Loan payment receipts
  • System notifications

πŸ› οΈ Technology Stack

  • Backend: Django 4.2, Python
  • Database: PostgreSQL
  • Frontend: HTML, Tailwind CSS
  • Authentication: Django Auth System
  • Email: Django Email Backend
  • Deployment: Render

πŸ“ Project Structure

bank_management/
β”œβ”€β”€ accounts/
β”‚   β”œβ”€β”€ models.py          # User profiles and bank accounts
β”‚   β”œβ”€β”€ views.py           # Authentication and profile views
β”‚   β”œβ”€β”€ forms.py           # User registration and update forms
β”‚   └── templates/         # Authentication templates
β”œβ”€β”€ transactions/
β”‚   β”œβ”€β”€ models.py          # Transaction and loan models
β”‚   β”œβ”€β”€ views.py           # Transaction processing views
β”‚   β”œβ”€β”€ urls.py            # Transaction routes
β”‚   └── templates/         # Transaction templates
β”œβ”€β”€ templates/
β”‚   └── base.html          # Base template
└── requirements.txt       # Project dependencies

πŸš€ Installation & Setup

Prerequisites

  • Python 3.8+
  • PostgreSQL
  • pip

Local Development

  1. Clone the repository
git clone https://github.com/yourusername/django-bank-management.git
cd django-bank-management
  1. Create virtual environment
python -m venv venv
source venv/bin/activate  # On Windows: venv\Scripts\activate
  1. Install dependencies
pip install -r requirements.txt
  1. Environment Configuration Create .env file:
DEBUG=True
SECRET_KEY=your-secret-key
DATABASE_URL=postgres://user:password@localhost/bank_db
EMAIL_BACKEND=django.core.mail.backends.console.EmailBackend
  1. Database Setup
python manage.py migrate
python manage.py createsuperuser
  1. Run Development Server
python manage.py runserver

Visit http://localhost:8000 to view the application.

🎯 Key Components

Models Overview

UserBankAccount

  • One-to-one relationship with Django User
  • Account type (Savings/Current)
  • Unique account number
  • Balance tracking
  • Personal details (birth date, gender)

UserAddress

  • User address information
  • Street, city, postal code, country

Transaction

  • Links to user accounts
  • Tracks amount and balance after transaction
  • Supports multiple transaction types
  • Loan approval status
  • Timestamp ordering

Transaction Types

  1. Deposit - Adding funds to account
  2. Withdrawal - Removing funds from account
  3. Loan - Loan request
  4. Loan Paid - Loan repayment

πŸ”„ Workflow

User Registration

  1. User fills registration form
  2. System creates User and UserBankAccount
  3. Automatic login after registration
  4. Welcome email sent

Transaction Process

  1. User selects transaction type
  2. System validates amount and balance
  3. Transaction record created
  4. Account balance updated
  5. Confirmation email sent

Loan Management

  1. User submits loan request (max 3 pending)
  2. Admin approves/rejects loan
  3. User pays approved loan
  4. System updates balances and sends notifications

πŸ“Š Templates

Core Templates

  • base.html - Main layout with navigation
  • transaction_form.html - Deposit/withdrawal forms
  • transaction_report.html - Filterable transaction history
  • profile.html - User profile management
  • user_registration.html - Registration form
  • user_login.html - Login form

πŸ”’ Security Features

  • Django built-in authentication
  • Login-required decorators for protected views
  • CSRF protection
  • Form validation and error handling
  • Secure password management

πŸ“§ Email Templates

  • Deposit confirmation
  • Withdrawal notification
  • Loan request submission
  • Loan payment receipt

πŸš€ Deployment

The project is configured for deployment on Render with:

  • PostgreSQL database
  • Static file serving
  • Environment variable configuration
  • Production-ready settings

🀝 Contributing

  1. Fork the project
  2. Create your feature branch (git checkout -b feature/AmazingFeature)
  3. Commit your changes (git commit -m 'Add some AmazingFeature')
  4. Push to the branch (git push origin feature/AmazingFeature)
  5. Open a Pull Request

πŸ“ License

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

πŸ‘₯ Authors

  • Imran Rafi - Student + Django learner

πŸ™ Acknowledgments

  • Django documentation
  • Tailwind CSS for styling
  • Render for hosting

About

Minimal design, live link: https://bankmanagementproject-withdjango.onrender.com/

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Contributors 2

  •  
  •