IS480 Team wiki: 2017T2 CAVETZ Final Wiki

From IS480
Jump to navigation Jump to search
CAVETZ logo.jpg

Team Stark Home.png   HOME


Team Stark About Us.png   ABOUT US


Team CAVETZ Proj Overview icon.png   PROJECT OVERVIEW




Team CAVETZ Proj Documentation icon.jpg   DOCUMENTATION


Project Progress Summary

Final Slides: Download Here

Our application is deployed for production at http://epitrain-platform.us-west-2.elasticbeanstalk.com/
The application is deployed for testing purpose at http://sample-env-1.2uqmcfeudi.us-west-2.elasticbeanstalk.com

Current Iteration: 12
Total Iterations: 13
Iteration Dates (Current): 28 March 2017 - 9 April 2017
Iteration Dates (Final): 10 April 2017 - 21 April 2017

Project Highlights

Project Highlights
There are several key highlights in this Epitrain Elearning Platform (EEP) project made by Team Cavetz.

  • Cavetz managed to protect online documents from copying or alterating. Therefore copyright protection of Epitrain's training materials is achieved, and the profit is maximized for the company.
  • Highlighting and comments can be saved on the server for the students' learning purpose. They will also be able to share the notes with a group of users.
  • Discussion forum with tagging function is developed to ensure the communication between staff and students. Staff gains a better overview of student's understanding over course content and materials.

Project Challenges
Our challenges faced includes:

  • Absense of knowledge for PHP framework Laravel. The developers are unfamiliar with the framework and the framework has many limitations and compatibility issues with the other packages.
  • Managing the front-end designs and keeping the consistency though the design is completed by various developers. Calculation of the book prices.
  • Developing differents functions for different types of users of the project.
  • Saving highlighting and comments on the server with minimal cost for the sponsor.

Project Achievements

  • Managing all Epitrain training materials on the real application.
  • Achieved 80% positive feedback from user testings on average.
  • 100% of the testers reflected that the application is easy to use and will be helpful for the students.

Technical Complexity

Shopping Cart

  • We wants a shopping cart similar to that of Amazon, but there is no existing solution on our framework, so we built one from scratch
  • Two main processes:

- Adding and checking out items
- Deleting items/the whole cart
Shopping Cart – adding items
Team CAVETZ Tech Complexity 1.png

  • View after adding books
  • Price calculation

Team CAVETZ Tech Complexity 2.png

  • Calculation of final prices is done in the view for dynamic price calculation

Team CAVETZ Tech Complexity 3.png

  • Calculation of final prices is done in the view via a phpScript

Team CAVETZ Tech Complexity 4.png

  • Removing an item from shopping cart will also dynamically update the price

Team CAVETZ Tech Complexity 5.png

  • Boilerplate function for next iteration’s ePayment module

Team CAVETZ Tech Complexity 6.png
Shopping Cart – checking out items
Team CAVETZ Tech Complexity 7.png
Disallow concurrent login & automatic logout for idle users

  • Table for session data

Team CAVETZ Tech Complexity 8.png

  • Automatic logout for idle users – SessionTimeOut request handler

Team CAVETZ Tech Complexity 9.png

  • Disallow concurrent login – Authentication controller, post-login

Team CAVETZ Tech Complexity 10.png

  • Disallow concurrent login – Authentication controller, upon log out

Team CAVETZ Tech Complexity 11.png

  • Disallow concurrent login – DisallowConcurrentLogin request handler

Team CAVETZ Tech Complexity 12.png

  • Disallow concurrent login
  • Authentication controller, post-login

Team CAVETZ Tech Complexity 13.png

  • Login view page – display error messages

Team CAVETZ Tech Complexity 14.png

Project Management

Project Scope

Team CAVETZ Planned Scope Term 2.png.png
Team CAVETZ Scope Term 2.png

Scope Changes

Project Timeline

Team CAVETZ Planned Timeline Term 2.png
Team CAVETZ Timeline Term 2.png

Schedule Changes

Project Metrics

Schedule Metrics


Team CAVETZ Schedule metric.png

Iteration Planned Duration (Days) Actual Duration (Days) Schedule Metric Score Action Taken Status
4 32 35 3 Underestimated time needed to fix bugs in deployment environment.

Follow up action: Informed the course coordinator about the delay. More hours put in for debugging. PM to push spreadsheet function to iteration 10 as a good-to-have function after discussion with sponsor. No major delay to overall schedule.


Bug Metrics


Team CAVETZ Bug Metrics.png

Iteration Bug Score Bug Summary Action Taken
4 16

1 low
1 high
1 critical

The bugs are:

Integration error of PDF.JS which makes the ebook reader not functional (critical) Search bar in Epitrain's library (Shop) not functional (high) System is unable to resend email for password recovery (low)

Resolve bugs immediately. PM assigned debugging task to lead backend & lead frontend developer, rescheduled User Testing as well as tasks for iteration 5 and 6. Other developers proceed with development.
7 11

6 low
1 high

The bugs are:

Unable to stop users from copying PDF's content (high) Decryption of spreadsheet not working (low) Encryption of spreadsheet not working (low) No functions to up/downvote threads (low) Unable to tag threads (low) Subscribe function for students not available (low) Unable to filter profanity in forum threads (low)

PM assigned developers to complete missing use cases. More bugfixing time allocated to this iteration.
10 16

16 low

The bugs are:

Content overlap on phones or tablet due to the problems with responsive web. (low) Shop for material functions checkboxes is missing and preview image position touches edge of the container. (low) New discussion modal text color is white, inconsistent button feel and alignment. (low) New discussion modal no category should be the default option. (low) Alert says “Name and password changed successfully!” when only password is changed. (low) View all users remove the “>>” button when it reaches the last page. (low) Upload material page function title of the book is not shown after it is uploaded. (low) Discussion Forum error page happen after vote up. (low) Discussion forum should not let the number of view be clickable. (low) Discussion forum add new discussion pop up box does not fit nicely. (low) Add category can submit the form without key in anything for the name of the category. (low) View pdf lack of a back button for admin. (low)

Resolve bugs immediately. PM assigned developers to Integrate UI. More bug fixing time allocated to this iteration, rescheduled User Testing as well as tasks for iteration 11. Other developers proceed with development.

Effort Metrics


Team CAVETZ Effort metric.png

Team CAVETZ Progress Bar.png

Iteration Planned Effort (Man hours) Actual Effort (Man hours) Effort Metric Score Action Taken Status
4 96 140 45.83% Re-estimate man hours for subsequent tasks. Spread out tasks across iterations more - with the last 3 iterations being allocated more tasks. Completed

Project Risks

6Sigma Risk Table.png

Risk Type Risk Event Likelihood Impact Category Prevention Measures Reactive Measures
Requirement risk Some corner cases and scenarios - especially about security and publishers’ functions - may not be fully captured in the requirement gathering phase. Medium High A We will plan test cases carefully and conduct thorough testing in order to detect corner cases and minimize the number of glitches We will update requirements as the development progresses along the way to cover these corner cases.
Technology Risk There might be inconsistency in the quality of encryption on different devices or among different types of files as our team has limited experience in implementing encryption methods. To mitigate this, our team decided to consult professors with expertise in security and do research on encryption implementation of different devices. Medium Medium B We chose a framework with support for strong encryption techniques and compatible with multiple platforms (Laravel) and conducted intensive research on security standards as well as implementation methods of these methods that are suitable to our project We will consult professors with expertise in security and arrange meetings with clients for alternative options
Client Management Risk There might be misunderstanding of requirements and expectation between us and our client since they are not familiar with IT techniques and limitations. High High A The team will communicate regularly with the client to ensure that the client is satisfied with our products and to keep us on track should any change need to be made To mitigate this, we will arrange irregular meetings with the sponsor to adjust our business and IT expectations should we know that a misunderstanding is present.

Risk Measure Logs

Iteration Risk Type Event description Measures taken Status
5 Technology Clients want their macro-enabled spreadsheets to be accessed online simultaneously by 50 students. However, we have a few problems:

- Online spreadsheets application do not support macros - Online excel spreadsheet is configured by Microsoft to be accessed only one at a time (there is a locking mechanism involved that we can't change) - Spreadsheets' formulas are our sponsors' intellectual properties, thus they cannot let the students copy it out and our team has very restricted access to the spreadsheets

Meeting with client was arranged to rectify the issue. We proposed using either d3.js to stimulate the spreadsheet or to let students have offline access to it with encryption mechanism involving the users' passwords. The client chose the second method and our team decided to consult multiple professors as well as our supervisor for help regarding encryption. Completed
6 Client management Clients' requirements for us to have all our plugins and libraries resided within our platform and for our platform to call no external service wasn't made clear at the beginning at the project. Thus, they expect our ebook highlighting & annotation functions which are calling an external service (Hypothes.is) to be ported inside our application code. However, there are no available PDF highlighting & annotation plugin that we can embed in our application and our team lacks the capability and time to develop such functions from scratch. Meeting with client was arranged to rectify the issue. However since the CEO on our sponsor side couldn't be there, conversation through emails following the meeting were carried out to reach a consensus of having an exception for this ebook highlighting & annotation function. Completed

Quality of Product

Intermediate Deliverables

Stage Specification Modules
Project Management Minutes Minutes
Metrics Schedule Metrics
Bug Metrics
Effort Metrics
Risk Risks
Change Management Change Management
Diagrams Use Diagrams
Software & Hardware Architecture Diagram
Request Processing Flow Diagram
Design Paper Prototype
UI Prototype (Justinmind)

User Testing

User Testing Date Venue Number of Testers
User Testing 1 3.30pm – 4pm Oct 28th 2016 SOA SR 3-1 and Off-Site 6 Epitrain Students
User Testing 2 11th Jan 2017 - 17th Jan 2017 Off-Site 6 SMU Students
User Testing 3 7pm – 7:30pm 21st Feb 2017 SIS SR 2-4 & Off-Site 4 Epitrain Students
User Testing 4 2pm - 8pm 6th Apr 2017 SIS CR B1-1 17 SMU Students

For more details about user testing: Click Here


Team Reflection

  • Throughout the duration of this project from acceptance to midterm, we have learnt the importance of open communication, being able to estimate our ability correctly and foreseeing possible technical roadblocks.

  • For communication, our perseverance in negotiating requirements for spreadsheets have paid off but on the other hand, we also encountered development setbacks due to lack of communication at certain times.

  • Regarding estimating our abilities and foreseeing technical roadblocks, we have learnt that extensive research needs to be done to prepare mitigation for everything that might go wrong, even if we think that it’s very simple.

  • We have also learnt the importance of working with one another as we have different strengths and weaknesses, which are complemented only in a group setting.