HeaderSIS.jpg

IS480 Team wiki: 2011T1 TheTalkies Final

From IS480
Jump to navigation Jump to search

Project Progress Summary

Main wiki page

Mid-term wiki page

Project Highlights:

Changes in Application

  • Synchronous to Asynchronous

This is a major change occurred in system architecture after midterm stage. When the application was first designed, the components and functions of the application had been set to work synchronously with each other due to the interdependence of the outcomes between them. This system design caused a lot of issues on the performance and usability of the application. So we decided to change it to work asynchronously without waiting for the results of other components. A lot of logical changes have been done and when the components are able to work asynchronously, there is a massive boost in performance as we expected.

Changes in Scope

  • Dropped Friend Stream Function

We dropped the function "Friend Stream" which we assigned as optional feature in our proposal. The reason is mainly due to the existence of serious performance issue in the application. The application's failure to run seamlessly during midterm period caused a setback in team progress. So we decided to drop the non-compulsory function "Friend Stream" to focus more on the quality attributes such as performance, reliability, etc.

  • Dropped Mobile Version Feature

We decided not to implement mobile version of our application which is assigned as optional feature in our proposal. One of the main reason is GermaniumWeb doesn't support mobile operation systems yet. Since our application's essence lies in integration of Twitter with 3D models of SMU, we decided not to continue on this feature to focus on improving quality of existing features.

Project Challenges:

  • Familiarizing with Germanium API and 3D Modelling

We don't have any experience regarding to 3D Modelling. We started the project early to have enough time to learn 3D Modelling ourselves. Moreover, we divided the team into 3 groups in the way that one group will learn 3D Modelling, one group learn GermaniumAPI and the other for Twitter. After every meeting, we learn from each other. This definitely help the team to have stronger bonding and accelerate with specialization. Moreover, we had a few times of consultation and hand-on learning from GermaniumWeb Office for both Germanium API and 3D Modelling.

  • Learning Twitter API and filtering results

Connection with Twitter using OAuth is not easy initially because it involves a lot of steps going back and forth from Twitter Server and client side and involving session keys. Once we can connect to Twitter server, it is easy to use RESTful API because of its comprehensive tutorials and documentations. However, it may return the false dataset for geo-location . So, we have to implement another layer of filtering for geo-location result set.

Project Achievements:

  • Schedule

When we were scheduling our project, we tried to plan it in such a way that the coding of functional requirements could be finished as early as prior to midterm presentation. We pushed all the bug-fix and performance-tuning tasks of each function to the iterations in post-midterm period. This approach clearly helps us in preventing our team from using "Waterfall Process" involuntarily in which we might never re-visit or revise it again when we finished a feature. The agile methodology we used not only forces us to go over to the features we previously developed for bug-fixing and backward compatibility checking but also gives the stakeholders (sponsor and users) an overview idea of how each of the features works and interrelations between them.

  • Process

Although it is not new, meetings every beginning and end of iteration help the team focus on schedule. We check the status of tasks from current iterations and we plan the tasks for coming iteration in such meeting. It provides us flexibility so that we can always adjust the time and the tasks according to the current situations.

  • Teamwork

Our application has 3 main parts: GermaniumWeb, Twitter, Back-end. Each of us have a hand on every part of the application. So, the application stands out as a consistent and cohesive application and it reflects teamwork rather than putting 6 separate parts together. As a team, we learned and mastered Twitter API and GermaniumWeb API.

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.

Iterations Planned Actual Comments
1 Customer CRUD 1 Sept 2010 25 Aug 2010 Fiona took the Sales CRUD as well.
Trend Analytic 1 Sept 2010 15 Sept 2010 Ben is too busy and pushed iteration 1 back
2 User tutorial 1 Oct 2010 Removed proposed by Ben
Psycho analysis 1 Oct 2010 New module proposed by sponsor


Iteration No Planned Actual Comments
1 3D Socializer
  • PHP Web Server
  • MySQL Database
  • Germanium API Server
  • Currently PHP Server and MySQL database are hosted on PHPFog and it is automatically updated using Git version control system. PHP server will process the client's request.
  • Database stores the predefined keywords for our application. It also stores the trending keywords, keywords tweeted and the count of each keywords for each trend.
  • Although Germanium API is hosted on sponsor's server, Germanium plays a significant role in our application. It provides us all the functions relating to showing 3D models and interaction with 3D models.
