IS480 Team wiki: 2011T1 Victorious Secrets

From IS480
Jump to navigation Jump to search
Victorious Secrets Team Logo

Final Wiki Page

Final Wiki Page

Welcome to Victorious Secrets Team Wiki Page

Our Team Members


Contact details:

  • Jinson, Xu Guangzu [1]
  • Heng Jia Qi [2]
  • Hayden, Tan Hui Wen [3]
  • Ma Cheng [4]

Project Overview

Project Description

This project involves developing a one-stop web portal which caters to both current and prospective international students who are seeking their education in Singapore in either the public or private sector. The main audience of this portal, however, is focusing at tertiary students who have their formed set of beliefs, thus experience greater difficulty in adapting to the local culture. The portal will be serving as a communication platform which will bring both international students and local students together and through discovering their common interest and passions, the local students can help the international students to integrate themselves into the local community better and faster. The portal will also integrate popular socializing tools, such as Facebook and Twitters to draw the attention of local students and move international students to get in touch with their local counterparts.


Being an education hub in the region, Singapore has always been the hot spot attraction for many students. Our structured education system, our pool of strong education professionals, together with numerous schools catering to different education levels, among many other reasons, have given Singapore the title of an education hub. Numerous students hailing from all over the world, especially from the Asia region such as China, Philippines, Indonesia, Vietnam, India and Thailand, have headed to Singapore to obtain their certificates – O-levels, A-levels, Bachelor degrees, Master degrees and even Doctorate degrees. Singapore's drive to become a global education hub has led to an annual increase in the number of international students studying in Singapore, with the figure expected to hit 150,000 by 2015. International students have to deal not only with administrative matters such as student passes and lodging, but also leading a health social life such as integration with the local community and assimilation to the social norms.

With the increasing number of international students in Singapore, we have noticed that there is no one-stop platform providing these international students with up-to-date information on Singapore’s education, local culture, laws, and other issues that they are concerned with. These issues can simply be solved by knowledge sharing among themselves or with local students most of the time. This limits the learning opportunities for them and leads to a less fruitful experience than they otherwise could have led. At the same time, it is also found out that many of these international students fail to integrate into the Singaporean community. This can be due to various reasons, including language and cultural barriers. These international students end up only interacting with others from their home country. International students study in private institutions are more prone to such issues, as there is minimal school level integration and nor they have cohesion support groups that public institutions such as NUS, NTU and SMU provide.


Our project sponsor Mr. Koh, over his many years of teaching at private local institutions, realized that there is a worrying knowledge gap that exists in the international students which prevent them from integrating into the local community. The root cause is that there is no common interface between the international students and the local community where a channel of communication does not exist. International students seldom have chances to communicate with local students outside of classroom. The situation is more intense in the private sector where international students almost form the entire class.

Our project will create an online portal for these international students. The online portal consists of a forum, education related information and materials, a comprehensive education directory with school search, an event organizer, to name a few. The aim of this portal is to allow potential international students to get a better understanding of Singapore’s education system, the schools available and other necessary information to prepare them for their long stay in Singapore. At the same time, this portal allows international students in Singapore to gather, to communicate, to share ideas, and most importantly interact with each other. We hope the portal can serve as a networking tool which can benefit these international students in the long run by opening up more opportunities for them.

The portal aims to fill up the knowledge gap by providing opportunities for the students to organize or participate in various community services / events and get into touch with both local and international students. The portal will also serve as a platform for these students to share their views and passion on many different topics and share a group blog, forum, and find like-minded individuals for future collaboration efforts.


  • A community project which will benefit the rapidly growing international student sector in Singapore
  • Use Drupal 7 to build the website / community portal with various customized functions / modules which covers a wide spectrum of topics
  • Integrate popular socializing media such as Facebook by enabling users to login using their Facebook account
  • Implement custom-coded content personalization to actively push site contents to members based on their site browsing history and activities


Role Name
Sponsor / Client Jonathan Koh – Founder, Grace Education International
Supervisor Professor Zheng Baihua
Reviewer Professor Archan Misra

Project Product Features

