This is an Online Banking System created using Django Web Framework. And we intentionally inject 4 exploitable vulnerabilities into the code
- Frontend: HTML
- Backend: Django
- Database: SQLite & Redis
- 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
Be sure you have the following installed on your development machine:
- Python >= 3.7
- Redis Server
- Git
- pip
- Virtualenv (virtualenvwrapper is recommended)
- celery==4.4.7
- Django==3.2
- django-celery-beat==2.0.0
- python-dateutil==2.8.1
- redis==3.5.3
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
# active virtualenv
source /path/to/venv/bin/activate
# run server
python manage.py runserver
# exit server
ctrl + C
# close Redis
redis-cli shutdown
# exit virtualenv
deactivate
go to http://127.0.0.1:8000/admin
if password is forgotten, try:
python manage.py changepassword <username>