Open atahankilc opened 1 week ago
flowchart TD
subgraph subGraph0["User Side"]
User["User Interface"]
UserConductorFile["Conductor File (Editable)"]
end
subgraph subGraph1["Creator Agent"]
CreatorAgent["Exercise Creator Agent"]
ExerciseFiles["Exercise Files (Description + Instructions)"]
SolutionFile["Solution File (Blocked)"]
end
subgraph subGraph2["Conductor Agent"]
Conductor["Conductor Agent"]
SupportModule["Support Module (Feedback + Hints)"]
end
subgraph subGraph3["Sharing Module"]
SharingSystem["Exercise Sharing Module"]
OtherUser["Other User Interface"]
end
User -- Specify Topic --> CreatorAgent
CreatorAgent -- Provide File List + Summary --> User
User -- Approve/Decline Files --> CreatorAgent
CreatorAgent -- Generate Exercise Files --> ExerciseFiles
ExerciseFiles -- Create Conductor File --> UserConductorFile
CreatorAgent -- Generate Solution File --> SolutionFile
User -- Conduct Exercises --> UserConductorFile
UserConductorFile -- Send for Feedback or Hints --> Conductor
Conductor -- Access Support Module --> SupportModule
SupportModule -- Validate Solution --> SolutionFile
SupportModule -- Provide Feedback/Hints --> User
User -- Share Exercises --> SharingSystem
SharingSystem -- Show File List --> OtherUser
OtherUser -- Approve/Decline --> SharingSystem
SharingSystem -- Notify --> CreatorAgent
@JonasHelming
i think this is a very good basis for discussion on Friday. One thing: This diagram is a bit of a mixture between a system composition and a flow chart. I believe it would be good to separate these two thingsmid term, i.e. one diagram showing the components and then the user flow in a separate diagram.
Also: I would call the solutions "files" in the architecture, they are rather objects. Storing them to files is a requirement. I think you should specify an object "exercise" and start to clearly define what it contains.
One unclaified question that is raised by the diagram is how the different modules and agents communicate to each other about exercises. Would it maybe make sense to introduce a "Exercise service" that hold all created exercises (including all information like files to be created, desription, instructions and solution) and information like which exercise is currently conducted? If you like this, please specify it.
this service could then also be the basis to implement persistence (in files or something else)
flowchart TD
subgraph UserModule["User Module"]
UI["User Interface"]
end
subgraph CreatorModule["Creator Module"]
Creator["Exercise Creator Agent"]
ExerciseObj["Exercise Objects (Exercise, Instructions, Solution)"]
end
subgraph ConductorModule["Conductor Module"]
Conductor["Conductor Agent"]
Support["Support Module (Feedback + Hints)"]
end
subgraph SharingModule["Sharing Module"]
Sharing["Sharing Service"]
OtherUser["Other User Interface"]
end
subgraph PersistenceLayer["Persistence Layer"]
ExerciseService["Exercise Service (Centralized Storage)"]
end
subgraph InitService["Initialization Module"]
Initialization["Initialization Service"]
end
UI --> Creator & Conductor & Sharing
Creator --> ExerciseObj
ExerciseObj --> ExerciseService
ExerciseService --> Initialization
Initialization --> Conductor
Conductor --> Support
Support --> ExerciseService
Sharing --> ExerciseService & OtherUser
@JonasHelming
Define Detailed Requirements
Develop the System Architecture
Document the System Design in README