Core Features Descriptions
Group Forums Registered users can post and reply to threads in different interest based sub-forums within the site
School Search Users will be able to search through a database listing courses provided by different education institutions in Singapore. Details of schools such as their location, level of study provided, contact details, courses provided are available.
School Review Users will be able to post reviews and rate the different schools and courses available.
Event Organizer Users will be able to organize events and invite other users within the community/portal to the event. There will be email event notifications provided to users who have registered for the event as well as a map functionality to indicate event location. Users will also be able to view an aggregated list of events organized by external bodies, e.g. inSing.com, eventful.com, and yoursingapore.com.
Social Networking Users will be able to personalize their profiles, join groups, add friends, update statuses, upload images and videos. User can also send private message to other site users, and create new chat by inviting other site users within the community portal to either 1-on-1 or group chat. Anonymous users will be given a dummy chat account to interact with members once they visit the portal page to benefit from the community. In addition, all the chats support instant language translation which are supported by the Envolve Chat Module.
Content Personalization Content such as recommended upcoming events, recommended friends, and advertisements can be personalized to each user based on his or her preferences data aggregated via personal profile and sentiment analysis performed on their forum posts, comments, or reviews. Customised content personalization will be done using OpenAmplify API.
Mapping Integrated maps will be available for Events and Schools, and other location based functionality to provide navigational information for users within the portal. A standalone maps page will be available as well to allow users to look for specific places.
Advertisements Site administrators will be able to insert and manage advertisements, and dedicate advertisements to selected user groups.
Official Blog Content managers can publish official site news to the site blog in order to keep the users updated on the latest happenings
Social Media Integration Site content can be easily published to various social media platforms, allowing users to push content to their favorite social media sites, such as like the contents, reviews, posts etc. Users can also login to the site using their Facebook accounts.
Multi-language support There will be multi-language support implemented for some pages in the portal, mostly for informative pages. Languages supported will be the mother tongues spoken by the majority of the international student community in Singapore including English, Chinese, Malay, Indonesian, Thai, Burmese, Hindi, Japanese, Korean, Vietnamese etc.
Referral & Rewards* [Optional] Users can earn reward points to exchange for sponsored gifts by referring their friends to the site
Site Newsletter* [Optional] Content managers will be able to generate a site newsletter and mass email subscribed members

Project Modular Development Libraries and Resources

Functional Requirement

 Functional Requirements

UI & Site Designs

Home Design Option 1
Home Page
Home Design Option 1
Home Page
 UI & Site Design Resources

Development Environment

 Development Environment

Drupal Framework

 Drupal Framework

Project Risks Management

 Project Risks Management

Project Quality Management

Meeting Punctuality

Group agreement on $0.10 per min late. "Tracking spreadsheet":https://spreadsheets.google.com/spreadsheet/ccc?pli=1&key=0AqOBHsJaatWmdFBELXhTZHFDa3loc0h6NXlQRXR3Y0E&hl=en_US#gid=0

Group Calendar

You'll need to be logged in to googledocs and added to the calendar access list before you can view it. Group Calendar on Project Management Portal

Acceptance Testing

With short sprints that aim to produce working functionality at the end of each sprint, there has to be a way for the development team and the client to come up with a set of criteria to determine whether or not a particular sprint's implementation of functionality is considered 'complete' or 'accepted'.

The aim is to expand the high level functional requirements embodied within the user stories into a series of user interaction steps with expected output, and yet still allow sufficient room for creativity in implementation for the development team.

As such, our methodology involves the creation of acceptance tests for each user story written by the team in collaboration with the Product Owner during each Sprint Planning Meeting.

Points to note when writing these tests:

  • All use case scenarios for the user story should be covered in the test case.
  • The input data, the function usage steps, as well as the expected outcomes must be listed out so that they are verifiable.
  • The test cases need to be approved by the Product Owner.
  • The tests should be regressive to ensure that new functionality doesn't break existing functionality.
  • We try to attach at least low fidelity mockups of the functional screenflows to the acceptance tests documentation for each user story.

"User Acceptance Testing - A Business Analyst Perspective":http://businessanalystmentor.com/2009/02/21/user-acceptance-testing-business-analyst-perspective/

Dealing with Bugs in Scrum - Discussion


There're a variety of ways to deal with bugs in the scrum process, and i'm personally still not strongly decided on any one method. We (as a team), will need to experiment and find out which method (or even combination of methods) works best for us and our project.

  • Bugs within the Sprint Process

This method sees bugs as functionality, regardless of size, that does not work as intended by the client. The definition of 'not work as intended' is defined by acceptance tests written by the Business Analyst in concert with the Product Owner. In a properly executed test driven development process, bugs arising from acceptance testing at the end of each sprint should be minimal. The focus therefore is on properly implementing software engineering practices that ensure quality, as opposed to spending time tracking bugs. Bugs found are then fixed and the acceptance tests re-rerun. Only after the prototype passes all acceptance tests will the user stories be considered ready for review by the Product Owner in the Sprint Review meeting. Functionality that does not pass the tests by the end of the sprint duration is not presented in the Sprint Review, and is re-estimated and re-prioritized in the next Sprint Planning meeting.

  • Bugs as User Stories

