HeaderSIS.jpg

Difference between revisions of "IS480 Final Wiki: 2011T1 Discover Linkage"

From IS480
Jump to navigation Jump to search
 
(4 intermediate revisions by the same user not shown)
Line 41: Line 41:
  
  
[[Image:DiscoverLinkage_UseCase5.jpg|500px]]
+
[[Image:DiscoverLinkage_usecase3.jpg|500px]]
  
 
==Project Management==
 
==Project Management==
Line 84: Line 84:
 
'''Bug Metric Analysis'''
 
'''Bug Metric Analysis'''
  
[[Image:Discover_Linkage_BugMetrics2.jpg | 600px]]
+
[[Image:DiscoverLinkage_bugs.jpg | 600px]]
  
  
Line 143: Line 143:
  
 
===Technical Complexity===
 
===Technical Complexity===
 
* The idea of allocating every user passion to a combined forum is totally new to us. Designing the database with CakePHP convention was the first technical complexity we faced. CakePHP has its own set of convention and we had to follow the convention strictly together with the planning of the ER-diagram of the system.
 
 
  
 
* The importance of JQuery was later identified by us. Thus, we had to learn a new front-end framework which was totally different from any back-end languages. As JQuery uses chained methods, it was a major challenge for us to understand its convention. Apart from JQuery, the integration of JQuery with CakePHP was another drawback for our team. CakePHP has its own set of JavaScript framework (prototype). However, it was very limited. There were many examples available for JQuery and not prototype. Thus, the team had to choose JQuery as prototype has lack of examples on the net. The team faced another challenge in making CakePHP back-end coding integrate with JQuery.
 
* The importance of JQuery was later identified by us. Thus, we had to learn a new front-end framework which was totally different from any back-end languages. As JQuery uses chained methods, it was a major challenge for us to understand its convention. Apart from JQuery, the integration of JQuery with CakePHP was another drawback for our team. CakePHP has its own set of JavaScript framework (prototype). However, it was very limited. There were many examples available for JQuery and not prototype. Thus, the team had to choose JQuery as prototype has lack of examples on the net. The team faced another challenge in making CakePHP back-end coding integrate with JQuery.
Line 162: Line 159:
  
 
           - Google prevented map from loading from Kenny’s IP address
 
           - Google prevented map from loading from Kenny’s IP address
 +
  
 
* YouTube video's JQuery became an issue as we did not know how to extract the thumbnail image, the title and the description of the YouTube video to be displayed in a nice JQuery form. Adding of video dynamically by either adding the video ID in YouTube or just the URL. Thus, it extends users to start conversation by posting interesting videos related to the passion. Thus, xconnect passion conversation encompass a collection of videos related to a passion a.k.a becoming a video repository of sorts
 
* YouTube video's JQuery became an issue as we did not know how to extract the thumbnail image, the title and the description of the YouTube video to be displayed in a nice JQuery form. Adding of video dynamically by either adding the video ID in YouTube or just the URL. Thus, it extends users to start conversation by posting interesting videos related to the passion. Thus, xconnect passion conversation encompass a collection of videos related to a passion a.k.a becoming a video repository of sorts
 +
  
 
* Passion conversation is a channel to enable users to have discussions regarding any of their passion topics. Having this channel for any user to participate freely was a challenge for us because we had to take into consideration many of the norms that people are used to when it comes to forum-like discussions and also try and innovate something new. This is why we put in the new adding of videos and adding of location to start a topic by passion.
 
* Passion conversation is a channel to enable users to have discussions regarding any of their passion topics. Having this channel for any user to participate freely was a challenge for us because we had to take into consideration many of the norms that people are used to when it comes to forum-like discussions and also try and innovate something new. This is why we put in the new adding of videos and adding of location to start a topic by passion.
 +
  
 
* The search algorithm is complex because it combines searching by email, passion, user name and other attributes that are searchable for end users. The algorithm should not display the user twice even if satisfied more than 1 search criteria. Another complex algorithm that we have is the suggestion of friends based on the best fit passions.
 
