SDS - Template
SDS - Template
1.0 Introduction
The application is designed using MySQL for database management, Spring Boot for
backend services, and react for frontend user interfaces. It leverages RESTful API
services to facilitate secure and efficient communication between the client and server. I
will be using MVC architecture, and the component level are going to my controller class
which will be getting all the https requests and then sending them to DB class to update
the requests and send back to controller class and then send to render that updating either
success or failure and the controller class update the User Interface.
The software is placed in a business line context. The application will be used in a
consumer banking environment where users interact with their banking data in
real-time. It requires high performance for transaction processing and real-time
feedback on applications for loans and credit cards.
Security: The system must securely handle sensitive data through HTTP,
encryption, and authentication.
2.0 Data design
To manage applications and transactions in the banking system, utilize queues; use
linked lists for transaction history; use arrays/lists for user details, account, and
transaction records; and use hash maps for quick lookups. Apply appropriate
foreign key relationships and indexing to MySQL tables for users, accounts,
transactions, applications, and products.
The banking system uses queues for managing applications and transactions,
linked lists for storing transaction history, arrays and lists for storing user
information, account information, and transaction records, and hash maps for fast
lookups.
MySQL includes tables with appropriate foreign key associations and indexing for
users, accounts, transactions, applications, and products.
The architecture views for banking system using the MVC (Model-View-
Controller) pattern, with queues, linked lists, arrays/lists, and hash maps as the key
data structures. These views focus on different perspectives of architecture:
logical, process, physical, and development.
Logical View Description: The logical view represents the system’s key
abstractions, such as objects or classes. In our banking system, the entities would
include User, Account, Transaction, Application, Product, etc. The logical view
aligns the requirements with these abstractions, showing relationships such as
inheritance or association between them.
Process View Description: The process view focuses on how the system operates
at runtime, specifically how processes interact with each other. In our banking
system, this includes processes like: Handling user requests via queue. Processing
transactions in real-time or batch mode. Managing loan and credit card
applications asynchronously.
Development View Description: This view breaks down the system into smaller
components for development. In this part each feature (user management, account
management, transactions) is handled by different development teams or
components in the codebase.
The User Interface (UI), which facilitates user interaction (React frontend), the
Database (MySQL) for storing user, account, transaction, and application data, the
Authentication Module for managing user login and security, and the
Transaction/Queue Engine for processing applications and transactions effectively
are the main software components of the banking system. These components are
part of the architecture and are arranged according to the MVC paradigm. The
View renders user interactions, the Model holds data (lists, arrays, and linked
lists), and the Controllers handle requests between the user interface and the
backend. In addition to using foreign keys and indexing to optimize database
queries, the system makes use of hash maps for fast lookups.
User Interface (React Frontend): Communicates with the backend via RESTful
APIs over HTTP, handling user inputs and displaying responses (e.g, account
details, transactions).
Backend (Spring Boot): Exposes APIs for the frontend and interacts with
external services (e.g, payment gateways, credit checks) via HTTP and third-party
APIs.
The banking system's user interface (UI) is made for easy user interaction,
guaranteeing smooth transitions between various services like account
management, transactions, and application submissions. Constructed with React,
the user interface prioritizes clarity, reactivity, and accessibility to give users a
straightforward and safe experience.
Transaction History: Shows a detailed list of past transactions (from a linked list)
with filtering options.
Application Form: Users can submit applications for loans or credit cards using a
simple, step-by-step form.
Scalability: For the system to handle an increasing volume of users and transactions,
scalable infrastructure is required.
6.0 Appendices