HeaderSIS.jpg

Difference between revisions of "IS480 Team wiki: 2011T1 TheTalkies Midterm"

From IS480
Jump to navigation Jump to search
 
(14 intermediate revisions by one other user not shown)
Line 238: Line 238:
 
===Project Metrics:===
 
===Project Metrics:===
  
Summary of analysis for the metrics collected. You may refer to another page for the details about the metrics and how it is collected. <span style="color:red;">[To be done later]</span>
+
To be updated.
  
 
<br/>
 
<br/>
 +
 
===Project Risks:===
 
===Project Risks:===
  
Line 331: Line 332:
 
<br>
 
<br>
  
===Technical Complexity:===
+
=='''Technical Complexity'''==
  
Describe and list the technical complexity of your project in order of highest complexity first.
+
Twitter can show the live updates with time. Twitter API enables a lot of developers creative applications around Twitter. Germanium API enables web browsers to load the 3D models with Germanium plugin. So, we build an application that can show tweets in 3D model with Germanium API. Although individual technologies are easy, it creates a lot of challenges and complexity when we combined them.  
  
Twitter can show the live updates with time. Twitter API enables a lot of developers creative applications around Twitter. Germanium API enables web browsers to load the 3D models with Germanium plugin. So, we build an application that can show tweets in 3D model with Germanium API. Although individual technologies are easy, it creates a lot of challenges and complexity when we combined them.  
+
The following are the technical complexities of our project in order of highest complexity first.
  
 
====1. Page Refresh is not desired====
 
====1. Page Refresh is not desired====
  
Whenever page refresh, 3D model has to reload from start. Given the scale of our 3D model, reloading of the whole model in every page is not definitely desired. Our client pointed out this issue and we have to build whole application on this idea.  
+
Whenever page refresh, 3D model has to reload from start. Given the scale of our 3D model, reloading of the whole model in every page is not definitely desired. Our client pointed out this issue and we have to build whole application on this idea. So, our application becomes complicated in the way that we have to put all the features in one page and manipulate the content with the javascripts. We put this as the first complexity not because this is the most complicated feature but because this is the most abstract and an overview that will affect the whole application.
  
====2. Dynamic placemark====
+
====2. Dynamic placemark for real time update====
  
There are a lot of examples for static placemarks creation.  
+
Twitter can show the live updates. Whenever a user tweets, it can show up in the timeline very quickly. However, we have to implement that live and real time update feature in our application as well. Given the fact that the tweets are linked with placemarks and dynamically changing with time, updating the placemarks dynamically is not an easy task.
  
====3. Real time update====
+
It is easy to create static placemarks in Germanium API. However, the placemarks we are going to create is dynamic. The content will be changing. The creating and the removing of the placemarks are also linked with the tweets pulled from Twitter. Although placemarks are javascript objects, they don't have ID as index ID. For example, after created 5 placemarks in SIS level 4, we cannot know which placemark is created first and second automatically. We need to build another array and use it as a guide to identify the tweets and the placemarks. This is one of the most challenging task. At the same time it is one of the most important feature for our application. Not only showing tweets dynamically on 3D model but also linking the timeline and the 3D model to make it interactive really relied on this task. To make sure usability is smooth and the interface is intuitive, we tried and managed to overcome this challenge.
  
Twitter can show the live updates. Whenever a user tweets, it can show up in the timeline very quickly. However, we have to implement that live and real time update feature in our application as well. Given the fact that the tweets are linked with placemarks and dynamically changing with time, updating the placemarks dynamically is not an easy task.
+
====3. Categorising tweets with locations====
  
====4. Categorising tweets with locations====
+
We pulled tweets around SMU with using latitude and longitude of SMU. We also want to categorize the tweets based on building to be shown on the specific building. For example, when a user tweeted "I am now at #SISL2", we want to show that tweet on SIS building level 2. Using the hashtag helps us in 2 ways. Firstly, it helps us pick up tweets which doesn't have geo-location code. Secondly, it helps us differentiate and group the tweets according to the schools even in tweets pulled with geo-location. The important of this feature is very obvious in client side. However, server side or back end need to use this feature as well.
  
