IS480 Team wiki: 2009T2 Vizions

From IS480
Jump to navigation Jump to search
Vizions - Logo draft (1).jpg
Team Vizions.jpg

Welcome to Vizions!

Our Team

We believe that each team member should have a dual role to play while undertaking development roles for the project.

Kenny Wong - Project Manager / Client Advocate
Stanley Gunawan - Lead System Developer / Database IC
Heriyono Sim - Lead System Designer / Technology IC
Yeoh Hui Xin - User Interface Designer / Asst. Project Manager

Our Supervisor

Kevin Steppe

Koop On!

‎Koop On! Logo
‎Vizions - Koop On! Poster

Project Description

Koop On!, a project for Venture (Venture), aims to instill value added services surrounding the bCODE’s coupon dispensing kiosk through development of system infrastructure to support configuration and management of promotional campaign on the bCODE kiosk. In addition, Koop On! utilizes a RIA (Rich Internet Application) web application to provide intuitive configuration workspace and administrate deployment of promotion campaigns on bCODE kiosks, targeted at shopping malls and tenants. In addition, Koop On! will enable Shopping malls to administrate and utilize this RIA to approve submitted promotion campaigns, while managing the tenants’ accounts and the bCODE kiosk(s).

Project Objectives

We aim to create a new systematic way of distribution and monitoring of discount coupons given at shopping mall, while enhancing shopping/discount-hunting experience of a consumer at the shopping mall.

We also desire to enhance the potential of the bCODE technology by creating a business platform that allows Venture to extend this to other segments of the retail sector. In addition, create IT infrastructure and support around the bCODE kiosk to increase the value of its service and improve the operation processes. In addition, streamline these operation processes by allowing configuration of the functions and design of the flash interface at the bCODE kiosk by Venture.

Actual Project Schedule Breakdown

‎Koop On! Initial Planned Project Timeline
‎Koop On! Actual Project Timeline
‎Koop On! Task Tracker *as of 15th April 2010
‎Koop On! Bug Tracker *as of 15th April 2010
Week Work to be done on JSP! Work to be done on Flash / CSS! Work to be done on Flex! Misc Work!
1 Setup Spring MVC 3.0 framework, Design web layout and css file structure, create a BlazeDS interaction with POC, Admin Page with Tenant Management n/a Setup Swiz Framework, set up basic components for configurator, learn to configure flex components with component designer XML Parser Config File and Database Design
2 CRUD functionalities for biz and user contacts, Template selector service Idle Pages, Product Promotion page (orbit based) Convert XML nodes into flex components, learn to configure flex component designs Integrate all the work and create first mini POC
3 Tenant Management, User Login and Logout, Setup basic layout for the web application pages n/a Update Flash Templates, Thumbnail Preview component n/a
4 Campaign Management Servlet, Improve and enhance tenant management, fill in content for Tenant Management functionalities n/a Create new campaign, add slide functionality n/a
5 Template Uploader, Template Selector Tenant profile, forms, view campaigns, campaign details Pick Template, Save Campaign Update Schedules. wiki and Venture
6 Home page, Image service, Campaign Service, Admin Approval Page Campaign approval. splash page Playback of campaign slides Start on Interim report, arrange meeting with Venture (for Kevin)
7 n/a Beautify existing jsp pages/ Edit campaign Integrate and cleanup, Interim Project Review (Reflection, report, meeting with both Venture and Kevin)
8 Image upload, Kiosk management, Admin campaign approval Enhance existing pages Autocomplete, Image Browser, Configure Coupon, Idle Page Configurator Prepare UAT
9 n/a Enhance Flash templates Idle Page configurator Show Venture prototype. do UAT
10 Campaign Location Management (Pulling of campaigns) Touch up JSPs Image Uploader and retrieval, Image gallery for selection, Communication with DB Postscript File Management, more flash templates
11 Enhance Campaign Management, Approval Management, Kiosk Management Touch up JSPs Idle Pages management, Error Handling Management Printing Integration involving XML (involving HTTPD on kiosk)
12 Coupon Dispensing Consolidation and UI revamping for tenant management + campaign management Debugging Prepare for Final UAT, Ensure ability to handle errors when there is error in connecting to database or no more promotion is available (expired bCode, or no more coupon to dispense, or coupon reach limit, or printer run of paper, or thermal printer is spoilt)
13 Debugging Continue to touch up and beautify Debugging Final UAT
14 Debugging Continue to touch up and beautify TBC Prepare for final presentation and report
15 Last minute debugging! Last minute touching up! Last minute debugging! Prepare for final presentation and report. And a reflection session.

