Files
calminer-docs/architecture/05_building_block_view.md
zwitschi ad56c3c610 Initialize project documentation
Add architecture documentation and functional requirements for Calminer project

- Created Building Block View (05_building_block_view.md) detailing system architecture and component interactions.
- Developed Runtime View (06_runtime_view.md) outlining key user scenarios and interactions within the system.
- Established Deployment View (07_deployment_view.md) describing the infrastructure and mapping of building blocks to deployment components.
- Added README.md for architecture documentation structure.
- Introduced functional requirements (FR-001 to FR-010) covering scenario management, data import/export, reporting, user management, and collaboration features.
- Included templates for documenting requirements to ensure consistency across the project.
2025-11-08 19:49:07 +01:00

222 lines
6.4 KiB
Markdown

# Building Block View
## Table of Contents
- [Building Block View](#building-block-view)
- [Table of Contents](#table-of-contents)
- [Whitebox Overall System](#whitebox-overall-system)
- [Level 1 Diagram](#level-1-diagram)
- [API Layer](#api-layer)
- [Service Layer](#service-layer)
- [Data Access Layer](#data-access-layer)
- [Frontend Layer](#frontend-layer)
- [Database System](#database-system)
- [Level 2](#level-2)
- [Level 2 Diagram](#level-2-diagram)
- [Frontend Components](#frontend-components)
- [User Interface](#user-interface)
- [Visualization Module](#visualization-module)
- [Backend Components](#backend-components)
- [Authentication Service](#authentication-service)
- [Reporting Module](#reporting-module)
- [Simulation Engine](#simulation-engine)
- [Level 3](#level-3)
- [Simulation Engine Components](#simulation-engine-components)
- [Mining Algorithm](#mining-algorithm)
- [Data Preprocessing](#data-preprocessing)
- [Result Postprocessing](#result-postprocessing)
## Whitebox Overall System
This diagram shows the main building blocks of the Calminer system and their relationships.
### Level 1 Diagram
```mermaid
graph TD
APILayer[API Layer]
ServiceLayer[Service Layer]
DataAccessLayer[Data Access Layer]
FrontendLayer[Frontend Layer]
DatabaseSystem[Database System]
APILayer --> ServiceLayer
ServiceLayer --> DataAccessLayer
FrontendLayer --> APILayer
DataAccessLayer --> DatabaseSystem
```
### API Layer
The API Layer is responsible for handling incoming requests and routing them to the appropriate services. It provides a RESTful interface for external clients to interact with the Calminer system.
_Responsibility:_ Handle HTTP requests and responses.
_Interface:_ RESTful API endpoints.
_Dependencies:_ Depends on the Service Layer for business logic processing.
### Service Layer
The Service Layer contains the core business logic of the Calminer application. It processes data, applies mining algorithms, and manages workflows between different components.
_Responsibility:_ Implement business rules and data processing.
_Interface:_ Service interfaces for communication with the API Layer.
_Dependencies:_ Depends on the Data Access Layer for data persistence.
### Data Access Layer
The Data Access Layer is responsible for interacting with the underlying data storage systems. It provides an abstraction over the data sources and handles all CRUD operations.
_Responsibility:_ Manage data storage and retrieval.
_Interface:_ Data access interfaces for the Service Layer.
_Dependencies:_ Depends on the Database System for persistent storage.
### Frontend Layer
The Frontend Layer is responsible for the user interface of the Calminer application. It provides a web-based interface for users to create projects, configure parameters, and view reports.
_Responsibility:_ Render user interface and handle user interactions.
_Interface:_ Web pages and client-side scripts.
_Dependencies:_ Depends on the API Layer for backend communication.
### Database System
The Database System is responsible for storing and managing all persistent data used by the Calminer application, including user data, project configurations, and analysis results.
_Responsibility:_ Manage persistent data storage and retrieval.
_Interface:_ Database access interfaces for the Data Access Layer.
_Dependencies:_ None.
## Level 2
### Level 2 Diagram
```mermaid
graph TB
subgraph F[Frontend Layer]
direction TB
UserInterface[User Interface]
VisualizationModule[Visualization Module]
end
subgraph A[API Layer]
APILayer[API Layer]
end
subgraph S[Service Layer]
direction TB
AuthenticationService[Authentication Service]
ReportingModule[Reporting Module]
SimulationEngine[Simulation Engine]
end
subgraph D[Data Access Layer]
DataAccessLayer[Data Access Layer]
end
subgraph DB[Database System]
DatabaseSystem[Database System]
end
DataAccessLayer[Data Access Layer]
DatabaseSystem[Database System]
F --> A
A --> S
S --> D
D --> DB
```
### Frontend Components
#### User Interface
The User Interface component is responsible for rendering the web pages and handling user interactions.
_Responsibility:_ Display data and capture user input.
_Interface:_ HTML, CSS, JavaScript.
_Dependencies:_ Depends on the API Layer for data retrieval.
#### Visualization Module
The Visualization Module provides data visualization capabilities, allowing users to view analysis results in graphical formats.
_Responsibility:_ Generate charts and graphs.
_Interface:_ Chart.js library.
_Dependencies:_ Depends on the API Layer for data.
### Backend Components
#### Authentication Service
The Authentication Service manages user authentication and authorization.
_Responsibility:_ Handle user login and access control.
_Interface:_ Authentication APIs.
_Dependencies:_ Depends on the Database System for user data.
#### Reporting Module
The Reporting Module generates comprehensive reports based on analysis results.
_Responsibility:_ Create and format reports.
_Interface:_ Report generation APIs.
_Dependencies:_ Depends on the Service Layer for data processing.
#### Simulation Engine
The Simulation Engine performs the core mining simulations and calculations.
_Responsibility:_ Execute mining algorithms.
_Interface:_ Simulation APIs.
_Dependencies:_ Depends on the Data Access Layer for data retrieval and storage.
## Level 3
### Simulation Engine Components
#### Mining Algorithm
The Mining Algorithm component is responsible for implementing the core mining logic.
_Responsibility:_ Execute mining algorithms on the input data.
_Interface:_ Algorithm APIs.
_Dependencies:_ Depends on the Data Access Layer for data retrieval.
#### Data Preprocessing
The Data Preprocessing component handles the preparation of input data for mining.
_Responsibility:_ Clean and transform input data.
_Interface:_ Data preprocessing APIs.
_Dependencies:_ Depends on the Data Access Layer for data retrieval.
#### Result Postprocessing
The Result Postprocessing component is responsible for formatting and refining the mining results.
_Responsibility:_ Prepare final results for presentation.
_Interface:_ Result formatting APIs.
_Dependencies:_ Depends on the Data Access Layer for data storage.