We pulled tweets around SMU with using latitude and longitude of SMU. We also want to categorize the tweets based on building to be shown on the specific building.  
+
====4. Getting trends different from twitter trends====
  
====5. Getting trends different from twitter trends====
+
To be able to decide the trends around SMU, we need to extract the trends which are different from normal trends from Twitter. We pull the tweets every 15 minutes. Then we have to use our own algorithm to count and extract the trends. Currently, we decided to use 10 as the threshold number of tweets that a topic can become trend around SMU in our application in 1 hr. For example, if a user is tweeting 9 times about #FYP in last 5 minutes. It won't show up in the trends list yet. After the server pick up the 10th tweets about #FYP around SMU, it will promoted to become Trend in our application. When another user clicks on #FYP on our application, he should see the tweets around and in SMU with #FYP hashtag. Server will counts the tweets hourly basis and promote the respective keywords into trends table. However, the server we are provided cannot enable the cron scripts. So, we have to explore a few possibilities such as Google Engine etc to substitute in cron jobs. Fortunately, one of the services suggested by sponsor satisfies our need.
  
To be able to decide the trends around SMU, we need to extract the trends which are different from normal trends from Twitter. We pull the tweets every 15 minutes. Then we have to use our own algorithm to count and extract the trends.  
+
====5. Building 3D model====
  
====6. Building 3D model====
+
Building 3D model is not easy if we don't say it is very challenging. 2 of our team members have to spend about 2 months to learn how to create 3D models in 3Ds Max. Although there are a lot of tutorials and examples regarding to the 3D modelling, we need to learn from start like drawing lines and circles. It is definitely not an easy journey for us. However, once a developer knows how to create a model from the floor plan and texturing techniques, it is very easy for other developers learn from the previous developer and help in modelling. Then it brings up another challenge of sharing the same texturing files and IDs. More than 2 developers are creating the models and so it means all of them need to sync the texturing files and IDs to be consist in the final models on the browser. For example, when the first developer create texture ID of 4 for glass walls, the rest developers have to follow the same ID and procedure as well. It seems easy and nice for end users yet developing and sharing among the developers is not an easy task.
 
 
Building 3D model is not easy if we don't say it is very challenging. 2 of our team members have to spend about 2 months to learn how to create 3D models in 3Ds Max. Although there are a lot of tutorials and examples regarding to the 3D modelling, we need to learn from start like drawing lines and circles. It is definitely not an easy journey for us.  
 
  
 
<br/>
 
<br/>
Line 421: Line 420:
 
</p>
 
</p>
  
<table border="0">
+
*14 Twitter User
 +
*7 non-Twitter User
  
<tr bgcolor="#6495ED">
+
* Total of 21 Respondents
<td width="200px">
+
<p>
Total Number of UAT Tester
+
<b>
</td>
+
<font size="3" color = "#00008B">Responses</font></b>
<td width="100px">
+
</p>
21
+
*<font color = "#8B008B">Home Button</font>
</td>
+
“very messy on 3D model because of the tweets and the names appear on the tweets”
</tr>
+
<br>
 
+
“quite messy with text on the building”
<tr bgcolor="#0000FF">
+
<br>
<td width="200px">
+
“so many white space”
<b>Tester Category</b>
+
*<font color = "#8B008B">Trend/ LostnFound</font>
</td>
+
“no animation while cursor is on the LostnFound icon”
</tr>
+
<br>
 
+
"no animation while cursor is on the Trends icon”
<tr bgcolor="#6495ED">
+
*<font color = "#8B008B">3D Models</font>
<td width="200px">
+
“text inside the bubble should have colorful and more nicer design”
Frequent Twitter User
+
<br>
</td>
+
“no animation while cursor is on the LostnFound icon”
<td width="100px">
 