TBC: To Be Confirmed.


Mr. Han Jok Kwang
Position: Chief Information Officer, Venture Corporation Limited
Involvement: Provides direction, user requirements and feedback for the project

Mr. Lee Woon Jeong
Position: Business Development Manager, Venture Corporation Limited
Involvement: Provides direction, user requirements and feedback for the project

Mr. Ho Meng Hua
Position: Senior Engineer, Venture Corporation Limited
Involvement: Technical supervisor; Provides technical assistance and feedback for the project

bCODE Service and Technology


The bCODE service (bCODE) is an independent out-of-home advertising network coupled with unique mobile, interactive and couponing capabilities that drives real-world revenue growth.

Consumers can receive text message (SMS) incentives and offers on their mobile phone that they then redeem at the innovative bCODE kiosks. They can also receive and redeem coupons when it is most convenient for them. Stores and brands get additional exposure to their promotional offers while boosting foot traffic and interest in their products.

A bCODE is an identifier that can be sent to a mobile phone/device and used as a ticket/voucher/identification or other type of token. The bCODE is an SMS message that can be read electronically from the screen of a mobile device. bCODEs can be sent by text message, and as they are just a standard SMS they can be received on over 99% of all devices.


They have many uses such as advertising, loyalty programs, promotions, ticketing and more. The text message is read from the screen of a mobile phone/device and decoded into a unique token ID. This ID can then be used to supply the consumers with their own customized experience depending on context. bCODE is used on a kiosk, called the MediaPlane Reader, or simply a bCODE kiosk that will verify the bCODE and launch the applications on the machine for the user. The MediaPlane Reader allows users to scan the bCODE and print out coupons, tickets or other information.

The Deliverables

Koop On! Overview

Koop On! consists of two main components, the flash and the web application with its own features and functionalities Koopondeliverables.jpg

Typical Scenario of usage of Koop On!

Koop On!’s typical usage scenario consist of a consumer accessing different pages on a bCODE kiosk and redeeming the coupon. The below flow shows the sequence of pages that appear on the kiosk as the consumer attempts to redeem their coupon(s).
Koop On! - Overview2.jpg

Koop On! Web Application

Allow tenants of a shopping mall to log in as users

Flex components to create and submit promotion campaigns to be deployed on the bCODE kiosks at the mall. The created promotion campaigns are either bCODE based (which requires a bCODE to be scanned before a coupon can be dispensed) or non-bCODE based (of which consumers browse through a catalog before selecting a coupon to be dispensed).

Allow a shopping mall representative (as the administrator) to approve or reject tenant submitted promotion campaigns to be deployed onto the bCODE kiosks.

Allow the administrator to manage promotion campaigns to be deployed on the bCODE kiosks, removing them (from the kiosks) when necessary or configuring the placement of the non-bCODE promotion campaigns on the flash application for the kiosk.

Allow the administrator to do tenant account management, creating, modifying and removing accounts to grant them access rights to the web application. Pushes out the latest promotion campaigns to the Flash Application deployed on the bCODE kiosks.

Koop On! Flash Application

Deployed on the bCODE kiosk, it allows consumers to print out coupons after choosing their selected discount,

Is remotely updated by the Web Application regarding promotion campaigns and their details.

Allows consumers to utilize an attractive user interface, enabling them to quickly select the promotion coupon they desire for printing.

The Flash Application has three basic pages (in the following sequence) in its user interface flow:

- Idle Pages: Displays a catalogue non-bCODE based promotion campaigns approved by the administrator. Consumers can scroll through the catalog to select their desired coupon.

- Preloader Page: Displays a loading screen immediately after a selection of the promotion or a successful scan is made. This page is an optional page which does not need to be configured and displayed on the kiosk.

- Promotion Campaign Pages: Dynamic display of miscellaneous details to engage the consumer before dispensing the coupon to them. The pages also include a page to let the consumer select a coupon for printing.

The Rabbit Rave Points! + Welfare Package

Raving Rabbid Project 'Metric'‎
Vizions Welfare Package

Every week, each member would secretly give the person, who they feel should be most appreciated for the week, a piece of colored star-shaped paper. Behind the paper would be written viewpoints on what he/she has done well, and what he/she could improve on, and why. This metric aims to be a non-complicated way to allow every member to recognize their strengths and weaknesses (e.g. role contributions) and to work better towards project goals.

