Cohort Management
This documentation provides a comprehensive overview of the Cohort Management module, including data models, user interfaces, and operational workflows.
UI Component Hierarchy
graph TD
%% Main Components
Root[BorderPane: Root]
Content[SplitPane: Content]
List[VBox: CohortList]
Details[ScrollPane: Details]
%% List Components
SearchBar[TextField: Search]
CohortTable[TableView: Cohorts]
AddButton[Button: AddCohort]
%% Details Components
CohortForm[Form: CohortForm]
NameField[TextField: Name]
DatePicker[DatePicker: Dates]
TeamList[ListView: Teams]
%% Action Components
Actions[HBox: Actions]
SaveBtn[Button: Save]
DeleteBtn[Button: Delete]
%% Dialog Components
DialogPane[DialogPane: Confirmation]
DialogBtns[ButtonBar: DialogButtons]
%% Hierarchy
Root --> Content
Content --> List
Content --> Details
List --> SearchBar
List --> CohortTable
List --> AddButton
Details --> CohortForm
CohortForm --> NameField
CohortForm --> DatePicker
CohortForm --> TeamList
Details --> Actions
Actions --> SaveBtn
Actions --> DeleteBtn
Root --> DialogPane
DialogPane --> DialogBtns
%% Styling
classDef container fill:#e1f5fe,stroke:#01579b
classDef component fill:#fff,stroke:#0288d1
classDef control fill:#e8f5e9,stroke:#2e7d32
class Root,Content container
class List,Details,CohortForm,DialogPane component
class SearchBar,CohortTable,NameField,DatePicker,TeamList,SaveBtn,DeleteBtn,DialogBtns control
Sequence Diagram
The following sequence diagram illustrates the interactions between the user interface, view models, services, and the database during cohort management operations.
sequenceDiagram
actor User
participant UI as User Interface
participant ViewModel as CohortViewModel
participant Service as CohortService
participant Database as Database
participant Notification as NotificationSystem
%% Main Navigation
User->>UI: Navigate to Cohorts
UI->>ViewModel: Load Cohort List
ViewModel->>Service: Fetch Cohorts
Service->>Database: Retrieve Cohorts
Database-->>Service: Provide Cohort Data
Service-->>ViewModel: Return Cohorts
ViewModel-->>UI: Display Cohort List
%% Create Cohort
User->>UI: Add New Cohort
UI->>ViewModel: Initialize New Cohort Form
User->>UI: Enter Cohort Details
UI->>ViewModel: Submit New Cohort
ViewModel->>Service: Save Cohort
Service->>Database: Persist Cohort
Database-->>Service: Confirmation
Service-->>ViewModel: Cohort Saved
ViewModel-->>UI: Update Cohort List
UI->>Notification: Show Success Message
%% Edit Cohort
User->>UI: Select Cohort to Edit
UI->>ViewModel: Load Cohort Details
ViewModel->>Service: Fetch Cohort by ID
Service->>Database: Retrieve Cohort Data
Database-->>Service: Provide Cohort Details
Service-->>ViewModel: Return Cohort Data
ViewModel-->>UI: Populate Edit Form
User->>UI: Modify Cohort Details
UI->>ViewModel: Submit Changes
ViewModel->>Service: Update Cohort
Service->>Database: Update Cohort Record
Database-->>Service: Confirmation
Service-->>ViewModel: Cohort Updated
ViewModel-->>UI: Refresh Cohort List
UI->>Notification: Show Update Success
%% Delete Cohort
User->>UI: Delete Cohort
UI->>ViewModel: Confirm Deletion
ViewModel->>Service: Remove Cohort
Service->>Database: Delete Cohort Record
Database-->>Service: Confirmation
Service-->>ViewModel: Cohort Deleted
ViewModel-->>UI: Update Cohort List
UI->>Notification: Show Deletion Success
%% Navigation Guard
User->>UI: Attempt to Navigate Away
UI->>ViewModel: Check for Unsaved Changes
alt Unsaved Changes Present
ViewModel->>UI: Prompt to Save or Discard
User->>UI: Choose to Discard
UI->>ViewModel: Proceed with Navigation
else No Unsaved Changes
UI->>ViewModel: Proceed with Navigation
end
Data Dictionary
The Data Dictionary below outlines the key data entities used within the Cohort Management module, detailing their attributes, types, and descriptions.
User
Attribute | Type | Description |
---|---|---|
UserID | UUID | Unique identifier for the user. |
Username | String | Name of the user. |
Role | Enum | Role of the user (e.g., Admin, Manager). |
Cohort
Attribute | Type | Description |
---|---|---|
id | UUID | Unique identifier for the cohort. |
name | String | Name of the cohort. |
description | String | Description of the cohort. |
startDate | Date | Start date of the cohort. |
endDate | Date | End date of the cohort. |
teams | List<Team> | List of teams associated with the cohort. |
Team
Attribute | Type | Description |
---|---|---|
teamId | UUID | Unique identifier for the team. |
teamName | String | Name of the team. |
members | List<User> | List of team members. |
Dialog
Attribute | Type | Description |
---|---|---|
dialogType | Enum | Type of dialog (e.g., Confirmation, Warning). |
message | String | The content displayed in the dialog. |
userResponse | Enum | User's response to the dialog (e.g., Confirm, Cancel). |
Explanation
- Main Navigation: Users navigate to the Cohort Management interface and load the list of cohorts.
- Create Cohort: Describes the process of adding a new cohort, from initializing the form to saving the cohort and updating the UI.
- Edit Cohort: Details how users can select and modify existing cohorts, including loading details, submitting changes, and refreshing the cohort list.
- Delete Cohort: Explains the steps involved in removing a cohort, including confirmation and updating the UI.
- Navigation Guard: Discusses how the system handles attempts to navigate away with unsaved changes, prompting the user to save or discard.