14
 
</td>
 
</tr>
 
 
 
<tr bgcolor="#6495ED">
 
<td width="200px">
 
Non-Twitter User
 
</td>
 
<td width="100px">
 
7
 
</td>
 
</tr>
 
 
 
</table>
 
  
 
<p>
 
<p>
 
<b>
 
<b>
<font size="3" color = "#00008B">UAT Survey Results</font></b>
+
<font size="3" color = "#00008B">Analysis</font></b>
 
</p>
 
</p>
 +
 +
*77% of the surveyors recognize SMU buildings in 3D Model
 +
*Around 80% of them finds the eye control easy to use
 +
*Around 50% don’t like the size of profile picture and username appearing on 3D Model
 +
*Around 40% think that the font size in the bubble on 3D Model is large
 +
*67% doesn’t notice the difference between trend tweets and timeline tweets in timeline
 +
*Around 35%, browsing back and forth between timeline and trend is not smooth
 +
*For 80% of participants , searching attributes used in timeframe filter are acceptable
 +
*67% agree that filters are enough to get the desired tweet
  
 
=='''Reflection'''==
 
=='''Reflection'''==

Latest revision as of 09:46, 26 September 2011

Project Progress Summary

  • Between acceptance presentation(10 Aug 2011) and midterm presentation(26 Aug 2011), there were 3 iterations completed.
  • During iteration 3, our team has completed trend page in which users can see top 5 trends in SMU area. We also had completed School of Economics/School of Social Science (SESS) model.
  • During iteration 4, we have completed LostnFound page which is a kind of trending page. In this case, user can report what he has found and search what lost in school from our application, by using location key tags such as #SISL1, #SESSL2, #LIBRARYL3, etc. We also completed Library model.
  • During iteration 5, we had completed Tweet/Discuss and report function, in which both twitter user and non-twitter user can discuss, and report in Trend page and LostnFound page. In the mean time, we had completed School of Business (SOB) model.
  • We finished all the features planned for these 3 iteration at the end of iteration 5, even though, during iterations, we faced some delays and we had been behind schedule for up to a week, the cause of which will be mentioned details in Project Highlights.
  • For the time being, we are in the middle of 6th iteration. With iteration 5 finished, we have completed most of our main features, and in following iterations, we will be implementing back-end features such as statistics collection and fine-tuning of the app to increase the performance and user-friendliness of application. We are confident that our planned features for post mid-term presentation, can be done in time if all team members are putting the same efforts as they are doing right now.


Project Highlights:

Unexpected things happened along the way -

  • Germanium API was updated from 1.3 to 1.5 and our client wants us to use more updated version of API i.e. 1.5.
  • Some delay in schedule and team has put more efforts in order to catch up the schedule. The reason for that delay was mainly because almost all our team members involved in an cultural show event of one of our CCAs which was in first 3 weeks of school term. Although we anticipated some part of tight schedules beforehand, team members were busier and had to commit more effort in organizing the event than expected which led to decrease in individual as well as team efficiency. We had been behind the planned schedule for up to one week (7 days) in iteration 3. In subsequent iteration, we tried to catch up the planned schedule but the delay gap was too wide that we could not manage to be back on schedule as planned. However, we managed to narrow down the gap and the delay was reduced to 5 days which was recorded as further delay in iteration 4. Major catching up happened in iteration 5 when the event was over and the timetables for other classes were not as occupied. We maintained the momentum and the determination to complete the features in time as planned in this iteration. The better commitment from every team member allowed us to finish all the planned features for iteration 5 as well as those leftover tasks from previous iterations. Finally, after iteration 5, our team was back on track as planned in term of time.


Project Management

Provide more details about the status, schedule and the scope of the project. Describe the complexity of the project.

Project Status:

