Before we begin, make sure you have these installed on your computer:
- Python 3.8+ - The programming language our system uses
- Git - For downloading the code
- A code editor like VS Code (optional but recommended)
π‘ Don't worry if you're new to these tools - we'll guide you through everything!
First, let's download the banking system to your computer:
git clone https://github.com/dennismbugua/banking-system.git
cd banking-systemThink of this step as preparing your workspace. We need to install all the tools our banking system needs to run:
python -m venv banking_envOn Windows:
banking_env\Scripts\activateOn Mac/Linux:
source banking_env/bin/activateNow we'll install all the required packages listed in our requirements.txt file:
pip install -r requirements.txtHere's what each major component does:
- Django 4.2.16 - The main web framework that powers our banking system
- psycopg2-binary - Connects our system to PostgreSQL database
- whitenoise - Serves static files (CSS, images) efficiently
- django-crispy-forms - Makes our forms look beautiful
- Pillow - Handles image processing
Our banking system needs a database to store account information and transactions. Let's set it up:
python manage.py migrateThis command creates all the necessary tables in your database, like:
- User accounts
- Transaction history
- Account balances
Let's create an admin account so you can manage the banking system:
python manage.py createsuperuserYou'll be prompted to enter:
- Username (e.g.,
admin) - Email address
- Password (make it secure!)
The moment you've been waiting for - let's start the server:
python manage.py runserverOpen your web browser and go to: http://localhost:8000
Want to try it out immediately? Use these demo credentials:
- Username:
banking@online.com - Password:
123456
- View Account Dashboard - See your balance and recent transactions
- Make Deposits - Add money to your account
- Process Withdrawals - Take money out
- Generate Reports - View detailed transaction history
- Admin Panel - Access at
http://localhost:8000/admin/
*πΈ Screenshots needed:
- Login page
- Dashboard view
- Deposit/withdrawal forms
- Transaction report
- Admin interface*
The system uses modern CSS with beautiful animations. Key styling files are located in:
templates/core/base.html- Main layouttemplates/core/navbar.html- Navigation stylingtemplates/core/index.html- Homepage design
The modular structure makes it easy to extend:
- Accounts app - User management and authentication
- Transactions app - Deposit, withdrawal, and reporting
- Core app - Shared functionality and templates
Problem: Python or pip commands don't work
Solution: Make sure Python is installed and added to your system PATH
Problem: Migration issues or database connection problems
Solution:
python manage.py makemigrations
python manage.py migrateProblem: "Port 8000 is already in use"
Solution: Use a different port:
python manage.py runserver 8001Ready to share your banking system with the world? The project includes:
vercel.jsonfor Vercel deploymentrequirements.txtfor dependency managementruntime.txtfor Python version specification
Our banking system includes several security measures:
- User Authentication - Secure login/logout functionality
- Form Validation - Prevents invalid transactions
- CSRF Protection - Built into Django forms
- Session Management - Secure user sessions
For developers wanting to understand the architecture:
- Read the full technical guide: https://dennismbugua.co.ke/articles/247-cloud-banking-suite
- Explore the Django documentation
- Check out the PostgreSQL integration
This system demonstrates concepts used in:
- Online banking platforms
- Fintech applications
- Payment gateways
- Financial management systems
You now have a fully functional banking system running on your computer! Whether you're using it to learn about web development, demonstrate financial software concepts, or as a starting point for your own project, you're all set.
- π Explore the codebase to understand how it works
- π¨ Customize the appearance to match your preferences
- π Deploy it online to share with others
- π‘ Add new features like account transfers or budgeting tools
β If this tutorial helped you, please give the project a star!