Project Management¶
In this section, we present the system design for project management use cases. Task management use cases, while indeed are part of project management, are discussed in the next.
Create Project¶
The function allow creating projects.
The implementation involves two database tables:
users
database table, whererole
index is checked.projects
database table, where new document is created.
When user requests to create project, the project controller checks
with quart_auth
whether the person is authenticated. The controller then
checks in users
database that if the current user is not assistant.
When both conditions are satisfied, controller returns a form for user to
create project. After user fills in the form, the controller requests updating
project
database accordingly.
Figure 12 Activity diagram illustrating the successful project creation¶
If user is not authenticated, controller should inform that user has not logged in.
Figure 13 Analysis sequence diagram for create project by non-authenticated user.¶
If user is an assistant, controller should inform that user are not allowed to create projects.
Figure 14 Analysis sequence diagram for create project by assistant.¶
Show Project Information¶
The function allow showing project information.
The implementation involves only project
database table,
where id
, students
and supervisors
indexes are visited
When user requests to create project, the project controller checks
with quart_auth
whether the person is authenticated. The controller then
checks in project
database that if the current user is a member of project,
and if the project id is existed in database table.
When three conditions are satisfied, controller show the project information.
Figure 15 Analysis sequence diagram for successfully show project information.¶
If quart_auth
returns user is not authenticated,
controller should inform accordingly.
Figure 16 Analysis sequence diagram for showing project information when user is not authenticated.¶
If project id is not in the database, controller must show the error
Figure 17 Analysis sequence diagram for showing project information when project id does not exist.¶
If user is not in the project, controller must show the error
Figure 18 Analysis sequence diagram for showing project information when user is not a project’s member.¶
Edit Project Information¶
The function allow editing project information.
The implementation involves only project
database table,
where id
, students
and supervisors
indexes are visited
When user navigate to edit tab, the project controller checks whether or not
the person is authenticated. After that, it checks if the current user
is a member of project, and if the project id is existed in database table.
If all conditions are satisfied, controller shows the form for user to fill in.
When user fills the form, controller updates the project
table with
the extracted data
Figure 19 Analysis sequence diagram for successfully edit project information.¶
If user is not authenticated
Figure 20 Analysis sequence diagram for editing project with un-authenticated user.¶
If project not exists in projects
database table
Figure 21 Analysis sequence diagram for editing projects when project id does not exist.¶
If user is not a member in the project
Figure 22 Analysis sequence diagram for editing projects when user is not a member of the project.¶
List member¶
The function allow listing the members in the projects.
The implementation involves only projects
database table, in which we get
the member list of members. Two fields are being called is supervisors
and
students
.
When user navigate to member tab, the list of members in the project,
classified as supervisors
and students
is shown in a form.
Figure 23 Analysis sequence diagram for the member listing process¶
Invite member¶
Since the project is initialized with only the creator, we need a function to invite members. Only who is in the project could introduce a new member.
The design involves the projects
database table,
where the members index is to be updated.
When user enters the invited member’s name, the project controller checks
the projects
table in the database whether the person is already in
the project, or that user is an assistant, or that user has not registered.
If all three conditions is satisfied, two databases is updated accordingly.
Figure 24 Analysis sequence diagram for successfully invite member.¶
If added user is already in the project
Figure 25 Analysis sequence diagram for adding member when user is existed in project.¶
If added user is an assistant
Figure 26 Analysis sequence diagram for adding member when user is an assistant.¶
If the name is not in users
database
Figure 27 Analysis sequence diagram for adding non-registered user.¶