4. Motivation
Project Management in
workflow environment is difficult.
Why?
No task tracking
No document tracking
No versioning
No collaborative
What we want?
A software to track:
Progress of projects
Documents/files
4
15. Type Software Advantages Disadvantages
Collaborative Tools Time sequenced chart Difficult to defined constraint
High operational ticket Lack of time sequenced
Simple list Complicated when tasks are overloaded.
Full-functions Difficult to understand
Real time Difficult to see projects’ progresses.
Advantages & Disadvantages
Revision Control Local repositories Poor pushing, Security problems
Simple command Centralized
Keep whole files,
Permanent history
Not support merging
Project Management High configurable,
Efficient dashboard
Functions are overhead
Simple spread sheet Offline, No collaborative tools
15
16. Software Development Model
Model Phases Advantages Disadvantages
Waterfall 1. Easy & Simple
2. Stages are clear
3. Sequence Tasks
1. Not support
complexity
2. Bottleneck
between stages
3. Not support
changing FR
Iterative 1. Fast & Parallel
2. Flexible to
change FR
3. Supply early
product
1. Require high
management
attention
2. Critical system
design
Agile 1. Promote
teamwork
2. Require less
resource &
planning
3. Very fast &
flexible
1. Extremely
depended on FR
2. Lacking of
documentation
3. High risk of
extensibility &
maintainability
16
19. Permission to modify
Groups of Users Project’s Components
Project Section Task Work/List
Project Manager O O O O
Team Leader X X O O
Member X X X O
Term Definition
Project Sequence of tasks which involve a team of people
to complete specific goal in time scheduled.
Section A part of project consist of tasks with same functions.
Task An activity that needs to be accomplished in a specific period of time.
Work/List A step to accomplish the task.
Project Manager People who own projects, create sections, assign team leaders
and member to sections or tasks.
Team Leader People who are assigned to sections,
and can assign task to members.
Member People who are responsible for assigned tasks.
Term & Definition
19
23. • User B cannot
download the file to edit
• User B can
download the file to view
System Design (cont.)
File Management & Revision Control
23
• User A download a file to edit
• The file is locked
24. System Design (cont.)
File Management & Revision Control
24
• User A is the only one who can upload the file
• User A upload the file
• The file is unlocked
• The file keeps all its previous versions
39. Implementation Guide: Django
Object-Relational Mapping (ORM)
Person
id name
0 Mike
1 Too
2 Jane
Relational Database (RDBMS)
SELECT * FROM Person
WHERE id=0
Object-Relational Mapping (ORM)
Create a Virtual Object Database
Person p = Person.get(id=0)
How to query
“Mike”?
39
47. Implementation Guide: Event
P1.7 Show Event
Notification Server Pool (in Multiple Projects)
User Project
1
Project
2
Project
3
Viewable
User A O O X A = { 1 , 2 }
User B O X O B = { 1 , 3 }
User C O O O C = { 1 , 2 , 3 }
47
48. Implementation Guide: Event
P1.7 Show Event
UserNotificationListener() via REST API
We want to get notification using REST API
48
50. Implementation Guide: AngularJS
P1.7 Show Event Layer
View: Visual Appearance
Model: Data Model
(JavaScript Objects)
Controller: Adds
Behavior
Workflow
• User interact with
the view
• Changes the model,
calls controller (data
binding)
• Controller
manipulates model,
interact with server
• AngularJS detects
model changes and
update the view
(two-way data
binding)
50
54. Unit Tests
P1.1 Authenticate User Account
Operation Performed Condition Tested Actual Result
Fill username and
password, and click on
Login button
When users fill the wrong username and/or password after
clicking on “Login” button, the system shall alert “wrong
username or password, please type again” message.
Pass
Click on Sign Up button When users click on “Sign up” button, the system shall go to
Register page.
Pass
Click on Change
password button
When users click on “Change password” button, the system
shall go to Register page.
Pass
Click on Login button After successfully logged in, the User’s Profile page will appear. Pass
54
56. User’ Evaluation
Test Subject
Type Value
Problems’
experience
People who feel difficult to organize their work
Age Any
Gender Both male and female
Occupation 1. Professors or lecturers who work in the university
2. People who work in an organization
3. Students who work on a project
56
57. User’ Evaluation
Test Scenario
Run CAVAROS System on a Web Browser
Register and Log in to CAVAROS System
Edit Profile and Change Password
Create or Delete Project(s)
Add Members to the Project(s)
Create, Edit or Delete Section(s)
Add Members to the Section(s)
Create, Edit or Delete Task(s)
Add Members to the Task(s)
Create, Edit or Delete Checklist(s)
Mark or Unmark the Checklist(s)
Approve Finished Task(s)
Upload, Update Version, Edit and Download File(s)
57
58. User’ Evaluation
Data Capturing
On 5 users: 1 lecturer and 4 students
By observation and asking for feedback
Conclude results into these 6 questions
1. How successful users can complete specified
set of task in the test scenario?
2. Is CAVAROS System easy to use?
3. Is CAVAROS System give good interactive performance?
4. Is CAVAROS helps users working easier?
5. What users like or do not like about CAVAROS System?
6. What do users want CAVAROS System to improve?
58
59. User’ Evaluation
Data Capturing
1. How successful users can complete specified
set of task in the test scenario?
All users could perform all tasks specified in user req.
Users could intuitively use CAVAROS without guidance
Some users were not sure about the definition of section.
59
60. User’ Evaluation
Data Capturing
2. Is CAVAROS System easy to use?
Users said CAVAROS
was easy to use
did require little time to learn
required some modification on GUI
should have priority level for checklist and tasks
60
61. User’ Evaluation
Data Capturing
3. Is CAVAROS System give good interactive performance?
Users said CAVAROS can perform well
with high-speed WiFi
61
62. User’ Evaluation
Data Capturing
4. Does CAVAROS help users work easier?
Users can use CAVAROS to manage their works by
dividing into projects, sections, tasks and checklists.
Users can track work progress
Users recommended that project manager must
control the behavior of team member to frequently
update their work progresses
62
63. User’ Evaluation
Data Capturing
5. What users like or do not like about CAVAROS System?
Users said they like CAVAROS that:
Provides simple GUI
Provides file locking mechanism
Users said they do not like CAVAROS that:
It is difficult to create checklists
63
64. User’ Evaluation
Data Capturing
6. Which components of CAVAROS that users suggested
for improvement?
Users said they preferred
Chat Box
Priority List
Repetition System (automatic task generation)
Integration with Social Media
64
66. Conclusion
Benefit: To Project Developers
Benefit: To Users
Problem and Limitation
Future Work
66
67. Conclusion
Benefit: To Project Developers
We learned
How Collaborative Tool, Version Control and Project Management work
The Concept of Software Development Life Cycle
System Analysis and Design Processes
How to Document Senior Project
The Concept of Model-View-Controller (MVC)
How to Design Web Interface Clear and Simple
The Concept of Web Interactions
67
68. Conclusion
Benefit: To Users
Users can:
manage their works
track project progress
know who are responsible for works
manage file versions
68
69. Conclusion
Problem and Limitation
Date picker is not support by Firefox
CSS3 and HTML5 are compatible with Internet Explorer 9+
Users cannot directly create checklists
Forgot password function is not implemented
Data Backup Recovery function is not implemented
Struggle with high traffic coming
Different Time Zone
69
70. Conclusion
Future Work
CAVAROS needs to provide
More charts in dashboard and more report types
Data Backup Recovery Function
Waterfall Model (waterfall model phases concept)
and Agile Model Modes (automatic task generation)
Functions for Hospital Database Management
High Availability Environment
70
110. Implementation Guide: Event
P1.7 Show Event
Asynchronous Methods in Sequential Manner
• async1() is query() from previous slide
• async2() is getUserName(IDs) at slide no. 71
• async3() is bucketListener() at slide no. 74
111. Implementation Guide: Event
P1.7 Show Event
What is Promise?
Promise represents public APIs, which let you handle
asynchronous process by uniform format.
It also let you nest the task, in sequential order, to perform
In general, Promise can be in below states
1. pending: initial state, not fulfilled or rejected.
2. fulfilled: successful operation
3. rejected: failed operation.
113. Implementation Guide: Event
P1.7 Show Event
UserNoficationListener() (cont.)
We want to get notifications that include username(s)
114. Implementation Guide: Event
P1.7 Show Event
Asynchronous Methods in Parallel Manner
• From the previous slide,
getUserName(IDs) behaves in
Parallel manner
• $q is a Deferred
115. Implementation Guide: Event
P1.7 Show Event
What is Deferred?
A Deferred is just a Promise with methods that allow its owner to
resolve or reject the Promise.
In our case, a Deferred contains an array of Promises associated
with it.
118. Implementation Guide: Event
P1.7 Show Event
Execution of UserNoficationListener() (cont.)
Now
We have chuck of notification that include username(s).
Next
We want to compare the chuck and the bucket.
120. Implementation Guide: REST API
P1.7 Show Event
What is REST API?
Representational State Transfer (REST) is a software architecture style
consisting of guidelines and best practices for creating scalable web
services. REST is a coordinated set of constraints applied to the design of
components in a distributed hypermedia system that can lead to a more
performant and maintainable architecture.
121. Implementation Guide: REST API
P1.7 Show Event
CRUD in REST Operation
CRUD REST Description
CREATE POST Initialize the state of a new resource at the given URI
READ GET Retrieve the current state of the resource
UPDATE PUT Modify the state of a resource
DELETE DELETE Clear a resource after the URL is no longer valid
123. Appendix D:
Implementation Guide: AngularJS
P1.7 Show Event
Index $scope.notificationList(chunk) $scope.bucket Bucket(REST API)
0 14
1 13
2 9
3 6
4 5
GET /notification/user/bucket – list of user notification bucket
Before we using GET method, we have a chuck as shown above
124. Implementation Guide: AngularJS
P1.7 Show Event
Index $scope.notificationList(chunk) $scope.bucket Bucket(REST API)
0 14 5 5
1 13 6 6
2 9 9 9
3 6
4 5
GET /notification/user/bucket – list of user notification bucket
After using GET method, $scope.bucket is updated
125. Implementation Guide: AngularJS
P1.7 Show Event
Index $scope.notificationList(chunk) $scope.bucket Bucket(REST API)
0 14 5 5
1 13 6 6
2 9 9 9
3 6 13 13
4 5 14 14
POST /notification/user/bucket – add new notification to bucket
Use POST method, Bucket(REST API) is updated,
And the Counter is incremented.
127. Appendix E:
Unit Tests
P1.1 Authenticate User Account
Operation Performed Condition Tested Actual Result
Fill username and
password, and click on
Login button
When users fill the wrong username and/or password after
clicking on “Login” button, the system shall alert “wrong
username or password, please type again” message.
Pass
Click on Sign Up button When users click on “Sign up” button, the system shall go to
Register page.
Pass
Click on Change
password button
When users click on “Change password” button, the system
shall go to Register page.
Pass
Click on Login button After successfully logged in, the User’s Profile page will appear. Pass
128. Unit Tests
P1.2 Show User Profile
Operation Performed Condition Tested Actual Result
Click on Edit profile In Edit User Profile page, user’s information must be shown. Pass
Edit profile and click save
button
Users can edit his profile by changing it in the text field,
and the changed profile will be updated after clicking on
“save” button.
Pass
Click on change password
button
When users click on “change password” button in the Edit
Profile page, the Change Password page will appear.
Pass
129. Unit Tests
P1.3 Manage User
Operation Performed Condition Tested Actual Result
Search Member A Project Manager and a Team Leader can search a
member by using the name of the member, and the
resulted search must be shown responsively.
Pass
Add Member by Project Manager A Project Manager can add a member by selecting from
list of resulted search.
Pass
Add Member by Team Leader A Team Leader can add a member by selecting from list
of resulted search.
Pass
Add Lists of Members A Project Manager and a Team Leader can multi-select a
list of searched members to be added either in a Project
or in a Section.
Pass
Remove Member A Project Manager and a Team Leader can remove a
member or a list of members in the project by selecting
each existing member.
Pass
Assign Role A Project Manager and a Team Leader can assign a role of
members by putting them to Task
Pass
130. Unit Tests
P1.4 Manage Module
Operation
Performed
Condition Tested Actual Result
Create Project A Project Manager can create a project successfully. Pass
Edit Project A Project Manager can edit a project successfully. Pass
Delete Project A Project Manager can delete a project successfully. Pass
Create Section A Project Manager and a Team Leader can create a section within an
existing project successfully.
Pass
Edit Section A Project Manager and a Team Leader can edit a section within an existing
project successfully.
Pass
Delete Section A Project Manager and a Team Leader can delete a section within an
existing project successfully.
Pass
131. Unit Tests
P1.4 Manage Module (cont.)
Operation
Performed
Condition Tested Actual Result
Create Task A Project Manager and a Team Leader can create a task within an
existing section successfully.
Pass
Edit Task A Project Manager and a Team Leader can edit a task within an existing
section successfully.
Pass
Delete Task A Project Manager and a Team Leader can delete a task within an
existing section successfully.
Pass
Create Checklist A Project Manager, a Team Leader, and a Team Member can create a
checklist within an existing task successfully.
Pass
Edit Checklist A Project Manager, a Team Leader, and a Team Member can edit a
checklist within an existing task successfully.
Pass
Delete Checklist A Project Manager, a Team Leader, and a Team Member can delete a
checklist within an existing task successfully.
Pass
132. Unit Tests
P1.5 Control File Version
Operation Performed Condition Tested Actual Result
Upload File Users can upload a file associated with a Task ,and a alert
message will be shown a result of uploading.
Pass
Download File Users who are accessible to the file are able to download it,
and no files are shown to unauthorized users.
Pass
Upload to Newer Version The system shall automatically set to new version of a file by
incrementing it from the previous one after the newer file
successfully uploaded.
Pass
View Historical Version Any version of a file shall be shown to the authorized users,
and the order of the version must maintain correctly.
Pass
Download Specific Version The authorized users are able to download any existing
version of a file, and the alert message will be shown a
confirmation of downloading.
Pass
Set Number of Version The authorized users are able to set the existing version to be
any version. If the version is duplicate, there must be an error
message appears. After the version is updated, the order of
the version is rearranged.
Pass
133. Unit Tests
P1.6 Show Workflow
Operation Performed Condition Tested Actual Result
View progress bar of Task Authorized users are able to see the progress bar of Task, and
whenever the task is done, the bar shall be updated.
Pass
View Progress bar of
Section
Authorized users are able to see the progress bar of Section,
and whenever the task is done, the bar shall be updated.
Pass
View Progress bar of
Project
Authorized users are able to see the progress bar of Project,
and whenever the task is done, the bar shall be updated.
Pass
134. Unit Tests
P1.7 Show Event
Operation Performed Condition Tested Actual Result
View System Logs A Project Manager can see all categorized events occurred in the
system. As shown, it can be exported to a document-format file, and
the alert message will be shown a confirmation of exporting.
Pass
View Notification Notification shall be shown to the users. The details of the
notification are vary regarding to the events relating to a certain
user. Ex. if somebody uploads a file or submit a task, the system
shall notify a message to a Project manager, Team Leader, and all
team members who are responsible for that particular task.
Pass
135. Unit Tests
P1.8 Show Dashboard
Operation Performed Condition Tested Actual Result
View Dashboard The system shall show responsively the percentage of every
section in the project due to the changes of number of finished
tasks, and a Project Manager is logged in successfully.
Pass
View Project Duration The system shall show the start date and the end date of the
project after a Project Manager is logged in.
Pass
136. Unit Tests
P1.9 Report
Operation Performed Condition Tested Actual Result
Export Dashboard As the dashboard is shown, a Project manager can click
“export” button to export a dashboard as a report.
Pass
Report Person’s Behavior The system shall collect person’s behavior by record number
of completed and incomplete tasks represented as a
document-format file as a report.
Pass