2 Twitter
  • RESTful Search API
  • RESTful Picture Server
  • Twitter provides tweets through RESTful Search API for both client and server side.
  • Client will request profile picture of each tweet to be shown on 3D model.
3 Clients
  • Windows Browser (with Germanium Plugin)
  • Currently, GermaniumWeb can only support Windows Operation Systems. Users need to install Germanium Plugin to be able to render the 3D models and the application.
4 Cron Server
  • Web Server
  • Our own server will trigger separately trend extraction scripts every 1 hour. These scripts will pull tweets around SMU and store the contained keywords in the database. Calculation and processing counts of each trends will also be trigger by cron server at the same time.
  • Protection of those server side codes are also implemented. We allowed this to be able to run on client side directly for the debugging and development purpose. However, those direct calls from users won't be able to add data into the database.

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.

Technical Complexity:

Describe and list the technical complexity of your project in order of highest complexity first. For example, deploying on iPhone using Objective-C, customizing Drupal with own database, quick search for shortest flight path, database structure, etc.

Quality of product

Project Deliverables:

List the artifacts produced for this project. The entire deliverable can be submitted in a separate thumb drive, web repository or place in the IS480 team wiki.

Stage Specification Modules
Project Management Minutes Sponsor weeks -10 -5 3 7 Supervisor weeks -2 3 5 7
Metrics Bug metrics
Requirements Story cards CRUD Customer, Trend Analytic
Analysis Use case overall
System Sequence Diagram client, server
Business Process Diagram
Screen Shots CRUD Customer, Trend Analysis
Design ER Diagram 1, 2, 3
Class Diagram 1, 2, 3
Testing Test plan instructions
Handover Manuals User tutorial, Developer manual, Setup manual
Code client server
Deployment Diagram instructions

Not all parts of the deliverables are necessary but the evidence should be convincing of the scope.

Quality:

Explain the quality attributes (non functional) of your project deliverable. Have you designed the architecture, use a design pattern, etc? Does your architecture address scalability, performance, reliability, availability, fault tolerance, usability, etc. Does your design address maintainability, flexibility, configuration, etc. Be brief here but you can link to diagrams or code detail pages. Do not repeat the technical complexity part, link to it if necessary.

Performance and Scalability

Although it is a web application, 3DSocializer does most of its functions at client side using client side scripting technology such as Javascript. So the major part of application will not burden much on the server resource which adds scalability in terms of server resources. However, it has a limited scalability on the number of tweets that it can handle in a period of time. The issue is identifiable when a large amount of tweet feeds are returned from twitter in a very short period of time, the application in user's browser will have some slow responses. This scalability issue is mainly due to processing in some resource intensive components such as 3D which is not easily solvable by the team.

Configurability

Some of the configurable parameters of the application are defined in an XML formatted config file.

Maintainability

A code organization guide is documented for easier maintainability of the source codes in the future.

Deployment:

Application has been deployed at 3DSocializer

Testing:

Describe the testing done on your system. For example, the number of UAT, tester profile, test cases, survey results, issue tracker, bug reports, etc.

Reflection

Compile common lessons and reflection for the team and for each team member. Be brief.

Team Reflection:

Key lessons learned – indicating where the team improved, or would do things differently next time. You may refer to the learning outcome summary in your proposal. A very short checklist style will suffice. It would be very convincing if the knowledge is share at the wiki knowledge base and linked here.

We learned Twitter ( knowledge base).

We learned how to use GermaniumWeb platform to create 3D application on web ( knowledge base).

Individual Reflection:

Describe in a paragraph, the key areas of learning or improvement. These should be personal areas of growth or learning. Each individual should list his/her effort, responsibility, actual contributions and personal reflection. Do not repeat team project contributions or member roles. Link if necessary.

Sometimes, the client writes a report to feedback on the system; this sponsor report can be included or linked from here.