This is our team status on features listed in main wiki page.

Feature Status Confident Level (0-1) Comment
3D Model of school buildings 80% 1 Models of LKCSB, SIS, SESS and library done. SOA pending.
Timeline 90% 1 Fully functional. To add in some buttons according to new UI.
Trends 100% 1 Implemented and final.
LostnFound 90% 1 Implemented. UAT result pending.
Tweet/Discuss/Report 90% 1 Implemented. UAT result pending.
Statistic Collection and Error Logging 0% 0.9 Need to check server resources.
Friend Stream 0% 0.9 Need to research on twitter api
UI revamp 0% 1


Project Schedule (Plan Vs Actual):

Our team's project scope remains constant from the beginning to present stage. Until now, we implemented features according to plan and in iteration 6, we would be implementing Logging and Statistic function and building School Of Accountancy (SOA) model as plan. In iteration 7, we will implement UI revamp and Friend Stream function in following iteration.

Iterations Planned Actual Comments
3 (11 Aug - 24 Aug 2011) Modelling SESS 11 Aug - 19 Aug 2011 11 Aug - 22 Aug 2011 Aung and Soe Thet are responsible for building School of Social Sciences model and delay by 3 days.
Database 11 Aug - 19 Aug 2011 11 Aug - 19 Aug 2011 Thandar and Khaing come out with database structure and create database.
Server side (Trend Page) 11 Aug - 24 Aug 2011 11 Aug - 31 Aug 2011 Phyo and Thandar faced unexpected difficulties such as learning cron job, changing database structure to update trend keywords.
Client Side (Trend Page) 20 Aug - 24 Aug 2011 11 Aug - 29 Aug 2011 Soe Thet and Khaing need to wait for server side since there is delay in server side.
Germanium (Trend Page) 11 Aug - 24 Aug 2011 11 Aug - 31 Aug 2011 Moe Hein and Aung implement codes to connect the 3D model and the trend page accordingly.
Mock Up 11 Aug - 24 Aug 2011 11 Aug - 24 Aug 2011 Moe Hein and Aung create full mock up pages for wireframing as Sponsor requested.
Test Plan 11 Aug - 17 Aug 2011 11 Aug - 17 Aug 2011 Khaing and Aung create test plan for unit testing.
Misc 11 Aug - 24 Aug 2011 11 Aug - 24 Aug 2011 Khaing and Aung improve wiki based on the Acceptance Presentation Feedback.
4 (25 Aug - 7 Sep 2011) Leftover from iteration #3 25 Aug - 31 Aug 2011 25 Aug - 1 Sep 2011 Project Manager Soe Thet and the whole team were busy with Myanmar Festival Gala on 3rd September and so we delayed further
Server Side (Trend Page) 31 Aug - 7 Sep 2011 1 Sep - 9 Sep 2011 Phyo and Soe Thet finalize server side coding, test cron job and results
Client side (Lost and Found)
  • Filter by time and school
31 Aug - 7 Sep 2011 1 Sep - 10 Sep 2011 Aung and Soe Thet implement time filter in Lost and Found page based on Trend feature
3D Model of Library 31 Aug - 7 Sep 2011 1 Sep - 11 Sep 2011 Khaing and Aung was responsible to draw Library Model
Germanium
  • Port to API 1.5 from 1.3
  • BBL Object
  • Accordion Effect
