Skip to content

freshpex/Bankist-Web-App

Repository files navigation

Bank Web Application Documentation

Table of Contents

  1. Introduction
  2. Features
  3. Getting Started
  4. Architecture
  5. Usage
  6. Models
  7. Scripts
  8. Contributing
  9. License

1. Introduction

This is a web application that provides users with a simplified and digital banking experience. It offers features such as instant transfers, loans, account management, and more.

2. Features

  • Digital Banking:
    • 100% digital banking for managing finances anytime, anywhere.
  • Investment:
    • Users can invest and watch their money grow with the help of financial advisors.
  • Free Debit Card:
    • Open an account and get a free debit card for cashless transactions.
  • Instant Operations:
    • Instant transfers, instant loans, and instant account closing.

3. Getting Started

Prerequisites

  • Python 3
  • Flask
  • SQL

Installation

  1. Clone the repository: git clone https://github.com/freshpex/Bankist-Web-App.git
  2. Navigate to the project directory: cd Bankist-Web-App
  3. Install dependencies: pip install -r requirements.txt

Configuration

  • Configure the database URI in create_db.py.
  • Set environment variables for sensitive information.

4. Architecture

Overview

It is built using Flask, a Python web framework. The application follows a client-server architecture with a SQLite database for data storage.

Database Schema

The application uses the following database models:

  • User
  • Account
  • Transaction
  • Loan
  • Receipt
  • Card

5. Usage

Running the Application

Execute the following command to install all dependencies

pip install requirements.txt

Execute the following command to run the application:

python app.py

Accessing the Web Interface

Open a web browser and navigate to http://localhost:5000 to access the Bankist web interface.

6. Models

User

  • Fields:
    • id
    • email
    • firstname
    • lastname
    • username
    • gender
    • privacy_enabled
    • notification_enabled
    • profile_image
    • account_type
    • accounts
    • password

Account

  • Fields:
    • id
    • account_number
    • user_id
    • account_type
    • balance

Transaction

  • Fields:
    • id
    • date
    • description
    • amount
    • timestamp
    • account_number
    • user_id

Loan

  • Fields:
    • id
    • date
    • account_id
    • amount
    • status

Receipt

  • Fields:
    • id
    • transaction_id
    • amount
    • description
    • destination_country
    • currency

Card

  • Fields:
    • id
    • card_number
    • cvv
    • expiration_date
    • cardholder_name
    • card_type
    • user_id

7. Scripts

create_db.py

The create_db.py script initializes and creates the necessary database tables.

Usage:

python create_db.py

8. Contributing

Contributions are welcome!