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

6.4 KiB

Building Block View

Table of Contents

Whitebox Overall System

This diagram shows the main building blocks of the Calminer system and their relationships.

Level 1 Diagram

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

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.