* The search algorithm is complex because it combines searching by email, passion, user name and other attributes that are searchable for end users. The algorithm should not display the user twice even if satisfied more than 1 search criteria. Another complex algorithm that we have is the suggestion of friends based on the best fit passions.
Line 208: Line 208:
 
|rowspan="2"| Design
 
|rowspan="2"| Design
 
|| [http://en.wikipedia.org/wiki/Entity-relationship_model ER Diagram]
 
|| [http://en.wikipedia.org/wiki/Entity-relationship_model ER Diagram]
* [[Media:Entity Relationship Diagram1.jpg]]
+
* [[Media:DiscoverLinkage_ERD Draft v3.0.pdf]]
  
 
[http://en.wikipedia.org/wiki/System_sequence_diagram System Sequence Diagram]
 
[http://en.wikipedia.org/wiki/System_sequence_diagram System Sequence Diagram]
  
* [[Media:SSD_ProfileManagement.png]]
+
* [[Media:DiscoverLinkage_SSD.jpg]]
  
 
[http://en.wikipedia.org/wiki/Sequence_diagram Sequence Diagram]
 
[http://en.wikipedia.org/wiki/Sequence_diagram Sequence Diagram]

Latest revision as of 10:04, 22 November 2011

xConnect Logo.
xConnect Logo

Project Highlights

After our acceptance presentation, we had a discussion with our supervisor and client. All three parties agreed that there was a need to scope the project down as we were committing to too many functionalities to be coded with 14 weeks. We decided to merge Tribe Management together with Passion Conversation Management. Passion Conversation would be our unique factor.

  • During Iteration 1 (Construction Phase): The team uncovered the importance of JQuery (not proposed during acceptance) to our GUI and invested additional time & resources on JQuery research and implementation.


  • During Iteration 1 (Construction Phase): Our client wasn’t able to provide the server details, thus the team had to source and deploy the project on a separate free limited web hosting server. This delayed the mini-UAT and mid-term UAT because we had to wait till we get the final server from the sponsor.


  • During Iteration 2 (Construction Phase): Client provided the server details. The team migrated the codes into the new server. But client server was configured differently and we were not able to access the phpMyAdmin to insert the SQL statement. With a failure in database, the system encountered a single point of failure.


  • At the end of Iteration 2 (Construction Phase): More critical bugs were found and there was a need to stop the construction of new functions. Two new milestones were introduced after Iteration 2 and before Iteration 3. The two milestones were: (i) Feedback Integration and (ii) Bug Solving periods.


  • During Feedback Integration period, team found an interesting idea with YouTube video. Two team members were tasked to invest their time to research the feasibility. We wanted the users of the portal to be able to post YouTube videos in the portal and be able to watch it in the portal itself, without having to be redirected to the main YouTube webpage.


  • During Iteration 3 (Construction Phase): After the mid-term presentation, we again had a discussion with our supervisor and client. We then came to the conclusion that we had enough functionalities but what we did not have was depth into them. So we had to spend some time to discuss the details on how to execute the rest of the FYP journey. The Search and Connections Management algorithms are pretty complex at this stage.


  • During Iteration 4 (Construction Phase): We continued to improve on the Search and Connections Management. We also started research on geo-location services for people to start conversations based on locations. Coding for suggesting friends based on passion was a tough task and it is also one of our complex algorithms.


  • During Iteration 5 (Construction Phase): We started implementing the YouTube function and wrapping up all the coding for every functionality that we committed to. GUI enhancements were being done constantly in every iteration.


Use Case Diagram

DiscoverLinkage useCase1.jpg


DiscoverLinkage UseCase2.jpg


DiscoverLinkage UseCase3.jpg


DiscoverLinkage usecase3.jpg

Project Management

Project Status

DiscoverLinkage FinalStatus.jpg

Project Schedule (Plan Vs Actual)

In the initial planning stage, we admit to have over-estimated our capabilities and also not thinking enough whether the project was too high a scope for us to complete with 14 weeks. During the first few weeks of the term, we had to spend a lot of time on trying to cut down the scope to something more manageable for us and also acceptable for the sponsor.

As such, not everything went on as planned but soon after we locked down on the core features (e.g. Passion Conversation, Topic Management, Comment Management), we started on it while still also working on re-scoping the project. The scope of the project has definitely scaled down.

Please click on the link below to download the Excel spreadsheet of our schedule.

Discover Linkage xConnect Schedule


The images below show you our schedule over the past few weeks.


DiscoverLinkage Schedule1.jpg


DiscoverLinkage Schedule2 ppt1.jpg


DiscoverLinkage Schedule3.jpg

Project Metrics

Please click on the link below for more details on how our metrics are collected.



Bug Metric Analysis

DiscoverLinkage bugs.jpg





Stress Metric Analysis

Discover Linkage StressMetrics1.jpg


DiscoverLinkage Stress2.jpg





Performance Metric Analysis

DiscoverLinkage PerfMetric.jpg





Schedule Metric Analysis

Discover Linkage SchMetrics1.jpg

Project Risks

Over the course of 7 weeks, we have faced many risks that we had already identified during our acceptance phase of our project. Some of the risks that we encountered are new risks that we have not taken into account. The following table will show you the risks identified during acceptance, those identified during the 7 weeks and those we identified for the upcoming 7 weeks.


Project Risks - Identified During Acceptance

DiscoverLinkage RisksAcceptance.jpg


Project Risks - Identified For Post Mid-Term

DiscoverLinkage RisksMidTerm.jpg


Project Risks - Identified For Final

DiscoverLinkage Risk1.jpg


DiscoverLinkage Risk2.jpg


DiscoverLinkage Risk3.jpg

Technical Complexity

  • The importance of JQuery was later identified by us. Thus, we had to learn a new front-end framework which was totally different from any back-end languages. As JQuery uses chained methods, it was a major challenge for us to understand its convention. Apart from JQuery, the integration of JQuery with CakePHP was another drawback for our team. CakePHP has its own set of JavaScript framework (prototype). However, it was very limited. There were many examples available for JQuery and not prototype. Thus, the team had to choose JQuery as prototype has lack of examples on the net. The team faced another challenge in making CakePHP back-end coding integrate with JQuery.


  • Initially, the team had to source out its own server as the client was still in the midst of getting a server for us. We were using a free shared server that had many limitations. When the client got us a server, the team identified that the server was configured differently and thus, faced another technical problem in integrating the codes in the new server.


  • Google location which was initially proposed by the team and then removed is back up again on the map, literally and figuratively. After the mid-term presentation and after receiving some feedback from our facilitators, we realised the importance of Google Maps for the website. The location function adds more dynamic adding of location of a passion by enabling users the capacity to map a location and viewing a stream of the tagged location. A discovery made by the team, it is still in the process of enhancement. Some of the difficulties we faced were:
          - Placing the markers
          - Different countries, different address systems, difficult to retrieve country records
          - Info window cannot be resized to fit into our website
          - Google prevented map from loading from Kenny’s IP address


  • YouTube video's JQuery became an issue as we did not know how to extract the thumbnail image, the title and the description of the YouTube video to be displayed in a nice JQuery form. Adding of video dynamically by either adding the video ID in YouTube or just the URL. Thus, it extends users to start conversation by posting interesting videos related to the passion. Thus, xconnect passion conversation encompass a collection of videos related to a passion a.k.a becoming a video repository of sorts


  • Passion conversation is a channel to enable users to have discussions regarding any of their passion topics. Having this channel for any user to participate freely was a challenge for us because we had to take into consideration many of the norms that people are used to when it comes to forum-like discussions and also try and innovate something new. This is why we put in the new adding of videos and adding of location to start a topic by passion.


  • The search algorithm is complex because it combines searching by email, passion, user name and other attributes that are searchable for end users. The algorithm should not display the user twice even if satisfied more than 1 search criteria. Another complex algorithm that we have is the suggestion of friends based on the best fit passions.

Quality of product

Intermediate Deliverables

Stage Specification Modules
Project Management Minutes [Meeting Minutes Repository]
Metrics [Metrics Repository]
Proposal Project xConnect Proposal
Poster Project xConnect Poster
Analysis Use case [Acceptance Use Case Diagram]

[Mid-Term Use Case Diagram]

[Final Use Case Diagram]

Design ER Diagram

System Sequence Diagram

Sequence Diagram

Deployment

Please register for a new user account to access the system at the following link.

Deployed xConnect System

User Acceptance Testing

We deployed the system onto a server provided by the sponsor. We initially faced some problems with the server as it is being shared by TEDx Singapore and our project. We only had about 2GB space on the server which slowed down the response time. This was a problem that we tried to solve for some time by talking to our sponsor but in the end, we had to make do with the slow response time because the project would apparently be shifted to another server once it is further developed by any other FYP teams.


We had a total of 20 testers and most of them were students from SMU, NUS and NTU. Some of the testers were from different fields as well; medicine students, professional testers, businessmen, teachers and etc. Out of these testers, 6 were very important people whose feedback was highly valuable as they came from different backgrounds and hence, their feedback was varying and gave us a broader view of our strengths and limitations.

  • 1. Teacher
  • 2. Businessman
  • 3. Lawyer
  • 4. Engineer
  • 5. Scientist (UK)
  • 6. Deloitte Business-IT Analyst (US)


We had the testers test our web portal on 3 different browsers; IE 9, Google Chrome, Mozilla Firefox and we received positive comments from them stating that there were no differences in the outcome.


It was held on Week 12 – Friday-Sunday, 4th-6th October 2011 and we tested the following functionalities:

  • Registration
  • Login
  • Profile
  • Passion Conversation Management
  • Topic Management
  • Comment Management
  • Search
  • Tag Cloud


We did not provide the testers with any documentation because we wanted to observe them while they were testing the website. We timed them without them knowing this so that we could have an idea of how long they took to navigate the website so that it would help us improve the usability of the website. Below are some of our findings for the registration function:

DiscoverLinkage Registration1.jpg


DiscoverLinkage Registration2.jpg


UAT Comments

  • Registration

- Disallow users from entering more than one passion in the textbox

  • Connections

- User needs to see his pending friends that he has sent request. This can be added in the view all friends portion
- Disable 'Add Friend' button once you send a friend request

  • Search

- Shouldn't show all users by default
- Doesn’t prompt no results when searched for users that doesn’t exist

  • Profile

- Should't be able to edit other people's basic info/location

  • Passion Conversation

- Dates are wrong (invalid for conversation start, just wrong for replies)
- If you are not the creator of the topic or image, you should not be able to delete it

Team Reflection

As a team, we believe that the Iterative Approach is hugely beneficial in terms of communication with clients, supervisor and within the team. However, drawbacks might include lesser time for actual coding and more time and effort spent on meetings. Many of our meetings are taken up by project management and though it is an important and in fact a crucial part of the project, we were not able to concentrate so much on the technical aspect of the project. As important as project management is, technical aspect and coding is also an important part of the entire project.

Seeing as how we are 5 man team, in the beginning it was difficult for us to stick to our roles because everyone had different strengths and beliefs on how to approach a certain issue. It was only much into the term that we came up with a proper system to handle both project management and technical aspects of the project.

We also had to deal with team conflicts on commitment issues and different working styles adaptation issues. This has certainly slowed us down, but in a way, it helped us deal with such real world situations, which will only be a good thing for us in our individual careers.

Learning to code in an entirely new language was a steep learning curve for us but the many resources we had at hand helped us. The only issue we had was the lack of time to do in-depth learning before having to jump into coding. We understand the importance of having all the technologies sorted out way before term actually starts, which is why we now have taken steps to ensure we do not face any hiccups along the rest of our FYP journey. And true enough, we did not face many project management issues during the second phase of the FYP journey. Tasks mostly were on schedule and team dynamics were not really affected as we had already settled down into a proper rhythm of working.


Individual Reflection

Madhan:

We started with zero knowledge and were very worried about how we were going to execute a challenging project successfully. Our FYP journey was essentially not a smooth-sailing one but as a team, we made many discoveries and were very persistent in executing it. Our determination as a team, made us come this far. I am really proud that FYP has made me a more disciplined person and be persistent even when drawbacks appear.

Today, I am a confident person as I am able to take on huge projects and manage them well. I learnt from all the mistakes I committed and have emerged a better person in being able to deal with various team members and other stakeholders involved in the project.




Lionel:

As the Lead Software Developer, i have responsibilities towards the team with regards to coding. For me this is a new experience as i have never taken on a role as a core developer before. At first, i was quite skeptical about whether i could fulfill my responsibilities as the Lead Software Developer as my coding skills are quite mediocre but i decided to give it a shot. I struggle in the beginning when we decided on our project and framework as PHP was new to me.

I have learnt that team dynamics is very important. It is difficult for people with different backgrounds to come together and work closely with each other to achieve one same goal. Conflicts such as not able to work well with another team member do arise during the process and it becomes important to solve these conflicts before they become bigger and more serious, becoming detrimental to achieving the goal. Conflict management in the group becomes one of the important tasks. A 3rd party has to step into the parties that are having conflicts with each other and try to talk it out with the 2 parties. I have to take into account of the different personalities of each team member as different strategies and methods have to be adopted to deal with the different team members. Conflicts has to be managed well in order not to diminish the synergy between group members.

Together with our supervisor, Mr. Jason Woodard, we aim to deliver an easy-to-use yet comprehensive social networking site for our client, Mr. Dave Lim. Mr. Dave is one of the founding members of the TedX Singapore community. As we are the pioneer team that started this project, we have to code the entire project from scratch which poses a challenge for us as none of us are familiar with PHP coding. For me as the software Engineer, the learning curve is especially steep as I have to guide my fellow team members while they are coding initially on top of familiarizing myself with PHP coding. At times, I have to take up the challenge of being the project Manager when our project manager is away. During these times I have to ensure that the team is on schedule, and that each individual member is performing his/her allocated tasks. Through this project, I’ve learned to work together with people of different skillsets and mindsets.




Swetha:

My entire FYP journey can be described as a roller-coaster ride. There were many ups and downs that we faced. Especially during the initial few stages of the project, we felt demoralized at the lack of progress. In came our project supervisor, Asst. Professor Jason Woodard. He was never really harsh with us (except for one occasion when he felt we needed to progress a little faster and more efficiently than we were going. :) ) It was because of him that we felt motivated enough to keep continuing with the project throughout our darkest hours.

Our project sponsor, Mr. Dave Lim, was also another source of inspiration to us. During the brainstorming stage, we had many ideas to implement and we tried to do a lot more than we could handle. That was when we realised we were in over our heads and we took a step back and sifted for the more important and relevant functions to be implemented. It was a challenging task, especially since we were the first foundation team handling such a huge social networking portal. Dave helped us by scoping down the project to something that we could achieve within a span of 14 weeks. For that, we are glad that we have such an understanding sponsor.

As for my team dynamics, we were all mostly people who have worked together on other projects and so were comfortable with each other. Or so we thought. With the pressure of such a major module such as FYP, the wonderful dynamics that I counted upon started to crumble. It was then that we all realised the importance of discussing any issues with each other openly and sort out the issues. We also had many more lunches and dinners together so that we could take our minds off the FYP and just have some fun with friends.

Being the Database Developer was a tough task for me but I am proud to have undertaken it. It taught me a lot on creating an extremely well-thought out database design way before the project actually starts. This is so that we do not face any problems while coding. For us, we were constantly changing the structure of the database because we kept on discovering new tables, rows and columns that can be created or deleted and also because the requirements were not locked down right in the beginning. It was a tedious task to keep updating the documentation for the database design but it had to be done and I am glad to have done it well. My short career as a Database Developer has taught me a lot for which I am quite grateful. I will be using this knowledge for my career in the future.

I am glad to have been a part of this project to link passionate people up. I learnt many soft and technical skills.




Kenny:

It is an exciting experience to be able to work closely with my teammates for TedXSingapore, to build a social network for the sharing and spreading of passion. My reflections would be in two portions, first on client side management and on various portions of the project which I have handled- namely php coding and database structuring, project presentation, and client relationship handling.

Clear communication with a non-IT background can be difficult and sometimes tedious because 1) the client has no idea what sort of IT capabilities we have and hence it is difficult for the client to communicate what sort of IT functions he wants and whether we are capable of delivering, and 2) we have difficulties estimating if what the client wants is visible within the given timeframe and manpower and makes it hard for us to realize what sort of functionalities is doable within the allocated time. We mitigate this issue by establishing clear and direct communication and frequent meeting with our client, and lucky for us, our client is willing to spend his precious time meet up with us to discuss about the project in detail. Also through iterative approach we are able to change our project scope accordingly to our client’s requirements. On reflection, what could have been done better is to establish some sort of visual aid, diagrams, and pictures of functionalities during our first five meetings so as to have a clearer form of communication with the client. This would save a lot of time and makes the meetings much more efficient and effective. It was challenging to work with php codes as this is the first time I had the opportunity to code in php, and in cakephp framework which is new to most of us as well. We all had problems initially when we work with cakephp but it was only we started to have fixed coding period in school where we learned each other’s mistake and point out mistakes within the database structure, where we started to progress at a really fast pace with our coding technicality. On hindsight it would have been better if we started off with group coding straight away.

Project presentation was really well done and I was impressed with everyone’s presentation skills. Likewise with client relationship handling, we would try our best to come for every meet up with our client but it was unrealistic to have everyone presented for every meeting. But we still manage to have at least 66% of our members present for every client meeting and it is certainly not easy to accomplish with our busy schedules.




Manesh:

The final journey of my FYP has been extremely challenging and a tough ride. Developing a social networking portal from scratch was no easy task. The main emphasis of the portal was to connect people with similar passions. Being the main user interface designer, I realized I needed to equip myself with deep understanding and knowledge on graphical user interface designing. With the experience of conducting plentiful User Acceptance Tests (UAT), we gained valuable skills on how to accurately extract usability analysis from our targeted audiences.

There were numerous opportunities to learn new soft and technical skills and also to develop current skills in the process. Firstly, the project was intellectually stimulating and the technical knowledge gained will be irreplaceable. Secondly, bonding sessions with team members, project supervisor Professor Jason Woodard, sponsor Mr. Dave Lim are memorable moments which can be remembered for a long time. Thirdly, soft skills such as team conflict management skills, time management skills, project management skills were a few useful skills gained. Lastly, technical skills are an inseparable element.

Despite the challenges, the final outcome of the project has been fruitful and rewarding. The experience gained from this project will certainly influence how I take up related projects in future. On that note, I plan to invest more time in analyzing and building a proper execution strategy before actually starting on implementation.




Feedback

Asst. Professor Jason Woodard, Project Supervisor

xConnect illustrates the possibilities of a bold idea: connecting people who share passions. Fleshing out this idea was a daunting task, given the high expectations set by established players like Facebook and a crowded field of social networking startups. Dave Lim’s guidance was instrumental in helping the team narrow its focus to a simple site design and a targeted set of features that would differentiate xConnect and appeal to the TEDx Singapore community.”

The team worked hard and overcame many challenges to bring this vision to reality. The result is a product of their own passion – a convincing demonstration that there is still plenty of room for innovation in the social networking space, and an inspiration for future projects in this exciting area.

TEDx Singapore Founding Curator Dave Lim, Project Sponsor

The mandate for Project xConnect was a challenge from the start: Not less than to design and create a new, innovative purpose-built social network platform from scratch, requiring a fresh look at how humans connect and interact with each other. The team rose to this challenge with great enthusiasm and energy with a keen desire to achieve and to build something compelling for people.

They contributed numerous new ideas and introduced innovative features to enhance the product. Above all, we are impressed with the team's passion and dedication, which exceeded our expectations. It was a pleasure to collaborate and work with them from the start to their completion of the project.

Links to Mid-Term & Final Wiki

Back to Team Discover Linkage Main Wiki
Team Discover Linkage Midterm Wiki