This method generates user stories (or bug stories) for each bug found from sprint acceptance tests or usability bugs from user acceptance testing. Note that functional and technical bugs should mostly be caught and resolved in sprint acceptance tests. Our sprint acceptance tests kind of combine the traditional integration and system testing phases. The tests are conducted on our staging server, since we're supposed to practice continuous integration. We do not perform unit testing for most of the duration of the project since a lot of our work consists merely of integrating and modifying existing 3rd party modules. Benefit of this method is that it allows an easily interpretable bug tracking process that kind of also fits into our scrum process. Drawback is that bugs can range from extremely minor low level cases to highly complex ones that are on the level of a feature. If there are alot of bugs which are converted into bug stories, they can overwhelm and obscure the original user stories. Note that if there are so many bugs, it indicates the possibility that there is something wrong with our process itself. Bugs found and converted into user stories which cannot be resolved by the end of the sprint can then enter the main product backlog and be treated as a normal user story to be estimated and prioritized for the next sprint. As always, take note that having too many bugs indicates problems within our software development process.

  • Bugs Grouped within Generic Bug PBI

This custom method creates a generic bug type product backlog item for each sprint, and allocates X number of story points to it based on the velocity of the team for the past sprint and the probable velocity for this sprint to derive a rough estimate of how much time can be allocated to bug fixing for the current sprint. Individual bugs are then broken down into tasks to be done to fix the bugs within the generic bug PBI. Such bug tasks are given hour based time estimates as well as priority levels. Tasks that overflow from the allocated X story points for the current sprint's generic bug PBI are then moved and reprioritized into the next sprint's bug PBI. This is what we're currently testing out.

  • Bugs in Bug Fix Sprints

This method simply puts in a formal Bug Fix Sprint in-between every sprint.

Project Task & Schedule Management

Project Schedule & Milestones

Planned Schedule before Acceptance Presentation
Planned Schedule after Acceptance Presentation

Product Backlog

Product Backlog on Project Management Portal

Project Gantt Chart

Gantt Chart on Project Management Portal

Project Road Map

Road Map on Project Management Portal

UAT Schedule & Execution Plans

UAT I (3rd September - 9th September)

Functionality to be tested:

  1. Login
    1. Successful Kogin
    2. Warning Messages for Login Failure
  2. Social Networking
    1. Create Group
    2. Request & Accept Group Membership
    3. Post Content on Group Wall
    4. View and Edit User Profiles
    5. Add Friend & Accept Friend Request
    6. View Friends list
    7. Send and Receive Private Message
  3. Events
    1. View List of Event Details
    2. Sign-up for Event
    3. Create Event
    4. Event Invitation
  4. Forum
    1. Post Thread
    2. Reply Thread

Planned Schedule for UAT 1:

Date Action Plan
3rd Sept / Saturday Prepare Test Script / Internal Testing
4th Sept / Sunday Prepare Test Script / Internal Testing
5th Sept / Monday Test Group 1
6th Sept / Tuesday Test Group 2
7th Sept / Wednesday Test Group 3
8th Sept / Thursday Consolidate Test Results
9th Sept / Thursday Post Debriefing

For more details, please refer to our final wiki section

Project Documentation

Application Architecture

Application architecture.png

User Roles

User Role Role Responsibility & Description
Site Administrator Site administrators keep the CMS framework and modules used current by applying required upgrade patches when needed. They configure and maintain the modules used by the site as well as maintain the access control list for the roles and users of the site. In addition, they also schedule site backups, monitor site traffic and respond to email feedback.
Content Manager Content managers create, develop and manage content for the site and maintain a consistent look and feel throughout all pages. They are able to edit the taxonomies used by the site. They proofread submitted articles, events, schools and courses before publishing them.
Site Member Site members are users who have registered accounts with the site and can access all of the site features. They can also submit contents to the site which will need to be approved by the site content manager before being published.
Site Visitor Site visitors are users who visit the site but do not have any registered account or are not logged in. They can view all content but will not be able to submit anything new.

Use Cases

Category Description Deliverable
Project Analysis Use Case Diagram Use Cases Grouped by Functional Module

Project Meeting Minutes

Category Description Deliverable
Project Management Client Meeting Minutes Client Meeting Minutes
Supervisor Meeting Minutes Supervisor Meeting Minutes
Team Meeting Minutes Team Meeting Minutes

Presentation Materials

Project Acceptance Presentation

 Project Acceptance Presentation Slides

Project Live Demo

