Team Management Documentation
This documentation covers ProjectHub's team management system, including team creation, member assignments, and project associations.
Component Hierarchy
graph TD
%% Main Components
Root[BorderPane: Root]
Content[SplitPane: Content]
List[VBox: TeamList]
Details[ScrollPane: Details]
%% List Components
SearchBar[TextField: Search]
TeamTable[TableView: Teams]
AddButton[Button: AddTeam]
%% Details Components
TeamForm[Form: TeamForm]
NameField[TextField: Name]
CohortSelect[ComboBox: Cohort]
MemberList[TableView: Members]
ProjectList[TableView: Projects]
%% Action Components
Actions[HBox: Actions]
SaveBtn[Button: Save]
DeleteBtn[Button: Delete]
%% Hierarchy
Root --> Content
Content --> List
Content --> Details
List --> SearchBar
List --> TeamTable
List --> AddButton
Details --> TeamForm
TeamForm --> NameField
TeamForm --> CohortSelect
Details --> MemberList
Details --> ProjectList
Details --> Actions
Actions --> SaveBtn
Actions --> DeleteBtn
%% 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,TeamForm component
class SearchBar,TeamTable,NameField,CohortSelect,MemberList,ProjectList,SaveBtn,DeleteBtn control
Team Management Sequence
sequenceDiagram
actor User
participant View as TeamView
participant Controller as TeamController
participant ViewModel as TeamViewModel
participant Service as TeamService
participant DB as Database
%% Load Teams
User->>View: Open Teams
View->>Controller: initialize()
Controller->>ViewModel: loadTeams()
ViewModel->>Service: getAllTeams()
Service->>DB: fetchTeams()
DB-->>Service: teams
Service-->>ViewModel: teamsList
ViewModel-->>View: updateTeamTable()
%% Team Operations
User->>View: Create Team
View->>Controller: handleNewTeam()
Controller->>ViewModel: createTeam(TeamDTO)
ViewModel->>Service: saveTeam()
Service->>DB: persist()
DB-->>Service: confirmation
Service-->>View: showSuccess()
%% Member Management
User->>View: Add Member
View->>Controller: handleAddMember()
Controller->>ViewModel: addMember(userId)
ViewModel->>Service: assignMember()
Service->>DB: updateTeam()
DB-->>Service: updated
Service-->>View: refreshMembers()
Data Dictionary
Team Entity
Field | Type | Description |
---|---|---|
teamId | UUID | Unique identifier |
name | String | Team name |
cohortId | UUID | Associated cohort |
members | List<UUID> | Team members |
projects | List<UUID> | Assigned projects |
View States
State | Type | Description |
---|---|---|
selectedTeam | TeamDTO | Currently selected team |
memberList | ObservableList<UserDTO> | Team members list |
projectList | ObservableList<ProjectDTO> | Team projects |