HeaderSIS.jpg

NeűWorks Final Wiki

From IS480
Jump to navigation Jump to search

Neuworks logo transparent.gif


Project Progress Summary

The goal of this project was to create a brand new membership portal for the Asian Media Information and Communication Centre.

This new portal would encompass all of the client’s requirements which includes the ability to closely monitor intellectual disclosures and also put in place a content management system that allows researchers and academicians to submit, contribute contents to be shared with the academic community.

The system also eliminates the need for manual input in various essential functions needed by the organization. The entire process required the team to design, implement, test and deploy the web portal before December when the portal (www.amicasia.com) is due to be launched.

The duration of this project has been from August to the 30th of November 2010 and its allocated budget is estimated to be around SGD 500. This does not include the hosting service that the client will need to pay to upkeep the website.


Project Highlights

While there were some expected and anticipated changes to the requirements of the project functionalities and features, a number of unexpected events have impacted the project after the proposal was submitted.

Web Hosting Service (Week 2)

Client’s preference to use a web hosting service familiar to them

The entire project began on an upbeat note as the team was well equipped to handle the clients requirements and specifications. After commencing the coding sessions, as per our agreement with the client, we decided to compiled a proposal with a list of web hosting services that are suitable with Joomla and sent it to the client. However, in reply the client provided the details of his own web hosting service that he preferred us to use.

Although we conceded to the request, we soon realised that the web hosting service was incompatible with certain essential Joomla plugins that we required. As the client was away during this critical phase, we lost precious days trying to contact the client to resolve the issue. Eventually the problem was addressed and the client agreed to use a web hosting service that was more compatible with the needs of the new portal.

Shopping Cart Function (Week 5)

Changes in the Shopping Cart Function and Minor UAT Issues

The shopping cart function was a major hurdle for our team as we struggled to complete the function without some crucial details such as the client’s shipping, browser cache and integrating with user profile. There were also some requirements that the client had advised us to change based on their new regulations for shipping overseas. Thus, even though we had completed the function on time, the new requirements set us back by a few weeks as we had to re-visit the codes.

In addition, after a visit to the AMIC office, the client also requested to change a number of interface issues to enhance usability. As this was not scheduled by us in our timeline, these new user interface requirements also contributed to the delay.

New Requirement (Week 10)

Implementation of New Function

With our latest and most impressive function (Google Analytics) giving us problems, we decided to abandon this extra function and implement a more useful one to the client instead. Our team worked hard to create a social networking function that allows users and academicians to stay connected by sharing articles on Facebook/ Twitter and posting constant feedback for work done by others.

This function was rather well received by the client as it allowed us to fulfil one of their requirements which was to get the website to appeal to younger users and researchers as well.

Project Challenges

New Requirements - Setback 1 (week 8)

Introduction of new requirements by a temporary new “boss”

During the time when our main liaison from AMIC was overseas on business, we were asked to liaise with another representative who would give us feedback on our membership portal in his absence.

Much to our surprise, she came up with a brand new set of requirements for us to change the user interface based on her preference, instead of giving us feedback on our functions instead. Although we were stunned at first, we did take into account many of the changes she suggested and implemented them before our actual UAT with the AMIC employees.

But some of them were too time consuming and were constraint by our schedule. This problem was then mitigated when our main liaison was back from his trip as we updated him on our meeting and sorted out the matters with the person he asked to liaise with.

Project Crash - Setback 2 (week 9)

Google Analytics and Website Crashing Issues

As the UAT at the client’s office approached, we persevered on to finish the functions that we were tasked to do. Google Analytics, scheduled to be one of the last functions was proven to be a challenge to code and integrate with our portal. As we tried our best to make it work, the unthinkable happened and our website crashed during the process of integration.

Although we had a backup of our work in one of our team mate’s laptop, that laptop happened to be at CIT under repair and the resulting wait was crippling. Our major cause for concern was the fast approaching UAT, which with our portal down, was going to be impossible to carry out. To solve this problem, we liaised with the client

User Acceptance Testing (week 11)

After sorting out the issues and making the changes suggested by our main liaison, we headed back to our client’s office all prepared to conduct a UAT.

During the UAT we were given a number of useful feedbacks but mostly once again, based on the UI and not the functions. While the employees were satisfied with the functions provided on the website, many of them wanted us to change a number of minor UI issues that would make the portal more appealing to their target audience. Therefore keeping their comments in mind, we partially used the time we had after Week 11 to improve our User Interface as per their feedback.