At the moment we are doing performance optimization for our project at client's production server and the staging server at http://vs.dev.innosavant.com has been taken off-line. You will be able to access the production server by 24th November 2011 when we go live for final presentation.

Learning Outcomes (LOMs)

S/N Learning Outcomes Applicable Actions to Achieve the Outcomes
1 IT Architecture Design and Development Skills
1.1 System Requirements Specification Skills YY
  • Gather the functional and non-functional requirements of Grace International during client meetings
  • Analyse business requirements and transfer them to system requirements
1.2 Software and IT Architecture Analysis and Design Skills YY
  • The team will design the solution architecture based analysis from system requirements
  • Accommodate the client's request to build an international students portal with various modules integrated and deployed
1.3 Implementation Skills YY
  • Implement the system, develop and integrate all the customized and third party functionality / modules
  • Deploy the prototype during each SCRUM sprint
  • Debug the program and conduct UATs for the developed product
1.4 Technology Application Skills YY
  • Learn and apply Drupal APIs & Framework
  • Integrate geo-spatial functionality into the portal site
  • Integrate social media tools such as Twitter API and Facebook API
  • Integrate social community tool such as phpBB and customize it for forum module
2 Project Management Skills
2.1 Scope Management Skills Y
  • Manage the scope of the project using SCRUM software engineering process - gives development flexibility to both the team and client
  • Ensure that the project scope is undertaken within the team's technical capability and can be delivered on time by constantly monitoring metrics including task status, overdue work percentage, number of bugs, and number of tasks to be completed in each sprint
2.2 Risks Management Skills Y
  • Evaluate the various possible risks and devise mitigation strategy to address the risks
  • ensure minimal disruption to the team and project due expected risks and constantly reflect and update the risk list to uncover new potential issues and prepare corresponding plans during each sprint review meeting
2.3 Project Integration and Time Management Skills YY
  • Allocate the due amount of work to each development iteration / sprint and ensure the new functionality to be well integrated into the prototype during each development sprint
  • The SCRUM master and time keeper will ensure the team follow the proposed timeline / schedule and meet the milestones in each sprint
2.4 Configuration Management Skills YY
  • The team uses Redmine project management software to assign tasks and track their progress
  • The team maintains code repositories and code version using tortoise SVN and project management portal
  • The team members will urge each other to follow the correct guidelines in committing code and assign team tasks
2.5 Quality Management Skills YY
  • During each sprint review meeting, the team will feedback on the quality of work delivered in the previous sprint and suggest for improvements
  • The team will receive the feedback from client and supervisor seriously and develop plans to accommodate any change to the project
  • The team will take UAT as a valuable opportunity to gather constructive feedback and make improvements to the product
3 Learning-to-Learn Skills
3.1 Methodology for Group Learning YY
  • Encourage sharing of knowledge among the team members and practice pair programming with devised schedule - facilitated by using Google Calendar with is integrated into the Redmine project management portal
3.2 Search Skills YY
  • Carry out research individually to resolve programming issues
  • Research materials from library or online resources to help complete assigned tasks
4 Collaboration Skills
4.1 Skills to Improve the Effectiveness of Group Processes and Work Products YY
  • The team will always keep discussions open and give constructive feedback to each other
  • The team will evaluate the overall and individual performance and reflect on what has or has not been done well during the previous sprint during sprint review meeting and suggest for improvements
5 Communication Skills
5.1 Presentation Skills YY
  • Present project and prototype to client and supervisor regularly and make sure they are well informed about the project and the team's progress
  • Conduct formal presentations for various stakeholders during project acceptance, mid-term and final presentations
5.2 Writing Skills YY
  • Document various project artifacts
  Meeting minutes
  User guide
  Project Proposal
  Project Presentation Materials
  • Communicate with various stakeholders and within the team to facilitate the project
  • Communicate with third party to obtain permissions for using third party contents or resources, such as for external event aggregation for the portal site
  • Prepare final deliverables and write individual self-reflections

Software and APIs

Programming Language & API

  • PHP
  • JQuery
  • Javascript
  • CSS
  • Drupal API
  • phpBB API
  • GoogleMaps API
  • Google Translate API
  • Facebook API

Development Platform

  • Eclipse IDE
  • phpMyAdmin
  • SQLyog

Web Service

  • Envolve Chat
  • MolloM (Spam Filtering)
  • OpenAmplify


  • MySQL

Web Server

  • Apache HTTP Server
  • Subversion
  • Tortoise SVN

Project management & Document Storage

  • Redmine
  • Wikipedia
  • Drop-box

Task Allocation & Bug Tracking

  • Redmine
  • Outlook
  • Google Doc