generated from wessel/boilerplate
fix(Architecure.md): rewrite to new, LIFECYCLE NOT IMPLEMENTED
This commit is contained in:
@@ -1,15 +1,14 @@
|
||||
# TI Minor Grade Generator Design Document
|
||||
# ROS2 IMU Reader — Design Document
|
||||
|
||||
## Project Overview
|
||||
|
||||
Giving marks to students cost a lot of time and pain. For this a automatic solution is needed.
|
||||
Therefore the overall Software architect (Tilmann K.) has designed a solution for the ROS2 architecture.
|
||||
This projects reads data from a ESP32 communicating with serial or MQTT and writes this into a database for further processing
|
||||
|
||||
## System Architecture
|
||||
|
||||
### High-Level Architecture
|
||||
|
||||
The system consists of multiple ROS2 nodes that communicate through standardized topics and services to process exam data, calculate grades, and persist results. The architecture ensures scalability, maintainability, and fault tolerance.
|
||||
The system consists of multiple ROS2 nodes that communicate through standardized topics and services to process imu data and store it in a database
|
||||
|
||||
### Key Design Principles
|
||||
|
||||
@@ -22,16 +21,16 @@ The system consists of multiple ROS2 nodes that communicate through standardized
|
||||
|
||||
### Core Nodes
|
||||
|
||||
#### 1. FinalGradeDeterminator Node
|
||||
**Namespace**: `assignments::one::final_grade_determinator`
|
||||
#### 1. IMU Databse writer Node
|
||||
**Namespace**: `assignments::two::imu_database_writer`
|
||||
|
||||
**Brief Description**: Collects exam results, triggers grade calculation when thresholds are met, and stores final grades.
|
||||
**Brief Description**: Recieves and stores IMU data.
|
||||
|
||||
**Key Features**: Configurable collection thresholds, automatic grade calculation triggering, database persistence
|
||||
**Key Features**: Database persistence
|
||||
|
||||
*For detailed documentation, see: [FinalGradeDeterminator.md](nodes/FinalGradeDeterminator.md)*
|
||||
*For detailed documentation, see: [IMUDatabaseWriter.md](nodes/IMUDatabaseWriter.md)*
|
||||
|
||||
#### 2. GradeCalculator Node
|
||||
#### 2. LifeCycle Node - NEEDS TO BE EDITED STILL
|
||||
**Namespace**: `assignments::one::grade_calculator`
|
||||
|
||||
**Brief Description**: Provides grade calculation service with business logic including bonus points and grade validation.
|
||||
@@ -40,33 +39,6 @@ The system consists of multiple ROS2 nodes that communicate through standardized
|
||||
|
||||
*For detailed documentation, see: [GradeCalculator.md](nodes/GradeCalculator.md)*
|
||||
|
||||
#### 3. ExamResultGenerator Node
|
||||
**Namespace**: `assignments::one::exam_result_generator`
|
||||
|
||||
**Brief Description**: Simulates exam result generation by maintaining a queue of student-course combinations and publishing random grades.
|
||||
|
||||
**Key Features**: Database-driven queue management, random grade generation, student enrollment handling
|
||||
|
||||
*For detailed documentation, see: [ExamResultGenerator.md](nodes/ExamResultGenerator.md)*
|
||||
|
||||
#### 4. RetakeScheduler Node
|
||||
**Namespace**: `assignments::one::retake_scheduler`
|
||||
|
||||
**Brief Description**: Manages retake exam scheduling and coordination for students who need to retake exams.
|
||||
|
||||
**Key Features**: Retake request processing, schedule management, action server implementation for retake workflows
|
||||
|
||||
*For detailed documentation, see: [RetakeScheduler.md](nodes/RetakeScheduler.md)*
|
||||
|
||||
#### 5. RetakeGradeDeterminator Node
|
||||
**Namespace**: `assignments::one::retake_grade_determinator`
|
||||
|
||||
**Brief Description**: Handles grade calculation and processing specifically for retake exams.
|
||||
|
||||
**Key Features**: Retake-specific grade processing, integration with main grade system, retake result validation
|
||||
|
||||
*For detailed documentation, see: [RetakeGradeDeterminator.md](nodes/RetakeGradeDeterminator.md)*
|
||||
|
||||
### Data Management
|
||||
|
||||
#### DatabaseManager
|
||||
@@ -85,42 +57,20 @@ The system consists of multiple ROS2 nodes that communicate through standardized
|
||||
|
||||
### Communication Interfaces
|
||||
|
||||
#### ROS2 Message and Service Interfaces
|
||||
**Brief Description**: Custom message types and service definitions for inter-node communication.
|
||||
|
||||
**Key Components**: Exam and Student message types, Grade calculation service, Retake action interface, standardized timestamps
|
||||
|
||||
*For detailed documentation, see: [interfaces.md](interfaces/interfaces.md)*
|
||||
#### ROS2 Message Interface
|
||||
**Brief Description**: This project uses the ROS2 standard IMU sensor message
|
||||
|
||||
## System Workflow
|
||||
|
||||
### 1. Exam Result Processing
|
||||
|
||||
1. **Input**: Exam results are published to the `exam_results` topic
|
||||
2. **Collection**: FinalGradeDeterminator receives and stores exam results by student-course combination
|
||||
3. **Monitoring**: System tracks the number of results per student-course pair
|
||||
4. **Threshold Check**: When `grade_collection_amount` results are collected, proceed to calculation
|
||||
1. **Input**: IMU data is sent from the ESP32 to the lifecycle node
|
||||
2. **Collection**: The lifcycle node recieves the data via a serial or MQTT connection
|
||||
4. **Data passthrough**: When data is recieved it is sent to the database writer
|
||||
|
||||
### 2. Grade Calculation Process
|
||||
### 2. Data Management
|
||||
|
||||
1. **Service Request**: FinalGradeDeterminator calls GradeCalculator service
|
||||
2. **Calculation**: GradeCalculator computes final grade using business logic
|
||||
3. **Validation**: Result is validated and clamped to acceptable range
|
||||
4. **Response**: Calculated grade is returned to FinalGradeDeterminator
|
||||
|
||||
### 3. Result Management
|
||||
|
||||
1. **Database Storage**: Final grade is persisted in the database
|
||||
2. **Publication**: Student information is published to management topic
|
||||
3. **Logging**: Process completion is logged for audit purposes
|
||||
|
||||
### 4. Retake Processing Workflow
|
||||
|
||||
1. **Retake Request**: RetakeScheduler receives retake requests via action interface
|
||||
2. **Schedule Management**: System schedules retake exams and manages timelines
|
||||
3. **Retake Execution**: Student completes retake exam, results are processed
|
||||
4. **Grade Processing**: RetakeGradeDeterminator calculates retake grades with specialized logic
|
||||
5. **Integration**: Retake results are integrated with main grade system and database
|
||||
1. **Database Storage**: IMU data is persisted/stored in the database
|
||||
|
||||
## Configuration Management
|
||||
|
||||
|
||||
Reference in New Issue
Block a user