IS480 Team wiki: 2017T2 CAVETZ Final Wiki
- 1 Project Progress Summary
- 2 Technical Complexity
- 3 Project Management
- 4 Quality of Product
- 5 Reflection
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
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.
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.
- 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.
- 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:
- View after adding books
- Price calculation
- Calculation of final prices is done in the view for dynamic price calculation
- Calculation of final prices is done in the view via a phpScript
- Removing an item from shopping cart will also dynamically update the price
- Boilerplate function for next iteration’s ePayment module
- Table for session data
- Automatic logout for idle users – SessionTimeOut request handler
- Disallow concurrent login – Authentication controller, post-login
- Disallow concurrent login – Authentication controller, upon log out
- Disallow concurrent login – DisallowConcurrentLogin request handler
- Disallow concurrent login
- Authentication controller, post-login
- Login view page – display error messages
|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.
|Iteration||Bug Score||Bug Summary||Action Taken|
|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.|
|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.|
|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.|
|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|
|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
|Metrics||Schedule Metrics |
|Change Management||Change Management|
Software & Hardware Architecture Diagram
Request Processing Flow Diagram
UI Prototype (Justinmind)
|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
- 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.