Vizion's welfare package consists of a Vitamin C supplement plan where we consume vitamin c capsules to help our health throughout the entire FYP journey. ('Feeding time' happens during every Tuesday FYP Supervisor and Friday FYP meetings)

The Journey

Flex Based Configurator
Java Based web app
Koop On! Splash Page
Koop On! Promotion Campaign Configurator
Koop On! Template Selector
Finally getting the kiosk!
The bCode kiosk, running on Ubuntu (Hardy Heron)
Serious discussion in action!
A typical bCode
Finally being able to push a campaign onto the machine
Configuration of promotion campaign with proper templates!
Image gallery of configurator
We finally put something relevant as a splash page
Preparing for video capture at...0600 hours
Browsing through a campaign for shoes
Final outcome - sweetttt

During December (Before Week 1 )

Koop On! actually began as a project called IMBA (interactive media brand advertising) which was conceptualized on 14th November 2009. The project itself was pretty daunting as we had to prepare ourselves to understand both the business and technical aspects of the bCODE ecosystem pretty well. November passed rather slowly as the exams took their toil on us and we finally started work when December arrived. The first week of December flew pretty fast as we constantly amended the draft proposal to Kevin and course supervisor, Ben Gan. All these while debating intensely amongst ourselves over the technologies to be used and the key features and functionalities. Later during the second half of the month, Venture allowed us to work at their office and that was when we had the chance to 'play around' and understand the bCODE machine and do some test development work there as well! That was also when we coined the new name for the project called Koop On!

1. Meet up with Client(Venture)
2. Meet up with Instructor (Kevin)
3. Familiarize with the technologies we are using
4. Project Scope
5. Use Cases
6. Database Design
7. Class Diagrams
8. Design samples of logos for Client
9. Design samples of UI for Client
10. Update project schedule
11. Design selected UI and amend selected logo/s
12. Researched into appropriate tools to use. (Flex,Flash)
13. Submission of draft proposal
14. Weekly update for Venture (Every Friday)

During January (Weeks 1 to 4)

Semester began but it didn't seem everyone was very refreshed and ready for a brand new term. Much of the weeks leading to January kept us in school doing the most critical piece of document up to date, the Project Proposal. Despite all the weariness and tiredness that spilled over from December, we tried very hard to do as much work within January. Furthermore, we were hit badly when team-members started falling ill. It was through this that Stanley, the unofficially recognized de-facto welfare IC of the group, suggested we buy vitamin c supplements to fight the '15 week long' FYP war! Still, January was very much a slow period of time with little significant progress as we struggled with additional workload (from other modules, applying for overseas exchange =P, finding internships, and recovery from various sickness). Ultimately, we managed to conjure up the JSP user interface and a Design Configuratior for the flash template

Week 1

1. Submission of Final Proposal (Jan 4)
2. Working on Prototypes, getting started with Flash, Flex and Actionscript 3.0
3. Weekly Meeting arranged with Kevin (Tuesday 7pm)
3. BlazeDS with Spring Framework Integration, Swiz Flex Framework (Tuesday 7pm)
4. Started on the JSP and CSS pages
5. Project Approved! Yatta!

Week 2

1. Continued to do small tests (and POCs) on XML consumption within Flex and Flash
2. Postponed friday meeting with Venture to next monday instead
3. Set up database, do test on reading of XML as a string from the DB to the java application
4. Migrated code from Google Code to Kenai
5. Finalized development file structure for both web and flash app.
4. Migrated code from Google Code to Kenai
6. Sample flash template for product completed, embedded inside the test Flex applicaton
7. Continued doing the JSP pages (with html linkages)

Week 3

1. Created database for the java application
2. Met up with Venture on Monday regarding the project, while we do admit the project progress has been pretty slow so far, they seem quite fine with whatever we have done so far
3. Continued doing the jsp pages and javascripting
4. Had a good team talk after the weekly supervisor meeting, got advised by Kevin to let him know if he could help us with the technologies we are using!
5. Continued development work on the Flex based wizard configurator, finished doing a SlideList preview panel (like MS Power Point!)
6. Got up to speed over the learning of Actionscript 3!

Week 4

1. Develop Campaign Management Servlet
2. Improve tenant Management Funcitonalities and fill in JSP content for it
3. Develope a flow for creation of new campaigns and adding of slide

During February (Weeks 5 to 8)

