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.
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.