Common Meeting Time

Meeting time is probably a common problem with all project teams but we would like to highlight it here as well. It was difficult at various times during the term to be able to schedule additional meetings when multiple modules had projects being completed at the same time.

Some members were busy at various times and therefore there were occasions where not all members were present. We have adopted a strategy whereby whoever was free should attend the meeting. In this way, there would always be at least a team member inside the project room. As a result, we could always share the current progress and what needed to be done.


Project Achievements

Event Function with Google Map

The Event function with Google Map was put in place of the failed attempt to create the Google Analytics function. This turned out to be an excellent idea and was much appreciated by our client.

Although it was challenging for us to implement it at first due to problems of embedding the google map function into the events page, we finally achieved success after an intense night of coding and managed to get it working successfully.

Shopping Cart

Although the client did not expressly request us to redo their shopping cart, we were asked to improve their current one. We did so by including the following new features along with improving their shopping cart UI.

  • One feature validates the country of the user and charges them using local and international currency.
  • Another feature allows for users to pay using an e-voucher that can be gifted to them by another AMIC member or non member.
  • Also, previously the users were only allowed to use paypal to pay for their purchases on AMIC but are now also given the option to pay using credit card. This creates more flexibility in terms of payment and allows those members without paypal accounts to purchase items of interest on the website with much ease.
  • A final feature that we implemented was the ability to allow the portal to track what they put in their “basket” when shopping so that they can come back to it later and continue if they wish, or empty their basket and start all over again as well.

Newsletter Function

The newsletter function was also implemented to remove the need to manually create a new one every month and send out to AMIC members. As promised to the client, this was done and created to their satisfaction and all that is left for the team to do is to teach the IT/Design personnel of the company how to manipulate the newsletter accordingly each month and disseminate it to their member base using Joomla.

Completed All Functions Required by Client

As the weeks progressed swiftly, despite the setbacks that our team faced, we are proud to say that we have achieved our target of completing all the functionalities requirements of the client as requested.

Creating a brand new portal was one thing, that would appeal to a younger crowd and at the same time, be familiar and easy to navigate by an older group of academicians, who were not very familiar with blogging or were particularly IT savvy was quite a challenge, and the results that we got from our UAT proved that we had achieved our goal.

Portal for iPhone Browser

As smartphones are getting common these days, our team is motivated to come up with a version that allows iPhone to access AMIC portal efficiently. A skimmed down version of AMIC portal is created through CSS style sheets configuration. Upon access web sites from iPhone, the browser will be directed to the mobile template that is much more light weight from the web version. We focus on targeting the most usable functions on the mobile version, providing only critical information that users are interested such as the latest updates and events from the site itself.

Project Management

Project Schedule (Plan Vs Actual)

  * Schedule based on Team's Planning: Planned Project Plan
  * Actual Team's Development Schedule: Actual Project Plan

Neuworks Project Plan Differences.png

Project Metrics

Bug Metrics

The Bugs Severity Points measurement is the Functional Metrics that the team has been keeping during project development.

As shown is how BSP (Bugs Severity Points) is calculated:

NeuWorks Bugs Metrics.png


In addition, the team has developed an Action Plan which serves as a guide to what should be done while working on each function.

Testing is done to each function by the team and any bug found will be recorded and assigned a severity score. Using the BSP calculated, the team will act accordingly to the plan as shown below:

NeuWorks Bugs Metrics Action Plan.png


Iteration 4

NeuWorks Bugs Metrics Interation 4.png


Iteration 5

NeuWorks Bugs Metrics Interation 5.png

Happiness Metrics

The Happiness measurement is the Non-Functional Metrics the team has come up with.

We will ask questions before, during and after each meeting for each member. At the end of each meeting, we will then add up the individual’s happiness score and divide it by 5 (the number of team members), to take the average team’s happiness.


These are the questions asked:

  • Do you have enough rest?
  • Do you have proper meals?
  • Are you able to finished the task allocated to you on time?
  • How do you think about the team performance?
  • How do you feel after meeting?


This is a guide to define the different level of happiness:

NeuWorks Happiness Metrics Remarks.png


This is the team happiness throughout the entire meetings of FYP:

NeuWorks Team Happiness Metrics.png

Technical Complexity

