Skip to content

njuguna-dev/banking-system

Repository files navigation

Banking System Setup Tutorial 🏦

πŸ“‹ What You'll Need

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!

πŸš€ Step 1: Getting the Code

First, let's download the banking system to your computer:

git clone https://github.com/dennismbugua/banking-system.git
cd banking-system

πŸ”§ Step 2: Setting Up Your Environment

Think of this step as preparing your workspace. We need to install all the tools our banking system needs to run:

Create a Virtual Environment (Recommended)

python -m venv banking_env

Activate the Environment

On Windows:

banking_env\Scripts\activate

On Mac/Linux:

source banking_env/bin/activate

πŸ“¦ Step 3: Installing Dependencies

Now we'll install all the required packages listed in our requirements.txt file:

pip install -r requirements.txt

What's Being Installed?

Here'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

πŸ—„οΈ Step 4: Database Setup

Our banking system needs a database to store account information and transactions. Let's set it up:

python manage.py migrate

This command creates all the necessary tables in your database, like:

  • User accounts
  • Transaction history
  • Account balances

πŸ‘€ Step 5: Create Your First Admin User

Let's create an admin account so you can manage the banking system:

python manage.py createsuperuser

You'll be prompted to enter:

  • Username (e.g., admin)
  • Email address
  • Password (make it secure!)

🎬 Step 6: Launch Your Banking System!

The moment you've been waiting for - let's start the server:

python manage.py runserver

Open your web browser and go to: http://localhost:8000

🏦 Step 7: Exploring Your Banking System

Demo Account Access

Want to try it out immediately? Use these demo credentials:

  • Username: banking@online.com
  • Password: 123456

What You Can Do:

  1. View Account Dashboard - See your balance and recent transactions
  2. Make Deposits - Add money to your account
  3. Process Withdrawals - Take money out
  4. Generate Reports - View detailed transaction history
  5. Admin Panel - Access at http://localhost:8000/admin/

*πŸ“Έ Screenshots needed:

  • Login page
  • Dashboard view
  • Deposit/withdrawal forms
  • Transaction report
  • Admin interface*

🎨 Customization Options

Changing the Appearance

The system uses modern CSS with beautiful animations. Key styling files are located in:

  • templates/core/base.html - Main layout
  • templates/core/navbar.html - Navigation styling
  • templates/core/index.html - Homepage design

Adding New Features

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

FileStructure

πŸ” Troubleshooting Common Issues

"Command not found" errors

Problem: Python or pip commands don't work
Solution: Make sure Python is installed and added to your system PATH

Database errors

Problem: Migration issues or database connection problems
Solution:

python manage.py makemigrations
python manage.py migrate

Port already in use

Problem: "Port 8000 is already in use"
Solution: Use a different port:

python manage.py runserver 8001

🌐 Deploying to Production

Ready to share your banking system with the world? The project includes:

  • vercel.json for Vercel deployment
  • requirements.txt for dependency management
  • runtime.txt for Python version specification

YT Video

πŸ” Security Features

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

πŸ“š Learn More

Technical Deep Dive

For developers wanting to understand the architecture:

Real-World Applications

This system demonstrates concepts used in:

  • Online banking platforms
  • Fintech applications
  • Payment gateways
  • Financial management systems

πŸŽ‰ Congratulations!

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.

Next Steps:

  • πŸ” 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!

About

For full experience in demo - deposit, withdraw and check financial reports

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published