Skip to content

Bank Web Application | Fully Responsive | RESTful API | CRUD Operation

Notifications You must be signed in to change notification settings

yenloned/PiggyBank

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

70 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

PIGGYBANK

Table of Contents

Introduction

PiggyBank is a fully responsive web application, which operates and provides various bank functions by REST API and CRUD Operations. It does not involve any real currencies, trading, contracts, or agreements since this project is aimed to demo the web development technologies and practice.

Live Demo

https://piggybank-web.netlify.app/

Technologies

FrontEnd

BackEnd

Other Highlighted Libraries

Getting Started

  • FrontEnd (ReactJS)
// change current directory to frontend
cd frontend

// install required node_module
npm install

// start ReactJS server
npm start
  • BackEnd (NodeJS)
// change current directory to backend
cd backend

// install required node_module
npm install

// start NodeJS server
node index.js
  • Database (MySQL)
// Create database and running on port 3006

Open http://localhost:3000 and you will see the page appear.

Architectures

Overview

OVERVIEW ARCHITECTURE

Design

  • Fully Responsive
    • Make use of CSS breakpoints, to create scalable and user-friendly display sizes in all contents for any device's screen.
  • RESTful API
    • Make use of Axios, creating different communication channels for data requests and responses with the defined endpoints.
  • CRUD Operation
    • Make use of MySQL, which performs the operation of Create, Read, Update, and Delete as data management.

Functions

  • Account Register / Login
    • Make use of database and cookie session, which performs the data creation (registration) and cookie value authentication (login).
  • Transfer / Withdrawal / Deposit
    • Make use of RESTful API and database, to update the user's balance data once the transfer request is received from users.
  • Loan
    • Make use of RESTful API and database, to update the user's balance and debt data once the loan application request is received from users.
  • Insurance
    • Make use of RESTful API and database, to update the user's balance and subscription data once the insurance application request is received from users.

Features

  • JWT Token
    • Enhance security by the authorization with JWT Token, preventing attacks like Cross-Site Scripting XSS and Session Hijacking.
  • Password Hashing
    • Make use of Bcrypt, to ensure password confidentiality in the database by a strong one-way hashing algorithm.
  • Forgot Password (Email)
    • Make use of SMTP Server and NodeMailer, sending a verification code to users who are required to reset their password.
  • Two-Factor Authentication (Email)
    • Once that user's account has enabled Two-Factor Authentication, a verification code will be sent through SMTP Server by NodeMailer before every login.
  • Payee Registration
    • Make use of RESTful API and database, create and read the payee list from the database whenever the user performs related operations (register payee/transfer money).
  • Debt
    • Make use of database, creating and updating the user's debt records for related operations (loan/pay debt).
  • Transaction History
    • Make use of database, creating a detailed record (amount, time, event type, etc.) whenever the user performs an operation ( Transfer / Withdrawal / Deposit).
  • Credit Scoring
    • A grade result calculated by an algorithm with the user's balance and debt, simulating the real-world credit calculation which is used in loan applications.
  • Insurance / Loan Calculator
    • Make use of React component state, calculating and displaying the result by user's options and input in real-time.
  • Password Changing
    • Make use of RESTful API and database, updating the user's password once the request is received.
  • Account Termination
    • Make use of RESTful API and database, deleting all the data from that user once the request is received.

Preview

Desktop View

DESKTOP PREVIEW
DESKTOP PREVIEW
DESKTOP PREVIEW
DESKTOP PREVIEW

Phone View

Epilogue

Wow, you really read this to the end.
This was my very first full-stack web development project and I have learned a lot from it. Feel free to contact me for any discussion or suggestion. In the future, I will keep creating and developing new projects in order to further deepen my skills and knowledge.

About

Bank Web Application | Fully Responsive | RESTful API | CRUD Operation

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published