Skip to content

Kratos-036/Netbanking-CDAC-Project-Work

 
 

Repository files navigation

Aarna Bank : A Retail Net Banking Web Application

Technologies Used

  • Frontend: React HTML5 CSS Bootstrap JavaScript Material UI Redux

  • Backend: Spring Boot Spring Framework Spring Data JPA Spring Security Java

  • Database: MySQL

  • Other: Docker AWS EC2 GitHub Postman Swagger Figma draw.io

Table of Contents

Introduction

This project is a full-stack retail net banking web application developed to provide a user-friendly and secure platform for managing banking operations. It includes three distinct roles: Customer, Employee, and Manager, each with specific functionalities tailored to their needs. Implemented concepts I learnt, crafted frontend with React, React Router, Redux, HTML5, CSS, Bootstrap and JavaScript. Backend has RESTful architecture using Spring Boot, Java, J2EE, Spring Data JPA, and Spring Security for JWT authentication and role-based authorization. MySQL as database, managed using Hibernate ORM with 'code-first' approach. Maintained version control via GitHub & conducted API testing using tools like Postman and Swagger. Followed agile software development methodology for iterative development & quick adaptation. Deployed the application on AWS & has robust features, including email notifications, KYC verification, and OTP-verified transactions. Features were discarded from initial Software Requirements Specification (SRS) due to project time constraints. Overall, project is a blend of technical expertise & strategic planning. Video Explanation

Features

  • User authentication with JWT token
  • Role-based Authorization using Spring Security
  • KYC Verification of Customer mandatory for carrying any type of transactions in account and Temporary Deactivation and Reactivation of account
  • Time-based OTP-verified transactions transactions
  • Email Notifications for account opening, any type of transaction (deposit / withdrawal / send), and KYC status update

API Documentation

Generated using Swagger : API Documentation

Security Measures

  • Implemented JWT authentication for secure user login.
  • Utilized Spring Security for role-based authorization.
  • Followed best practices for secure data handling like storage of password by one way encrytion using org.springframework.security.crypto.bcrypt.BCryptPasswordEncoder
  • Time based (valid for 2 minutes) otp generation and verification at Server Side implemented by server side caching and multithreading
  • Employee Management by Manager
  • Auto-generated account numbers during account creation and password during forgot password service using custom strategy at server side
  • JWT token expires after 20 minutes of Login and User need to relogin for a new session

Database Management

  • MySQL database managed using Hibernate ORM with a 'code-first' approach.
  • Ensured efficient data storage and retrieval for optimized performance.
  • Used Triggers at Database level as per requirements due to normalized database to maintain data consistency and reduce data redundancy.
  • EER diagram
  • SQL trigger and offers setup

Project Management Methodology

  • Followed agile software development methodology for iterative development and quick adaptation.
  • Managed project constraints effectively to deliver value incrementally that can be seen as in commits of this repository.
  • Initially started with use case diagram and ER diagram using, SRS and database schema design (Initial design available in daywise progress directory). However, after multiple iterations, reduced the scope and put it into future scope. Use case diagram
  • Before starting with backend and frontend development, had discussion with team over UX and UI design after studying few bank websites. So for better understanding and visualisation for refernce, we had designed templates using Figma. After multiple iterations, final concept was reduced to UI/UX design

Deployment

Challenges Faced

  • Time constraints leading to feature adjustments (reduced).
  • Addressed technical challenges related to parallel development, integration deployment and performace optimization.

Contributing

Contributions are welcome! Feel free to fork this repository and submit pull requests to contribute to the project.

License

This project is licensed under the MIT License.

About

I crafted this full stack project along with my team members during final stage of my course : PG diploma in Advanced Computing at Sunbeam Institute, Pune that comes under Centre for Development of Advanced Computing, India

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages

  • JavaScript 50.3%
  • Java 42.3%
  • CSS 6.8%
  • Other 0.6%