31 Aug - 7 Sep 2011 1 Sep - 11 Sep 2011 Because of Germanium API changes, Moe Hein and Thandar adjust current codes as well as implement Accordion Effect in BBL Tree Object.
5 (8 Sep - 21 Sep 2011) Leftover from iteration #4 8 Sep - 13 Sep 2011 8 Sep - 13 Sep 2011 Project Manager Soe Thet and the whole team were able to finish implementing features from previous iteration and Testing.
Tweet/ Report/ Discuss 13 Sep - 21 Sep 2011 13 Sep - 21 Sep 2011 Aung and Phyo has finished tweet/report and discussion feature in Trend Page and LostnFound Page.
SOB 3D Model 13 Sep - 21 Sep 2011 13 Sep - 21 Sep 2011 Khaing was responsible to build School Of Business (SOB) model
Germanium (Level, Placemark Position) 13 Sep - 21 Sep 2011 13 Sep - 21 Sep 2011 Thandar set placemark position on Campus Ground and Level according to position #(hash tag).
UI Improvement 13 Sep - 21 Sep 2011 13 Sep - 21 Sep 2011 Moe Hein was responsible for User interface improvement and design changes for UAT1 and Mid-term presentation.


Project Metrics:

To be updated.


Project Risks:

No Risk Likelihood of Occurrence Impact on Project Mitigation Strategy
1. Schedule Risk
1.1 Underestimation of the time taken for a task Low (Previously Medium ) High
  • Burn Midnight oil
  • Get Help from the rest of the team members
2. Technical Risk
2.1 Unfamiliarity with twitter and Germanium APIs Low (Previously Medium) Low (Previously Medium)
  • Share information and technical skills with each others
2.2 Integration difficulties with Germanium and twitter (Placemarks) Low (Previously Medium) Low (Previously High)
  • Brainstorm together as a team
3. Performance Risk
3.1 Performance slowing down due to 3D loading and delays in thread pulling from twitter High Medium
  • Team plan to increase the site performance during iteration 7 and 8.
3.2 Twitter server downtimer Medium High
  • Has developed in a way that even the twitter server is down, the site will be running only showing 3D Models


Technical Complexity

Twitter can show the live updates with time. Twitter API enables a lot of developers creative applications around Twitter. Germanium API enables web browsers to load the 3D models with Germanium plugin. So, we build an application that can show tweets in 3D model with Germanium API. Although individual technologies are easy, it creates a lot of challenges and complexity when we combined them.

The following are the technical complexities of our project in order of highest complexity first.

1. Page Refresh is not desired

Whenever page refresh, 3D model has to reload from start. Given the scale of our 3D model, reloading of the whole model in every page is not definitely desired. Our client pointed out this issue and we have to build whole application on this idea. So, our application becomes complicated in the way that we have to put all the features in one page and manipulate the content with the javascripts. We put this as the first complexity not because this is the most complicated feature but because this is the most abstract and an overview that will affect the whole application.

2. Dynamic placemark for real time update

Twitter can show the live updates. Whenever a user tweets, it can show up in the timeline very quickly. However, we have to implement that live and real time update feature in our application as well. Given the fact that the tweets are linked with placemarks and dynamically changing with time, updating the placemarks dynamically is not an easy task.

It is easy to create static placemarks in Germanium API. However, the placemarks we are going to create is dynamic. The content will be changing. The creating and the removing of the placemarks are also linked with the tweets pulled from Twitter. Although placemarks are javascript objects, they don't have ID as index ID. For example, after created 5 placemarks in SIS level 4, we cannot know which placemark is created first and second automatically. We need to build another array and use it as a guide to identify the tweets and the placemarks. This is one of the most challenging task. At the same time it is one of the most important feature for our application. Not only showing tweets dynamically on 3D model but also linking the timeline and the 3D model to make it interactive really relied on this task. To make sure usability is smooth and the interface is intuitive, we tried and managed to overcome this challenge.

3. Categorising tweets with locations

We pulled tweets around SMU with using latitude and longitude of SMU. We also want to categorize the tweets based on building to be shown on the specific building. For example, when a user tweeted "I am now at #SISL2", we want to show that tweet on SIS building level 2. Using the hashtag helps us in 2 ways. Firstly, it helps us pick up tweets which doesn't have geo-location code. Secondly, it helps us differentiate and group the tweets according to the schools even in tweets pulled with geo-location. The important of this feature is very obvious in client side. However, server side or back end need to use this feature as well.

