fix(documentation): Fix formatting, move texst to correct location

This commit is contained in:
2025-10-09 13:25:26 +02:00
parent 6ccbc95b15
commit 1ceb691fae
7 changed files with 19 additions and 120 deletions

View File

@@ -2,7 +2,8 @@
## Project Overview
The TI Minor Grade Generator is a distributed ROS2-based system designed to manage student exam results and calculate final course grades. The system follows microservices architecture principles with clear separation of concerns and robust data management.
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.
## System Architecture
@@ -14,9 +15,8 @@ The system consists of multiple ROS2 nodes that communicate through standardized
- **Microservices Architecture**: Each component has a single responsibility
- **Asynchronous Communication**: Uses ROS2 topics and services for loose coupling
- **Data Persistence**: Centralized database management for reliable storage
- **Configurable Parameters**: TOML-based configuration for environment flexibility
- **Comprehensive Testing**: Unit and integration tests ensure reliability
- **Data Persistence**: Centralized database management for datastorage
- **Comprehensive Testing**: Unit tests ensure code reliability
## System Components
@@ -145,3 +145,7 @@ max_grade = 100
level = "INFO"
output_file = "grade_system.log"
```
## Testing
The testing documentation can be found in the [doc/tests](/doc/tests/) folder for each node

View File

@@ -88,20 +88,23 @@ string course_name
#### Result
```
# Empty result section - completion indicates success
float32 result
```
#### Feedback
```
float32 result
string status
```
**Goal Fields**:
- `student_name`: Student for which a retake is requested
- `course_name`: Course for which a retake is requested
**Feedback Fields**:
- `result`: Progress indicator or intermediate result (float value)
**Result Field**
- `result`: Progress indicator or intermediate result (float value) (*Not Implemented*)
**Feedback Field**:
- `status`: Status indicator (*Not Implemented*)
**Usage**: Used by RetakeScheduler node to handle long-running retake management operations with progress feedback.
@@ -135,7 +138,7 @@ float32 result
**Publishers**:
- **Topic**: `student_course_management`
- **Message Type**: `g2_2025_interfaces::msg::Student`
- **Purpose**: Communicate end of enrollment or re-enrolment
- **Purpose**: Communicate end of enrollment when grade has been calculated
### GradeCalculator Node
@@ -164,7 +167,3 @@ float32 result
- **Topic**: `retake_results`
- **Message Type**: `g2_2025_interfaces::msg::Exam`
- **Purpose**: Processes completed retake exam results
## Related Documentation
- [System Architecture](../Orig.md): Overall system design and communication patterns

View File

@@ -40,4 +40,3 @@ ExamResultGenerator()
**`void add_student_course_combination(const StudentCourse& sc)`**
- Enrolls student into course via database
- Adds combination to processing queue

View File

@@ -32,11 +32,8 @@ FinalGradeDeterminator()
- Sends async request with collected exam grades for the student-course combination
- Uses callback to handle service response
**`void grade_calculator_response(rclcpp::Client<g2_2025_interfaces::srv::Exams>::SharedFuture future, StudentCourse studentCourseCombo)`**
- Verifies database connection
- Publishes final student message to ROS2 topic
- Logs final grade information
- Stores final course result in database

View File

@@ -1,5 +1,3 @@
## Unit Tests
Unit tests for `DatabaseManager` are implemented in `src/g2_2025_grade_calculator_pkg/test/DatabaseManager.test.cpp` using Google Test and ROS2 test utilities. The tests are designed to work reliably whether a database connection is available or not, focusing on error handling and method behavior validation.

View File

@@ -1,4 +1,3 @@
## Unit Tests
Unit tests for `ExamResultGenerator` are implemented in `src/g2_2025_grade_calculator_pkg/test/ExamResultGenerator.test.cpp` using Google Test and ROS2 test utilities. The tests use a test subscriber node to capture published messages and validate node behavior.