Project Management Documentation
Project Management Documentation
Comprehensive guide on managing projects within ProjectHub, including project setup, milestone tracking, and resource allocation.
UI Component Hierarchy
graph TD
%% Core Layout
A[BorderPane: Root]
B[TabPane: Content]
A --> B
%% Tab Views
C[ScrollPane: Dashboard]
D[ScrollPane: Details]
E[ScrollPane: Workshop]
F[ScrollPane: Analytics]
B --> C
B --> D
B --> E
B --> F
%% Dashboard Components
G[Statistics]
H[Progress]
I[Charts]
C --> G & H & I
%% Details Components
J[Details Form]
K[Tasks]
L[Resources]
D --> J & K & L
%% Workshop Components
M[WorkArea]
N[Tools]
O[Layers]
E --> M & N & O
%% Analytics Components
P[Charts]
Q[Metrics]
F --> P & Q
%% Styling
classDef c1 fill:#e1f5fe,stroke:#01579b
classDef c2 fill:#fff,stroke:#0288d1
classDef c3 fill:#e8f5e9,stroke:#2e7d32
class A,B c1
class C,D,E,F c2
class G,H,I,J,K,L,M,N,O,P,Q c3
Project Dashboard Sequence Diagram
sequenceDiagram
actor User
participant DashboardView
participant DashboardController
participant ProjectViewModel
participant StatisticsService
participant DB
%% Initial Dashboard Load
User->>DashboardView: Open Dashboard
DashboardView->>DashboardController: initialize()
DashboardController->>ProjectViewModel: loadProjects()
ProjectViewModel->>DB: fetchProjects()
DB-->>ProjectViewModel: projects list
ProjectViewModel-->>DashboardController: updateProjectSelector
par Statistics Cards
DashboardController->>StatisticsService: getTaskStats()
StatisticsService->>DB: fetch task metrics
DB-->>StatisticsService: task counts
StatisticsService-->>DashboardController: update stat cards
and Progress Grid
DashboardController->>StatisticsService: getProjectProgress()
StatisticsService->>DB: fetch progress data
DB-->>StatisticsService: progress metrics
StatisticsService-->>DashboardController: update progress bars
end
DashboardController-->>DashboardView: refresh UI
DashboardView-->>User: Display Dashboard
%% Project Selection
User->>DashboardView: Select Project
DashboardView->>DashboardController: handleProjectSelection()
DashboardController->>ProjectViewModel: updateSelectedProject()
ProjectViewModel->>DB: fetchProjectDetails()
DB-->>ProjectViewModel: project details
ProjectViewModel-->>DashboardController: update project view
DashboardController-->>DashboardView: refresh project data
%% View Details
User->>DashboardView: Click View Details
DashboardView->>DashboardController: handleViewDetails()
DashboardController-->>DashboardView: navigate to details view
Project Details Sequence Diagram
sequenceDiagram
actor User
participant DetailView
participant DetailController
participant ProjectViewModel
participant TaskService
participant FileService
participant ResourceService
participant DB
%% Initial Load
User->>DetailView: Open Project Details
DetailView->>DetailController: initialize()
DetailController->>ProjectViewModel: loadProjectsList()
ProjectViewModel->>DB: fetchProjects()
DB-->>ProjectViewModel: projects list
ProjectViewModel-->>DetailController: updateProjectSelector()
%% Project Selection
User->>DetailView: Select Project
DetailView->>DetailController: handleProjectSelection(projectId)
par Project Info
DetailController->>ProjectViewModel: getProjectDetails()
ProjectViewModel->>DB: fetch project
DB-->>ProjectViewModel: project data
ProjectViewModel-->>DetailController: update project fields
and Task List
DetailController->>TaskService: getProjectTasks()
TaskService->>DB: fetch tasks
DB-->>TaskService: tasks data
TaskService-->>DetailController: update tasksTable
and File List
DetailController->>FileService: getProjectFiles()
FileService->>DB: fetch files
DB-->>FileService: files data
FileService-->>DetailController: update filesTable
and Resources
DetailController->>ResourceService: getProjectResources()
ResourceService->>DB: fetch resources
DB-->>ResourceService: resources data
ResourceService-->>DetailController: update resourcesTable
end
DetailController-->>DetailView: refresh UI
%% Task Operations
User->>DetailView: Add Task
DetailView->>DetailController: handleAddTask()
DetailController->>TaskService: createTask(taskData)
TaskService->>DB: save task
DB-->>TaskService: confirmation
TaskService-->>DetailController: update tasksTable
%% File Operations
User->>DetailView: Upload File
DetailView->>DetailController: handleFileUpload()
DetailController->>FileService: uploadFile(fileData)
FileService->>DB: save file
DB-->>FileService: confirmation
FileService-->>DetailController: update filesTable
%% Resource Management
User->>DetailView: Add Resource
DetailView->>DetailController: handleAddResource()
DetailController->>ResourceService: addResource(resourceData)
ResourceService->>DB: save resource
DB-->>ResourceService: confirmation
ResourceService-->>DetailController: update resourcesTable
%% Progress Update
DetailController->>ProjectViewModel: updateProgress()
ProjectViewModel->>DB: save progress
DB-->>ProjectViewModel: confirmation
ProjectViewModel-->>DetailController: refresh progress bar
DetailController-->>DetailView: update UI
Workshop Sequence Diagram
sequenceDiagram
actor User
participant WorkshopView
participant WorkshopController
participant ResourceManager
participant LayerManager
participant CanvasManager
participant PropertyManager
participant FileSystem
%% Initial Load
User->>WorkshopView: Open Workshop
WorkshopView->>WorkshopController: initialize()
par Resource Loading
WorkshopController->>ResourceManager: loadResources()
ResourceManager->>FileSystem: fetchResourceList()
FileSystem-->>ResourceManager: resources
ResourceManager-->>WorkshopController: updateResourceList()
and Layer Setup
WorkshopController->>LayerManager: initializeLayers()
LayerManager-->>WorkshopController: layerStructure
and Canvas Setup
WorkshopController->>CanvasManager: setupCanvas()
CanvasManager-->>WorkshopController: canvasReady
end
WorkshopController-->>WorkshopView: setup complete
%% Resource Operations
User->>WorkshopView: Select Resource
WorkshopView->>WorkshopController: handleResourceSelection()
WorkshopController->>ResourceManager: loadResource()
ResourceManager-->>WorkshopController: resourceLoaded
WorkshopController->>CanvasManager: placeResourceOnCanvas()
%% Layer Management
User->>WorkshopView: Add Layer
WorkshopView->>WorkshopController: handleAddLayer()
WorkshopController->>LayerManager: createNewLayer()
LayerManager-->>WorkshopController: layerCreated
WorkshopController->>CanvasManager: refreshLayers()
%% Canvas Interactions
User->>WorkshopView: Modify Canvas
WorkshopView->>WorkshopController: handleCanvasAction()
WorkshopController->>CanvasManager: processAction()
CanvasManager->>PropertyManager: updateProperties()
PropertyManager-->>WorkshopController: propertiesUpdated
WorkshopController-->>WorkshopView: refresh view
%% Save Operation
User->>WorkshopView: Click Save
WorkshopView->>WorkshopController: handleSave()
WorkshopController->>CanvasManager: captureState()
CanvasManager-->>WorkshopController: currentState
WorkshopController->>FileSystem: saveProject()
FileSystem-->>WorkshopController: saveConfirmed
WorkshopController-->>WorkshopView: show success
%% Undo/Redo
User->>WorkshopView: Click Undo
WorkshopView->>WorkshopController: handleUndo()
WorkshopController->>CanvasManager: undoLastAction()
CanvasManager->>PropertyManager: syncProperties()
PropertyManager-->>WorkshopController: stateRestored
WorkshopController-->>WorkshopView: refresh canvas
Project Performance Analysis Sequence Diagram
sequenceDiagram
actor User
participant AnalyticsView
participant AnalyticsController
participant ChartService
participant ResourceService
participant DB
%% Initial Load
User->>AnalyticsView: Open Analytics
AnalyticsView->>AnalyticsController: initialize()
AnalyticsController->>ChartService: loadProjectList()
ChartService->>DB: fetchProjects()
DB-->>ChartService: projects
ChartService-->>AnalyticsController: updateProjectSelector
%% Project Selection
User->>AnalyticsView: Select Project
AnalyticsView->>AnalyticsController: handleProjectSelection()
par Overall Progress Chart
AnalyticsController->>ChartService: getProgressData()
ChartService->>DB: fetchProgressMetrics
DB-->>ChartService: progress data
ChartService-->>AnalyticsController: updatePieChart
and Tasks Overview
AnalyticsController->>ChartService: getTasksOverview()
ChartService->>DB: fetchTaskMetrics
DB-->>ChartService: tasks data
ChartService-->>AnalyticsController: updateBarChart
and Completion Rate
AnalyticsController->>ChartService: getCompletionTrend()
ChartService->>DB: fetchTrendData
DB-->>ChartService: trend metrics
ChartService-->>AnalyticsController: updateLineChart
and Resource Table
AnalyticsController->>ResourceService: getResourceUtilization()
ResourceService->>DB: fetchResourceData
DB-->>ResourceService: resource metrics
ResourceService-->>AnalyticsController: updateTable
end
AnalyticsController-->>AnalyticsView: refreshUI
AnalyticsController->>AnalyticsView: updateStatusBar
AnalyticsView-->>User: Display Analytics
%% Back Navigation
User->>AnalyticsView: Click Back
AnalyticsView->>AnalyticsController: handleBack()
AnalyticsController-->>AnalyticsView: navigateToDashboard