Skip to content

This is an intentionally unsecure web bank app for the SWE 266P course at UCI.

Notifications You must be signed in to change notification settings

Emmeline1101/online-banking-app

Repository files navigation

Online Banking System

This is an Online Banking System created using Django Web Framework. And we intentionally inject 4 exploitable vulnerabilities into the code

Web Architecture

  • Frontend: HTML
  • Backend: Django
  • Database: SQLite & Redis

Features

  • Create a Bank Account.
  • Deposit & Withdraw Money
  • Initial Balance
  • Ability to add Minimum and Maximum Transaction amount restriction
  • See the balance after every transaction in the Transaction Report
  • Modern UI with Tailwind CSS

Prerequisites

Be sure you have the following installed on your development machine:

  • Python >= 3.7
  • Redis Server
  • Git
  • pip
  • Virtualenv (virtualenvwrapper is recommended)

Requirements

  • celery==4.4.7
  • Django==3.2
  • django-celery-beat==2.0.0
  • python-dateutil==2.8.1
  • redis==3.5.3

Project Installation

Run Redis server

redis-server

To setup a local development environment:

Create a virtual environment in which to install Python pip packages. With virtualenv,

virtualenv venv            # create a virtualenv
source venv/bin/activate   # activate the Python virtualenv 

or with virtualenvwrapper,

mkvirtualenv -p python3 {{project_name}}   # create and activate environment
workon {{project_name}}   # reactivate existing environment

Clone GitHub Project,

https://github.com/Emmeline1101/online-banking-app.git

cd online-banking-app

Install development dependencies,

pip install -r requirements.txt

Migrate Database,

python manage.py migrate

Run the web application locally,

python manage.py runserver # 127.0.0.1:8000

Create Superuser,

python manage.py createsuperuser

Run Celery (Different Terminal Window with Virtual Environment Activated)

celery -A banking_system worker -l info

celery -A banking_system beat -l info

How to relogin the system after the first trial (already install dependencies)

# active virtualenv
source /path/to/venv/bin/activate

# run server
python manage.py runserver

How to exit

# exit server
ctrl + C

# close Redis
redis-cli shutdown

# exit virtualenv
deactivate

How to manage data

go to http://127.0.0.1:8000/admin if password is forgotten, try:

python manage.py changepassword <username>

Images:

Deposit-Page

Transaction-Report-Page

Withdraw-Page

About

This is an intentionally unsecure web bank app for the SWE 266P course at UCI.

Topics

Resources

Stars

Watchers

Forks

Packages

No packages published