While the Joomla framework provids a good platform to start with, the challenges come when the group had to modify codes based on this framework. Adding other open-source modules to the standard Joomla, it increases the complexity when some functions are not integrated as well as we would have thought. An example was the article manager which we have to change the flow which the articles are being approved. We also found that Joomla template manager is quite rigid and some modifications made to the template do not reflect the changes when deployed on the actual website. Hence, we have to carry out a trial-and-error to see which template design fits the need of our client More importantly, we had to test to see the website produce the same display results in the 4 main browser: IE8, FireFox 3.5, Chrome and Safari.


Another technical challenge which we faced in the early stages of the project was to find a server that was compatible to Joomla as well as the support for ion-cube decoder which was necessary for one of the components in our Joomla site. This ion-cube provides encoding and decoding capabilities for the PHP files.

Quality of Product

Project Deliverables

The completed tasks we completed for mid terms were:

  • Registration & Subscription
  • Search Function
    • Allows member to get their result with the key words
  • Members Comments on Article
    • Gives a community feel to the portal, making it more personal.
  • Document Approval System
    • Allows the administrator to control the content provided by the members
    • A seamless way of communicating and sharing their ideas among the community
  • Automation of Renewal Membership
    • With this features, the system will automatically track the current member whose account is expiring soon and send he / she a renewal notification

The completed tasks for final were:

  • Newsletter Function
    • A dynamic and customizable template for our client to send the newsletters to their members with just few clicks using Joomla back-end
  • Event Function with Google Map
    • Event creation and details of the conference
    • Allow members to view the location with the integrated Google map

Our Additional Features

  • Website for iPhone Browser
    • Scale down version for mobile where members allowed to access the portal on the go
  • Location Based Services and Coupon for Shopping Cart
    • Location based shipping rate using IP address
    • Enable one time discount to one coupon per member

Quality

The three main areas that we have brought quality into our project are usability, security and functionality. Usability concerns the intuitiveness of the website. We believe that we have given a clean and refreshed overall look to the web portal, improving the discovery of searching for resources. In addition, administrator has also found it easier using Joomla backend to maintain the site.

For security, we have created a secure channel in carrying payment on the website by implementing OPENSSL which encrypts all the data when sending to PayPal gateway.

Finally, for functionality, we have managed to integrate functionalities such article submission and event registration to user profile. We have also added value by providing iPhone mobile version for our portal to give people information on the go.

Deployment

We are proud to say that after some complications with our web hosting service, our team managed to create and deploy amicasia.com successfully.

However this was not the case initially as the web host purchased by the client was actually incompatible with Joomla framework.

Despite recommending another web hosting that might be better suited for the use of Joomla, the client had insisted on purchasing a cheaper web hosting site which we then tried to work with. As a result, while uploading some functions that were created during our prototype, we realized that the web hosting service was incompatible with an important Joomla plug-in called the Ion-cube that allowed us to protect all our files that used PHP coding, encryption, obfuscation and controlled licensing abilities.

This was a major hurdle for the team as it was essential for us to install the plug-ins in order to continue with our coding and the current hosting service did not allow for a lot of additional features in Joomla as it was a older version of their server, which in the end causes compatibility issues. As we continuously liaise with the client on a possible solution, this brought our schedule back by 2 weeks. However once the client understood the reason behind the need to change our webhosting service, he approved it as soon as possible, causing us to resume our project as per normal.

Testing

NeuworksTesting.png

Reflection

Team Reflection

As a team, we learnt to harness each other’s strengths and weaknesses and be more tolerant to each other’s constraints in terms of time and meetings clashing with other modules. We also learnt that the system architecture should be constantly reviewed after major revisions to system requirements by the client before development, which will help reduce major bugs later on while ensuring a more robust foundation for development.

In addition, the importance of backing up our work was also a painful lesson that we learnt about halfway through our project when the site crashed and we had to redo our hardwork once again, wasting precious man hours.

Perform usability testing on the interface was a good idea as we got to understand real time how users use the website and what they prefer the flow to be like as this will help make user interface more intuitive and at the same time uncover more obscure bugs .We learnt that it also useful to keep a list of useful resources and share with one another information that might help with the system.

Individual Reflection

Janice

As our most experienced project manager, I was able to lead the team effectively through the rough phases as well as the smooth ones as I understood what it took to motivate my team to harness their strengths and work on their weaknesses. I have learnt that better communication within a group of people is essential when they are working towards a common goal as everyone needs to know the progress of work as a whole.

There was a point in time where I also had to exercise my leadership skills and reprimand people for being late for every single meeting and told them of for not being professional. Although we have no hard feelings towards each other, I am glad for this experience as I learnt a lot about how to manage teams and also to delicately manage our timeline according to our capacity to finish the workload given to us and manage the client and the school’s expectations of our team.

