Project Collaboration

This section aims to describe basic activities relating to the project. For Building a Collaboration Platform, we let users perform basic create-read-update-delete on projects, along with the help of tasks and discussion.

skinparam packageStyle rectangle
left to right direction
actor "Project Participant" as parti

rectangle Project {
   usecase "Create project" as CreateP
   usecase "Show project information" as ShowP
   usecase "Edit project information" as EditP
   usecase "Add project member" as AddMember
}

rectangle Task {
   usecase "Create task" as CreateT
   usecase "Assign task" as AssignT
   usecase "Complete task" as Complete
   usecase "View task" as View
}

rectangle Discussion {
   usecase "Create discussion thread" as Thread
   usecase "Add comment" as Comment
}

parti --> CreateP
parti --> ShowP
parti --> EditP
parti --> CreateT
parti --> AddMember
parti --> AssignT
parti --> Complete
parti --> Thread
parti --> Comment
parti --> View

Student --|> parti
Supervisor --|> parti

Create Project

This use case allows Student or Supervisor to create a new project. Its flow of events can be depicted as follows:

  1. Student/Supervisor requests to create a project.

  2. System receives the request and requests user to enter name and description.

  3. The user provides necessary data.

  4. System processes the data and create a new project.

Show Project Information

This use case allows a member to view the project’s basic information. Its flow of events can be depicted as follows:

  1. Participant requests to view a project.

  2. System respond with the project’s basic information.

Edit Project Information

This use case allows a member to edit a project’s basic information. Its flow of events can be depicted as follows:

  1. Participant requests to view a project.

  2. System respond with a form for editing basic information.

  3. Participant gives disired changes to the project’s basic information.

  4. System updates the project’s information accordingly.

Add Project Members

This use case allows the creator of a project to add members to it. Its flow of events can be depicted as follows:

  1. The creator selects other users to add to project.

  2. The System adds the selected users as members of the project.

Create Tasks

This use case allows Student or Supervisor to generate tasks for the project. Its flow of events can be depicted as follows:

  1. Student/Supervisor requests to generate tasks the project.

  2. System receives the request and requests user to provide name, assignees and deadline.

  3. User provides necessary data.

  4. System processes the data and updates tasks list.

Assign Tasks

This use case allows a participant to assign a task to someone. Its flow of events can be depicted as follows:

  1. Student selects the task and choose “Assign”.

  2. Student chooses the participant to assign to.

  3. System receives the request and register the participant as assigned for that task.

Complete Tasks

This use case allows Student to complete task(s) in the project. Its flow of events can be depicted as follows:

  1. Student requests to complete task(s) in the task list.

  2. System receives the request and requests Student to hand in evidences.

  3. Student submits a file or a link as evidence.

  4. System receives the evidence and marks task(s) as completed.

Create Discussion Thread

This use case allows Student or Supervisor to create a discussion thread. Its flow of events can be depicted as follows:

  1. User requests to create a new discussion thread.

  2. System receives the request and requests user to enter title and content.

  3. User provides necessary data.

  4. System processes the data and create a new thread.

Add Comment

This use case allows Student or Supervisor to add a comment to a discussion thread. Its flow of events can be depicted as follows:

  1. User requests to add a new comment to the discussion thread.

  2. System receives the request and requests user to enter comment.

  3. User enters a comment.

  4. System processes the data and create a new comment in the thread.