ADORSYS-GIS / webank-UserApp

Apache License 2.0
4 stars 0 forks source link

(TK-003): Create the Webank-UserApp Architecture #6

Open Arielpetit opened 1 day ago

Arielpetit commented 1 day ago

Description:

Implement a mechanism to handle user authentication flows, including registration and login, for the banking application. The flow should ensure secure credential validation and session management for users.

Requirements:

Acceptance Criteria:

Estimate: 5

Example

https://github.com/adorsys/eudiw-app/issues/20

francis-pouatcha commented 5 hours ago

Description from https://github.com/adorsys/eudiw-app/issues/20

The objective of this task is to document the decision taken on the architecture of the project. we need to understand why:

there is a fe-be secure layer in the app why we're building an event bus for communication the reason for abstraction of the fe components from fe-be components, how to define interfaces for communication between fe components and fe-be components

francis-pouatcha commented 5 hours ago
  1. FE-BE Secure Layer: The decision to include a secure layer between the front-end (FE) and back-end (BE) is primarily driven by the need to protect data integrity and privacy. In a mobile app, sensitive information such as user credentials, personal data, and transaction details are often exchanged between the client and server. The secure layer uses encryption to ensure that this data cannot be intercepted or tampered with during transmission. This is crucial for maintaining user trust and for compliance with data protection regulations.

  2. Event Bus for Communication: The use of an event bus is a common pattern in modern app development, particularly in apps that follow a microservices architecture. The event bus allows different components of the app to publish and subscribe to events. This means that a component can react to events that it is interested in, without needing to know which other component produced the event. This decoupling of components leads to a codebase that is easier to maintain and evolve over time.

  3. Abstraction of FE Components from FE-BE Components: The decision to abstract the FE components from the FE-BE components is a reflection of the Single Responsibility Principle (SRP). By ensuring that the FE components are only concerned with presentation logic, and the BE components with business logic, we increase the maintainability and testability of the code. This separation of concerns also makes it easier to work on the FE and BE independently, which can be a big advantage in a team development environment.

  4. Defining Interfaces for Communication between FE and BE: Defining clear interfaces for communication between the FE and BE is crucial for the robustness of the app. These interfaces, often defined in an API (Application Programming Interface), ensure that both the FE and BE agree on the format of the data to be exchanged. This reduces the likelihood of errors and makes the system easier to debug.

francis-pouatcha commented 5 hours ago

Architecture Decision Document

Objective

The objective of this document is to document the architectural decisions made for the project, with a focus on security and communication between components.

1. Frontend-Backend Secure Layer

2. Event Bus for Communication

3. Abstraction of FE Components from FE-BE Components

4. Defining Interfaces for Communication between FE Components and FE-BE Components

5. Back-end Security

6. Database Security

Conclusion

Documenting these architectural decisions provides insight into the rationale behind the design choices, guiding future development efforts and ensuring alignment with project goals and requirements. This includes a strong emphasis on security at all levels of the application, from the front-end to the back-end and the database, as well as efficient communication between components.