ABOUT THE PROJECT
The task was to design how to display notifications inside XWiki. XWiki is an extensible open source platform for developing collaborative applications on top of the wiki paradigm. Notifications feature would come in addition to the Activity Stream and Watchlist functionalities, but with the desire to replace and deprecate them on completion.
One challenge was the multiple variants to group and sort events: User centered, Page centered and Time centered.
Although the common pattern is to display events having the user as main focus, discussions inside the community revealed the need to display events having the page and event as focus. Being a collaborative wiki, it is more efficient to display and group multiple events and multiple editors in the same event entry, since content and pages are at the core of wikis concept.
Another challenge was the diversity of possible types of events and applications that can launch them. XWiki being extensible, each additional application can provide its own template for displaying events and can launch one or multiple types of events. Whatever the proposed design, it needed to be consistent across applications and easily understandable.
The final challenge was assuring backwards compatibility. Since one of the major purpose was to replace and integrate the functionalities coming from Activity Stream and Watchlist, this meant that we needed to make sure there is no regression and we include all the past features, while accommodating new ones.
After a period of testing the functionality, I did a second iteration for the styling of events. Iterated on how multiple applications can launch different types of events (some events having also calls to action), how the notifications will present events across multiple sub-wikis and how social events would look integrated inside the notifications stream.
I had to analyse the existing functionality, find ways to integrate and extend it, and provide clear and generic patterns for applications of all kinds to launch events inside XWiki.
Working on the same product for a longer period of time it gives you the unique opportunity to see how a functionality evolves. This progression is triggered by technology changes, performance or consistency needs, requirements evolution or by user demands.