Although we are a technically super strong team and encountered lots of bugs during the development phase of the project, I am glad that our team recognized this weakness and ensured that we set aside ample buffer time to finish the modules within the scheduled period.

Jerrold

My role in the project, was mainly the coding and system design. Me and Raven were the only members that had some experience with CSS and web design before so I took up the role to let the other team members focus on tasks that they are more comfortable with. I learned a lot from the interface designing experience in this project especially after the usability testing that we conducted later in the project where points that were completely obscure to me at one point were made clear by how users used the system. This helped me gain valuable perspective into designing for use.

I was also instrumental in the design of test cases and oversaw the user acceptance test. It was very important for us to evaluate the feedback from our users, taking the feasibility and timing into consideration. When the site crashed, it was my responsibility to get the website up as soon as possible. In retrospect, I guess we could have push the idea of getting Google Analytics to work even though it may not necessarily be meaningful if we do not define the goals correctly. Finally, I feel proud of what we have delivered to our client, meeting all their requirements by providing them a portal that is interactive, fun and enjoyable to use.

Raven

One possible area of improvement in the project was the user interface of our portal. Although the client was very pleased with the eventual look and feel of the portal, we had to do trial and error quite a few times before the client was pleased with the final interface we presented to them. The good thing was that as Janice mentioned, we set aside enough time for us to get the client’s feedback and improve on a crucial issue like the UI. Everyone knows that no matter how fantastic our functionalities are, it wouldn’t matter if the site was difficult to navigate.

Another area of improvement was the way that we had conducted our usability testing. In total, our team completed nine usability tests with various people. While having many testers help to identify problems in a single test quickly, their worst problems will likely keep them from getting far enough to encounter some others. On the other hand, if there were only three testers, they might not be able to find many problems in a single round. But if there was a second test (with the first set of problems fixed), they would have found problems they couldn’t have seen in the first test. Personally, I felt that this was true because I realized that each time I did a black box test on a particular module, I would be able to spot certain bugs that did not catch my eye initially. With the bugs fixed, I feel more confident that the system has become more reliable. So if I could redo the usability tests again, I will try to add in more iteration.

Chee Ning

Through this project, working with a real life client who has expectations that keep changing, was a different experience from having the professors pose as our clients and give us a set of requirements that did not change. It was up to us to stay professional and do our best to handle any new changes or requirements that the client expressed a desire to include every time he explored the portal in its development stages. I also realized how important it was to clearly understand the client’s requirements before coding and implementing it in place as sometimes it seemed that we were overpromising certain features to the client.

I also learnt a lot in terms of improving my technical skills by learning Joomla from my stronger team mates through some of the pair programming sessions we had during the course of the development stages. I realized that it is good to be honest about my constraints in terms of my other responsibilities in school and how much time I can give to my Final Year Project so that it would not be unfair to my other team mates. I am glad that my team is close knit and was understanding enough about my work schedule and assigned me tasks that allowed for some flexibility. This also ensured that I contributed equally in comparison to my other team mates and learnt to improve my hard and soft skills at the same time.

Divya

My key contribution is being the liaison with the clients and supervisor. This involves clarifying the project requirements with the clients and ensures that the deliverables meet the required project expectations. I also need to update the clients and supervisors periodically. These have made me appreciate that doing a real project involves more human interactions than developing the project itself.

I am extremely satisfied that we got our project deployed. This is something that not every student team can boast of and I am proud that our team had it out of the way. For a project to be successful, we need to understand various stakeholders’ expectations and provide the necessary information or solutions to meet their needs. It is not as simple as it seems to be. For instance, the clients themselves do not know what they want sometime. We need to understand the business well, ask the right questions and be observant. It would also be good to involve the other teams who are doing projects for the same client or use similar technology. The sharing of resources or domain knowledge help to speed up the progress of the collaborating teams.

With regards to project development, I have understood that it is time‐consuming and painful when we do not back up our work periodically and was a laborious process to get to the stage where we were at before it happened.

I would like to express my appreciation of the work done by team neuwork in developing a membership portal for AMIC. Over the last few months, I was very impressed with their professionalism, individual attitudes, team work and planned approach to executing this project from the initial client meeting to the various stages in between to the User testing phase last week. The project is shaping up well and meets all the requirements we gave the team. Congratulations on doing a great job!

Sundeep R, Muppidi
Secretary-General, AMIC