Difference between revisions of "IS480 Team wiki: 2013T2 Change-Makers Final Wiki"
Line 457: | Line 457: | ||
===<u>Team Reflection</u>=== | ===<u>Team Reflection</u>=== | ||
− | Despite our project being a small to medium sized project and only lasting a total of 8 months, the team has learnt that | + | Despite our project being a small to medium sized project and only lasting a total of 8 months, the team has learnt that communication is really an extremely key factor for a successful project. Also, we've learnt that with multiple primary and secondary stakeholders in our project, it is important that we properly managed the interests of each stakeholder but at the same time, continuously build a positive relationship with each of them. Lastly, it brings the greatest satisfaction to our team when we see the system we have painstakingly developed over the last few months being used and our client pleased and excited about the future of Envisage Education. |
===<u>Individual Reflection</u>=== | ===<u>Individual Reflection</u>=== |
Revision as of 21:55, 14 April 2014
Home | Team | Project Overview | Factor | Project Management | Project Documentation | Project Resources | Team Reflections |
Project Progress Summary
Download our Final Presentation Slides in:
View our web application here.
This page should NOT be too long. It should link to other pages in the IS480 team wiki. Do not repeat the proposal, midterm or other wiki information here. Highlight changes since midterm.
Describe the project progress briefly here. Is the project completed? Link to the final presentation slides and videos.
Project Highlights:
What unexpected events occurred and how were they handled?
Underestimated the complexity of creating forms
Project Challenges:
Underestimating the time needed to conduct our second user test
When our team initially planned for our user test with Yishun Town Secondary School, we thought that a testing period of 2 weeks was more than enough time for the participants to use the system and provide their feedback on it as the YSEP programme had already ended and the participants were simply transferring their documents from paper to the system. However, we did not expect that the students would be busy with their school and external activities and therefore, take a much longer time to complete the user test. In the end, we extended our user test an additional week which gave the students enough time to provide feedback for us.
Project Achievements:
- As of 18 March 2014, our system was live in beta mode for our user testing with Yishun Town Secondary School.
- As of 9 April 2014, Nan Chiau High School has started using our system for their YSEP programme that has just started.
- As of 13 April 2014, we have a total of 96 accounts in our system.
Project Management
Provide more details about the status, schedule and the scope of the project. Describe the complexity of the project.
Project Schedule (Plan Vs Actual):
Compare the project plan during midterm with the actual work done at this point. Briefly describe a summary here. Everything went as plan, everything has changed and the team is working on a new project with new sponsors or the supervisor is missing. A good source for this section comes from the project weekly report.
Provide a comparison of the plan and actual schedule. Has the project scope expanded or reduced? You can use the table below or your own gantt charts.
Sprint | Planned | Actual | Comments | ||
0 | Gathering Requirements | 23 Aug 2013 | Gathering Requirements | 23 Aug 2013 | Went as planned |
1 | System Login | 23 Sept 2013 | System Login | 23 Sept 2013 | Went as planned |
Manage Organizations | 23 Sept 2013 | Manage Organizations | 23 Sept 2013 | Went as planned | |
Manage Admin | 23 Sept 2013 | Manage Admin | 23 Sept 2013 | Went as planned | |
2 | Manage Beneficiaries | 07 Oct 2013 | Manage Beneficiaries | 07 Oct 2013 | Went as planned |
Manage Supervisors | 07 Oct 2013 | Manage Supervisors | 07 Oct 2013 | Went as planned | |
Manage Participants | 07 Oct 2013 | Manage Participants | 07 Oct 2013 | Went as planned | |
3 | Manage Programmes | 21 Oct 2013 | Manage Programmes | 21 Oct 2013 | Went as planned |
4 | Manage Projects | 04 Nov 2013 | Manage Projects | 04 Nov 2013 | Went as planned |
5 | Manage Sections | 18 Nov 2013 | Manage Sections | 18 Nov 2013 | Went as planned |
6 | Manage Forms - Section 1 | 02 Dec 2013 | Manage Forms - Section 1 | 02 Dec 2013 | Went as planned |
7 | Manage Forms - Section 2 | 16 Dec 2013 | Manage Forms - Section 2 | 16 Dec 2013 | Went as planned |
8 | Manage Forms - Section 3 | 30 Dec 2013 | Manage Forms - Section 3 | 30 Dec 2013 | Went as planned |
9 | Manage Forms - Section 5 | 13 Jan 2014 | Manage Forms - Section 5 | 13 Jan 2014 | Went as planned |
Manage Forms - Section 7 | 13 Jan 2014 | Manage Forms - Section 7 | 13 Jan 2014 | Went as planned | |
10 | Gamification - Points System, Progress Bar, Leaderboard | 27 Jan 2014 | Gamification - Points System, Progress Bar, Leaderboard | 27 Jan 2014 | Went as planned |
Manage Sections - Approve, Reject Sections | 27 Jan 2014 | Manage Sections - Approve, Reject Sections | 27 Jan 2014 | Went as planned | |
Manage Forms - Section 4, Upload/Download Files | 27 Jan 2014 | Manage Forms - Section 4, Upload/Download Files | 27 Jan 2014 | Went as planned | |
11 | Gamification - Points System, Positive Messages | 10 Feb 2014 | Gamification - Points System, Positive Messages | 10 Feb 2014 | Went as planned |
Update Account Settings | 10 Feb 2014 | Update Account Settings | 10 Feb 2014 | Went as planned | |
Notifications | 10 Feb 2014 | Notifications | 10 Feb 2014 | Went as planned | |
Manage Stage Photos | 10 Feb 2014 | Manage Stage Photos | 10 Feb 2014 | Went as planned | |
12 | Manage Tasks | 24 Feb 2014 | 13 March 2014 | Swapped Create Multiple Accounts due to UT | |
Manage Appointments | 24 Feb 2014 | Manage Appointments | 24 Feb 2014 | Went as planned | |
Manage Email Notifications | 24 Feb 2014 | Manage Email Notifications | 24 Feb 2014 | Went as planned | |
13 | User Testing & Final Revision | 10 Mar 2014 | User Testing & Final Revision | 10 Mar 2014 | Went as planned |
Manage Statistics | 10 Mar 2014 | Removed | Functionality merged under Manage Task | ||
Create Multiple Accounts | 10 Mar 2014 | 24 Feb 2014 | Swapped with Manage Task due to UT | ||
14 | User Testing & Final Revision | 24 Mar 2014 | User Testing & Final Revision | 24 Mar 2014 | Went as planned |
Project Metrics:
Sprint Backlog Metrics
Click here to find out how we calculate our sprint backlog score and the action plan.
View our Sprint Backlog:
here
Bug Metrics
Click here to find out how we calculate our bug score and the respective plan of action.
Click here to download our bug logs.
Our bug metrics only quantifies the bugs that were found during our internal user testing after the end of each sprint.
Overall breakdown of bug score
Distribution of bug severity
Bug severity per sprint
Technical Complexity:
Project Section
Due to the different requirements and specific functionalities needed to be displayed to different users on the same Project Section Page, the page requires multiple checks to identify who the current user is in order to display the correct view with the correct functions to the users. This include the following:
- Participants only have the Submit button view with the feedback given by Administrator, Supervisor and/or Beneficiary.
- Beneficiaries are not required to approve all sections of the project as Administrators and Supervisors do. Therefore, for sections that they are not required to approve, they should not have the Approve or Reject button displayed to them.
- Administrators are given rights to approve or reject sections on behalf of Supervisors and Beneficiaries on top of themselves. Therefore, their view require the approval and reject buttons for Supervisors and Beneficiaries as well.
- Supervisor In-Charge (IC) are in charge of all projects in programmes under the same organisation. Therefore, they have access to approve or reject sections in any project.
- Supervisors only have access to approve or reject sections in projects that they are involved in. However, if a Supervisor IC has already approved or rejected a section, the supervisor would not need to do so any more.
Gantt Chart
As one of the forms by Envisage Education require a Gantt Chart, our team found an external jQuery plugin to customized and use. However, the jQuery plugin has a unique way of recognizing the data inputs, therefore, we had to convert the data we retrieve from our database to the format which the plugin can understand, and then convert that data back to the original format of our database for the editing of tasks. Further, because Envisage required the functionality to allow the assigning of participants to be in charge of the various tasks, we had to built upon the jQuery plugin to allow a task page that would list out all the tasks and the users that are assigned to them.
Point System
Different points are allocated to different projects rather than to the individual users. However, all point notifications are notified to all participants in the selected project with the points when they log into the system. Points are also allocated when a participant submits the different project sections and different points are allocated when the different sections are approved. In order to allocate the points to the different approved sections, there is a need to first check if the section had been submitted before.
Converting Paper Forms to Web Forms
The current business process of our client is done through the use of a paper-based system; which means, all forms that Envisage Education creates for the students to use are printed onto hard copy to be filled in via paper and pen. These forms are created and customized specifically by Envisage Education for the purpose of the Youth Social Entrepreneurship Programmes (YSEP) they conduct. Due to the fact that our clients themselves did not have a specific idea and were not sure of how the forms should look, our team had to customized and design the forms from scratch for them, which creates some technical complexity when we design the forms.
Project Budget
Due to the fact that Project Budget Form is a form that is interlinked to the other form which allows the users to create new products, this requires multiple SQL queries that have to be joined and retrieved from multiple tables in order to display out the necessary information for the form.
Spin-the-Wheel
Initially we decided to use the code from http://www.jquery4u.com/animation/jquery-wheel-fortune-demo/ to do our wheel of fortune as it already contained the logic for randomly spinning to different degrees and resulting in different outputs as expected for a fortune wheel. The only problem we identified was that when we change the image of the wheel, we would have to stick to the precise dimensions of the image in the jsfiddle.
However, soon we realise that the scores detected by the javascript were not accurate. And we were in great difficulty troubleshooting the codes to find the root cause of the error. Eventually we had to come up with our own method that would not only predict the numbers correctly but also would adjust to changes in the dimensions of the image(Meaning we no longer had to worry too much about the exact width and height of the wheel as longs as the marker is at the top and horizontally centred with respect to the wheel).
Quality of Product
Project Deliverables:
Stage | Specification | Modules |
Team Minutes | ||
Schedule Metrics | ||
UI Prototype | ||
Screenshots | ||
Use Case Diagram | ||
ER Diagram | ||
User Testing Documentations | ||
User Test 2 Results | ||
User Manual, Developer and Setup manual | ||
client server |
Quality:
The system is build on the coding practices of the framework (Laravel). As such components of the system such as the queuing service could be easily replaced from the In memory service beanstalkd deployed in the server to Amazon SQS with only one line of configuration changes. Thus possible future demands could be met easily.
As the team also followed Object-oriented Programming (OOP), the concept of inheritance was used in defining classes for functions such as image uploading. And leveraging on the power of IOC containers of the framework, SimpleImageUploader (which uploads images to the application server) was registered to be created whenever an instance of ImageUploaderInterface is requested at any location in the application code. Therefore, switching to Amazon S3 would only require the defining of an AmazonImageUploader class that inherits the ImageUploader and registering the class as the instance for the application.
As there is unpredictability in the number of users using the system at any one time (due to the different programme sizes), we deployed our application together with beanstalkd(Queuing service) on the Digital Ocean cloud. Together with our code flexibility and options of a fast upgrade offered by Digital Ocean, expanding for future demand would be possible with little effort.
To cater for future development, the configurations (database connection, Queue connection and other settings ) are defined for localhost and production separately. The framework would automatically identify if the application is running on localhost or the production environment and apply the required settings accordingly. This would allow future developers of Envisage Education to easily work on the project.
Through our prototyping and user testing, our team has iteratively progressed on the user interface by carefully considering the feedback provided by the various stake holders to come up with a user-friendly application.
Deployment:
System has been deployed onto a cloud server (DigtialOcean) at http://128.199.202.213/ (staging server).
Log in Information
Role | Username | Password |
---|---|---|
Admin | test_admin | testadmin |
Beneficiary | test_beneficiary | testbeneficiary |
Supervisor-in-Charge | test_incharge | testincharge |
Supervisor | test_supervisor | testsupervisor |
Participant | s9021043b | testparticipant |
Testing:
Click here to learn more about how we conduct our internal and user tests.
Internal Testing
In additional to our unit testing and integration testing, based on the feedback we received during our mid-term presentation, our team has implemented our Regression Test through the help of Selenium IDE which creates HTML scripts (Selenium Tests) that can quickly perform a browser-based regression automation.
User Test
Since mid term, we have conducted an additional user test with real users of the system (Yishun Town Secondary School). As the participants of the user test had previously done their work on paper, the user test was aimed at comparing the new system with the paper-based system.
Summary of Findings
- Users found the system easy to use and intuitive
- Participants generally enjoy the gamification functions of the system
- Participants who used the online appointment function with their beneficiary found it useful
- Participants found filling in the forms online much easier and more organized compared to the paper-based
- Photos which are extremely large could not be uploaded into the system
- Admin and Supervisors prefer the online approval method versus the paper-based methods
- Admin and Supervisors found it easier to track the project progress via the system than on paper
- Users of the system said they would use it in the future
Click here to view more on our results from our user test.
Reflection
Team Reflection
Despite our project being a small to medium sized project and only lasting a total of 8 months, the team has learnt that communication is really an extremely key factor for a successful project. Also, we've learnt that with multiple primary and secondary stakeholders in our project, it is important that we properly managed the interests of each stakeholder but at the same time, continuously build a positive relationship with each of them. Lastly, it brings the greatest satisfaction to our team when we see the system we have painstakingly developed over the last few months being used and our client pleased and excited about the future of Envisage Education.
Individual Reflection
Qian Bi's Reflection:
There is no one best way to manage the team members in a project. Everyone has different working styles and have different schedule. Sometimes, unforeseen incidents might occur as well. It takes accumulated experience and lots of communication to lead a team well.
Rachel's Reflection:
When conducting user tests, no matter how hard you plan for the unforeseen circumstances, it is almost impossible to escape the clutches of Murphy's Law. I've learnt that I need to remain calm, composed but think quick when things do not go according to plan so that I can best come up with a strategy to fix or counter the issue. Also, I've also learnt that every stakeholder in any project has their own interests to protect, therefore, it is important to manage the expectations of the various stakeholders to ensure a successful project.
Benjos's Reflection:
Working in a team and being lead developer I learn the need to manage between requirements and development and allocating tasks according to the expertise of my developers. Because my developers have no prior expertise in the framework we are using, I pave way and lead them by providing them with the learning resources and guidance needed.I also understood the importance of a proper workflow when working on project’s with multiple developers.
Kean's Reflection:
As a front-end developer, this project has given me the opportunity to build a user-friendly system from scratch that will benefit not just our client, but also the community. And when I see students creating projects on our system to help the under-privileged in our society, that is the greatest satisfaction.
Keng Theng's Reflection:
I experienced what it is like to work with real clients and in a development team for a real system that is going to be deployed to improve a real business. I have learnt to consider system design pros and cons when trying to meet client’s requests. The backend design should provide good efficiency while trying to achieve good frontend functionalities. My exposure to Laravel framework and development of a complete web application will be useful to my future developments.
Sponsor Comment
The team thoroughly considered the needs of various stakeholders and thought of various ideas on how users will be effectively engaged and utilize the system. They managed to develop a system that would be employed throughout the programs we run in schools, playing a significant role in making the students learning process more meaningful.