We were definitely beginning to feel the heat on the development work for Koop On!, the frameworks were really technically challenging, and together with the amount of work coming from our other modules, the IS480 project seemed very daunting. The fear of not being able to finish this on time creep slowly into our minds as the weeks pass. It also took a toil on our physical self as we succumbed to ailments one by one (maybe the vitamin Cs were not working!). Regardless, we still rallied together to have a steady pace of development. The CNY week was a good break for us before we had the vacation week, but the tradeoffs were that we were low on productivity and half the group fell sick too. Thankfully, we managed to utilize the vacation week well to hit breakneck speed on development.

We managed to deliver a usable (albeit not very UI friendly) build which we deployed on the client's server (and for the first time!). But things didn't go without a hitch throughout the process as we had to shift repositories numerous times, deployment in school initially had some problems on their own (school network is truly slow). Still, Koop On! during february saw much improvement in terms of its layout within the configurator and the the back-end development of the system itself.

Week 5

1. OMG! Project Kenai is going to be shutdown, no wonder the the repository has been acting pretty weird these days. Time to utilize googlecode back again?
2. Continued to do the JSPs, template selector done.
3. Doing the flow management for swf files for playback
4. Revamped schedule for the next weeks ahead!

Week 6

1. After much contemplation of re-using Google Code, we decided to try out using Venture's server (together with VPN), however, it did not work out well, and we ended up settling on Codebeamer (SMU).
2. Started doing Mid Term Reflection
3. Template uploader completed for java side
4. Allow flex application to retrieve out the templates for template selector from database
5. Created a basic playback function in flex to listen for variables for every click event in template
6. Created two new flash templates and added new elements for flash template .xml
6a. product image has a "productImage" element
6b. background has a "background" element
6c. next button and cancel button has a "button" element

Week 7

1. Intensely preparing mid term reflection, revamping and coding, all these while supposedly celebrating Chinese Lunar New Year! ugh!
2. We are behind schedule for 3 days! Members fell sick, member has emergency matters to attend to... We will have to sacrifice our weekends...
3. Successfully deployed an alpha build to Venture's server
4. Submitted the mid term reflection with intermediate deliverables attached as a CD

Week 8

1. This was the week where development hit its peak
2. Saving and retrieval of promotion campaigns from database completed, as well as modification of details for each slide in the promo campaign
3. Changed layout for configurator
4. Started work on image gallery for configurator and uploader
5. Touched up JSPs for campaign and tenant management
6. Revamped the flash templates used for the configurator
7. Started preparing UAT testing for week 9
8. Touched up JSPs for campaign and tenant management

During March (Weeks 9 to 12)

Our Critical Month... A lot of achievements have accomplished! We manage to borrow the bCode kiosk from Venture and we start 'playing' with it! We managed to deploy on the kiosk! Yet, the main problem lies with PRINTING!! But we managed to SOLVE IT!! WooHuixin.yeoh.2007 APIs become our best friend. We experimented with bCode API, as well as Google API. We are so excited about the APIs until we even DREAMED about it... Hehe.. We heard that many other FYP teams have some issues with their clients which might affect their project. Phew, luckily we have Venture. We managed to maintain close relationships with them.
Some interesting things happened:
Hui Xin dreamed of Stanley being angry because she failed to finish her work on time. This made her to become a BIG panda in week 11.
Stanley got Gambit!
Hui Xin got KPMG!

Week 9

1. Revamped schedule for weeks 10 - 15
2. Met with Venture to gather feedback for the alpha deployment, also decided to consolidate features to make sure things work from end to end
3. Did an internal UAT testing (for bug tracking as well)
4. Work on the image gallery and uploading has hit a little snag. Need to speed up on this!
5. Continued work on touching up and fixing JSP and CSS issues. CSS issues are really a pain in the ass.

Week 10

1. Finally gotten the Image Gallery to be up and running!
2. Met with Venture to loan out the bCode kiosk!!! and understood how to utilize their bCode SDK
3. Continued work on touching up on the JSPs
4. Managed to fix the uploading and unzipping of zip files functionality for java and flex back-end

Week 11

1. Started on the Kiosk Management functionalities, but decided to drop Idle Pages Management functionality.
2. Managed to test out the remote deployment of campaign slides and printing on the kiosk... but ran into some issues
3. Started work on the Flex CSS, continued to do jsp touching up
4. Had some problems with the flex playback, might need to revamp this area =.=

Week 12

1. Still continuing on the Kiosk Management functionalities
2. Doing poster! Team photo-shoot on friday!
3. Managed to create some templates with the orbit features
4. Start to prepare for final UAT
5. Issues still persist with the printing, to go for postscript or pdf format?