4. Getting trends different from twitter trends

To be able to decide the trends around SMU, we need to extract the trends which are different from normal trends from Twitter. We pull the tweets every 15 minutes. Then we have to use our own algorithm to count and extract the trends. Currently, we decided to use 10 as the threshold number of tweets that a topic can become trend around SMU in our application in 1 hr. For example, if a user is tweeting 9 times about #FYP in last 5 minutes. It won't show up in the trends list yet. After the server pick up the 10th tweets about #FYP around SMU, it will promoted to become Trend in our application. When another user clicks on #FYP on our application, he should see the tweets around and in SMU with #FYP hashtag. Server will counts the tweets hourly basis and promote the respective keywords into trends table. However, the server we are provided cannot enable the cron scripts. So, we have to explore a few possibilities such as Google Engine etc to substitute in cron jobs. Fortunately, one of the services suggested by sponsor satisfies our need.

5. Building 3D model

Building 3D model is not easy if we don't say it is very challenging. 2 of our team members have to spend about 2 months to learn how to create 3D models in 3Ds Max. Although there are a lot of tutorials and examples regarding to the 3D modelling, we need to learn from start like drawing lines and circles. It is definitely not an easy journey for us. However, once a developer knows how to create a model from the floor plan and texturing techniques, it is very easy for other developers learn from the previous developer and help in modelling. Then it brings up another challenge of sharing the same texturing files and IDs. More than 2 developers are creating the models and so it means all of them need to sync the texturing files and IDs to be consist in the final models on the browser. For example, when the first developer create texture ID of 4 for glass walls, the rest developers have to follow the same ID and procedure as well. It seems easy and nice for end users yet developing and sharing among the developers is not an easy task.


Quality of product

To provide flexibility and maintainability to our application, we planned to have a properties file in which we can modify different configurations of the application without having to look into codes.

Intermediate Deliverables:

Stage Specification Modules
Project Management Minutes Sponsor weeks - 2, 4, 6

Supervisor weeks - 2, 4, 6

Metrics Bug metrics
Features List, Planned Schedule and Actual Schedule Use Cases and Schedules
Requirements Wireframe Wireframe
Testing UAT 1 test plan and test cases UAT 1 Test Plan


Deployment

Our application can be accessed at http://3dsocializer.phpfogapp.com/


Testing:

The First UAT (24-25 Sept)

User Profile

  • 14 Twitter User
  • 7 non-Twitter User
  • Total of 21 Respondents

Responses

  • Home Button

“very messy on 3D model because of the tweets and the names appear on the tweets”
“quite messy with text on the building”
“so many white space”

  • Trend/ LostnFound

“no animation while cursor is on the LostnFound icon”
"no animation while cursor is on the Trends icon”

  • 3D Models

“text inside the bubble should have colorful and more nicer design”
“no animation while cursor is on the LostnFound icon”

Analysis

  • 77% of the surveyors recognize SMU buildings in 3D Model
  • Around 80% of them finds the eye control easy to use
  • Around 50% don’t like the size of profile picture and username appearing on 3D Model
  • Around 40% think that the font size in the bubble on 3D Model is large
  • 67% doesn’t notice the difference between trend tweets and timeline tweets in timeline
  • Around 35%, browsing back and forth between timeline and trend is not smooth
  • For 80% of participants , searching attributes used in timeframe filter are acceptable
  • 67% agree that filters are enough to get the desired tweet

Reflection

In this section, describe what have the team learn? Be brief. Sometimes, the client writes a report to feedback on the system; this sponsor report can be included or linked from here.

Team Reflection:

Any training and lesson learn? What are the take-away so far? It would be very convincing if the knowledge is share at the wiki knowledge base and linked here.

Benjamin Gan Reflection:

You may include individual reflection if that make sense at this point. The team is uncooperative and did not follow my instructions.