Difference between revisions of "IS480 Team wiki: 2013T1 ThunderBolt Final wiki"
Line 189: | Line 189: | ||
[[Image:Calintegration3.png|400px]] | [[Image:Calintegration3.png|400px]] | ||
+ | |||
+ | ====Scalability==== | ||
+ | '''Concurrent Users'''<br> | ||
+ | During User Testing 1, our application froze during frequent intervals as the number of database connections that could be created by our application was breached. We traced this problem to the use of the default connection pool provided as part of Hibernate, which is heavily discouraged for production use. To prevent this issue, we have implemented a production-ready connection pool that will enable our application to reuse connection objects across the application and allow up to a 150 connections to the database. Although such a large number is not required, this comfortably prevents connections to the database from becoming a limiting constraint for system performance.<br> | ||
+ | |||
+ | ====Flexibility==== | ||
+ | After our initial client meetings, we came to realize that keeping things flexible is hugely beneficial to the system. Since then, one of our goals while building this system has been to minimize hard coding throughout the system.<br> | ||
+ | Over the last few iterations, we have put in significant effort into making various parts of our system customizable as per our client’s requirements. Here is summary of the customizable components:<br> | ||
+ | '''- Milestone Configuration:''' Administrators can create and edit the details for the different milestones in the system such as their name, order and required attendees.<br> | ||
+ | '''- Schedule Constraints:''' For each milestone, the duration of the presentation can be set. In addition to this, the start and end times of days can be set for each schedule being configured. Lastly, the visibility of terms and individual milestone schedules can be controlled to prevent unwanted user activity.<br> | ||
+ | '''- Faculty Booking Response Time:''' In order to be fair to all users, our system follows a system of automatic rejection to clear out bookings that haven’t been responded to in time.<br> | ||
+ | '''- Email & SMS Reminders:''' Our system sends emails to faculty to remind them of their pending tasks and SMSs to all attendees before the presentation. The administrator can control the timing of these notifications. <br> | ||
==<div style="background: #d5a10d; padding: 15px; font-weight: bold; line-height: 0.3em"><font color= #FFFFFF>Quality of product</font></div>== | ==<div style="background: #d5a10d; padding: 15px; font-weight: bold; line-height: 0.3em"><font color= #FFFFFF>Quality of product</font></div>== |
Revision as of 10:47, 26 November 2013
Mid-Term Wiki | Final Wiki |
Contents
Project Progress Summary
Immediate Deliverable
Click here download our final presentation slides
Link to deployment server: http://bit.ly/is480-ss
Link to live server : http://202.161.45.168/is480-scheduling/login.jsp
Our Key Accomplishments
- 99% of the project completed |
Project timeline overview
Click [1] to view our full project schedule.
Project Highlights
Video Pitch
Click here to watch the video!
Project Poster
Project Management
Project Status
We have completed all core, secondary and additional functionality of the system and its fully functional now
Click here to see more detail of our project status.
However, there are still some improvements that we would like to make after our final presentations:
- UI improvements as per our sponsors request
- Allow admin to change type of presentation
- Customize SMS to supervisors
- URL pointing to live server in emails should be configurable
- Allow the user to download an ICS file from the website
Project Schedule (Plan Vs Actual)
Click here to see plan vs actual schedule
Project Metrics
Schedule Metrics
The chart below shows the overview of schedule metrics for our entire project
Click here to understand how we derive our metrics and what are the action plans to each metric.
Bug Metrics
Click here to find out how we calculate our bug score and what are the respective action plans for different category of score.
Click here for detailed bug log:
Figure 1 shows the distribution of bug severity
Figure 2 further elaborate figure 1 by breaking down bug severity distribution over iteration
Figure 3 shows an overall bug score for our system as of now
Bugs logged here were discovered during internal testing which carried out at end of each iteration based on the test cases we created.Regression testing methodology was used to conduct internal testing.
Technology
Technical Complexity
Time-based View Selection
The problem with the IS480 schedules on the IS480 Wiki is that it is difficult to find exactly which one you are involved in. If you are a user of Term 1, and scheduling of the Acceptance presentations, the default top most item you can find on the IS480 Main Page would be Term 2. Finding which term you belong to, and the most important milestone, requires some effort.
Therefore, we have implemented an algorithm that does this work for you. The algorithm is as follows:
If there is only one term, the most important milestone is shown you. The default milestone is determined by, in descending order of importance:
Default Milestone
- The current time is within the range of dates of the milestone
- The current time is before the start date of the upcoming milestone
- The current time has passed the end date of the last milestone
If there are multiple terms, before the default milestone selection logic, the default term selection logic is determined by, in descending order of importance:
Default Term
- If you are a user of multiple terms, and the current time is at a point where both terms overlap, the earlier term is the default term because it is not complete yet.
- If you are a user of multiple terms and there are more pending bookings in the later term, the later term is the default term because it is more active.
- If you are a user of a future term and not the current term, the default term is the future term.
- If you are a non-user of any term and the current time is at a point where both terms overlap, the default term is the earlier term.
- If there is no current term and there are multiple future terms, the default term is the earliest future term.
- If there is no current term and there were multiple terms in the past, the default term is the latest past term.
Usability
The Calendar Interface
We have adopted the ever-familiar calendar interface present in the most popular calendars out there: Microsoft Outlook Calendar, Google Calendar, and Apple iCal.
Our old calendar interface:
Our new calendar interface:
Multifunctional Calendar
There are 5 different roles in the IS480 course - Course Coordinator, Administrator, Faculty (Supervisor/Reviewer), Student, and TA. We have developed a calendar interface that caters to each role in terms of visuals and functionality.
The functions of each role are listed below. New functions implemented since Midterm are marked in green.
Course Coordinator
- View a dashboard showing which teams haven't booked
- Override the entire booking approval process
- Book on behalf of teams
- Update bookings by Drag-N-Drop
- Invite SMU students and faculty
Administrator
- Track TA presentation sign ups
- Email TAs to sign up for a slot with a single click
- Do everything the Course Coordinator can do
Faculty
- View a dashboard showing which teams haven't booked
- Approve or Reject bookings
- Cancel bookings
- RSVP to presentations
- See only bookings that matter
- Indicate availability
Student
- RSVP to presentations
- Book with a single-click
- See only bookings that matter
- Invite SMU peers and faculty
- Have a visual trail of their booking history
TA
- Swap slots with other TAs
- See TA statistics
- RSVP to presentations
- See only bookings that matter
- Sign up for filming
User Management
Since the IS480 Matching System Team was not able to create their IS480 user management system, we had to implement our own. Some of the features of the system are:
- Database-like interface that is inter-linked between tabs
- Assignment of teams
- CRUD of all 5 roles
- Overview of faculty's teams
Personal Calendar Integration
We have considered that most users like to use their own personal calendars on their computers or mobile phones. Therefore, in every email that is sent from the system, an ICS file is attached. The iCalendar protocol (ICS files) is a standard calendar protocol that is compatible with many popular calendar clients. So far, our ICS files have been tested and supported on Microsoft Outlook Calendar, Google Calendar, and Apple iCal.
When a new booking is created, a Request email is sent with an ICS attachment. The tentative event would look like the following:
When it is approved, an Approval email is sent with the updated ICS attachment, which would updated the tentative event to a confirmed event:
If the booking details such as time and venue are updated, an Updated Booking email is sent with the updated ICS attachment, which would update the time and venue of the same event:
Scalability
Concurrent Users
During User Testing 1, our application froze during frequent intervals as the number of database connections that could be created by our application was breached. We traced this problem to the use of the default connection pool provided as part of Hibernate, which is heavily discouraged for production use. To prevent this issue, we have implemented a production-ready connection pool that will enable our application to reuse connection objects across the application and allow up to a 150 connections to the database. Although such a large number is not required, this comfortably prevents connections to the database from becoming a limiting constraint for system performance.
Flexibility
After our initial client meetings, we came to realize that keeping things flexible is hugely beneficial to the system. Since then, one of our goals while building this system has been to minimize hard coding throughout the system.
Over the last few iterations, we have put in significant effort into making various parts of our system customizable as per our client’s requirements. Here is summary of the customizable components:
- Milestone Configuration: Administrators can create and edit the details for the different milestones in the system such as their name, order and required attendees.
- Schedule Constraints: For each milestone, the duration of the presentation can be set. In addition to this, the start and end times of days can be set for each schedule being configured. Lastly, the visibility of terms and individual milestone schedules can be controlled to prevent unwanted user activity.
- Faculty Booking Response Time: In order to be fair to all users, our system follows a system of automatic rejection to clear out bookings that haven’t been responded to in time.
- Email & SMS Reminders: Our system sends emails to faculty to remind them of their pending tasks and SMSs to all attendees before the presentation. The administrator can control the timing of these notifications.
Quality of product
Intermediate Deliverables
Stage | Specification | Links |
---|---|---|
Project Management | Metrics | |
Minutes | ||
Requirements | Change Requests Log | |
Prototype | ||
Analysis | Use Case | |
Design | System Architecture Diagram | |
Testing | Internal Testing Test Plan | |
Internal Testing Test cases and results | ||
User Testing 1 | ||
User Testing 2 | ||
User Testing 3 |
Deployment
System was first deployed on 26 Sept, followed by second deployment on 22 Oct and final deployment with full functionality on 21 Nov 2013
Testing
Internal Testing
Internal Testing was conducted at end of each iteration. Total of 12 internal testings were carried out.
Click here for internal testing test plan
Click here for internal testing test cases by iterations
User Testing
3 User Testings were conducted with key users of the system
- 1st User Testing: 2 Sep
- 2nd User Testing: 4 Oct
- 3rd User Testing: 18 Nov
Click here to find out more about our User Testing
Reflection
Challenges and Learning Outcomes
Individual Learning Outcomes
Prakhar: "Technical development, Importance of a proactive approach, Effective Communication both internally and externally, Embracing challenges"
Xuling: "Though the FYP journey was long and tiring, I learnt many lessons along the way. Firstly, its difficult to manage expectations as different people want different things. Secondly, perseverance is important for ongoing faith. Finally, team dynamics determines the success of the project"
Tarlo: "User tests feedback helps to understand and prioritize tasks to ensure the usability of a system. Being able to test on a live system and participate in the development process, I have realized the importance of the business-IT linkage value and stakeholder expectation management."
Abhilash:
Suresh: "Although it was a great avenue for gathering user feedback, live deployment was challenging to handle at later stages of the project."