During April (Weeks 12 to 17)

FYP IS OVER!!!! Ok, on a more serious note, this was the most busy period of time for us all. We had to wrap up, debug, test, prepare for exams and presentation, finish up many many stuff till the point we can just drop dead. Still, it has been a very long journey. too long perhaps. But it's over =). finally.

Week 13

1. Time to wrap up! Left with tying up the loose ends and finishing up the Kiosk Management and Graphing features of the web application
2. Started preparing for final UAT as well
3. Final presentation details have been finalized, time to start preparing!
4. Submitted team poster for project

Week 14

1. Oh No! Venture wants to present out project to their clients!!! =S
2. Playing with Keynote for beautiful slides for our final presentation..
3. Ah... Still tying up the loose ends...
4. Finalizing our Final report..
Stanley and Hui Xin has 3; Kenny has 1; Heri has 0!!!
6. Countdown for our final presentation. 1 WEEK LEFT!

Week 15

1. Last min debugging for exams!
2. Last min mugging for exams!
3. Last min tying up of loose ends!
4. Give FYP Presentation!!!!!!!!!!!!!!
5. Submit Final Reflection materials for submission!

Weeks 16 and 17

1. Meet up with client to settle deployment and issues and wrap up, tun through application and code with them one last time.
2. Prepare for poster day =)
3. Time to say goodbye...thank you.

The Minutes

October, November 2009

Minutes - 29 Oct 2009 (Media:Minutes_29_Oct_09_(with_Venture).doc)
Minutes - 13 Nov 2009 (Media:Minutes_13_Nov_09.doc)
Minutes - 19 Nov 2009 (Media:Minutes_19_Nov_09_(with_Venture).doc)
Minutes - 25 Nov 2009 (Media:Minutes_25_Nov_09_(with_Kevin).doc)

December 2009

Minutes - 01 Dec 2009 (Media:Minutes_01_Dec_09_(with_Venture).doc)
Minutes - 09 Dec 2009 (Media:Minutes_09_Dec_09.doc)
Minutes - 10 Dec 2009 (Media:Minutes_10_Dec_09_(with_Venture).doc)
Minutes - 16 Dec 2009 (Media:Minutes_16_Dec_09.doc)
Minutes - 30 Dec 2009 (Media:Minutes_30_Dec_09_(with_Venture).doc)

January 2010

Minutes - 07 Jan 2010 (Media:Minutes_07_Jan_10_(with_Kevin).doc)
Minutes - 12 Jan 2010 (Media:Minutes_12_Jan_10_(with_Kevin).doc)
Minutes - 18 Jan 2010 (Media:Minutes_18_Jan_10_(with_Venture).doc)
Minutes - 19 Jan 2010 (Media:Minutes_19_Jan_10_(with_Kevin).doc)
Minutes - 26 Jan 2010 (Media:Minutes_26_Jan_10_(with_Kevin).doc)

February 2010

Minutes - 01 Feb 2010 (Media:Minutes_01_Feb_10.doc)
Minutes - 02 Feb 2010 (Media:Minutes_02_Feb_10_(with_Kevin).doc)
Minutes - 09 Feb 2010 (Media:Minutes_09_Feb_10_(with_Kevin).doc)
Minutes - 09 Feb 2010 (Media:Minutes_09_Feb_10_(with_Venture).doc)
Minutes - 10 Feb 2010 (Media:Minutes_10_Feb_10.doc)
Minutes - 19 Feb 2010 (Media:Minutes_19_Feb_10_(with_Venture_&_Kevin).doc)
Minutes - 24 Feb 2010 (Media:Minutes_24_Feb_10_(with_Kevin).doc)

March 2010

Minutes - 02 Mar 2010 (Media:Minutes_02_Mar_10_(with_Kevin).doc)
Minutes - 04 Mar 2010 (Media:Minutes_04_Mar_10_(with_Venture).doc)
Minutes - 09 Mar 2010 (Media:Minutes_09_Mar_10_(with_Kevin).doc)
Minutes - 16 Mar 2010 (Media:Minutes_16_Mar_10_(with_Kevin).doc)
Minutes - 23 Mar 2010 (Media:Minutes_23_Mar_10_(with_Kevin).doc)
Minutes - 30 Mar 2010 (Media:Minutes_30_Mar_10_(with_Kevin).doc)

April 2010

Minutes - 06 Apr 2010 (Media:Minutes_06_Apr_10_(with_Kevin).doc)