Challenge Overview
In this challenge you will provide an architecture documentation and PoC to implement the full Muse Mode One server/engine.
Project Overview
IBM has set of social products that built around set of APIs (accept/return json or xml). On top of it sits a regular UI, these products lack customizability for the sake of configurability and standardisation.
IBM introduced Muse Mode One project server (or engine) that works as a proxy that talks directly to the API and renders an alternate user experience. This alternate experience can include custom application data or customized UI.
We have following modules in the flow :
-
Client (i.e. Dojo UI)
-
Users
-
LDAP
-
Muse
-
Rules
-
Actions
-
Patterns/Manipulations : i.e. change UI element color.
-
-
IBM SaaS product.
Logical flow is that Client calls a SaaS product and MUSE proxies that request. The MUSE Server adjusts the HTML in the response from the SaaS. We want the MUSE server/engine to be configured (rules) so that based on the SaaS URL used it will decide (actions) to either do something (execute pattern manipulation) or nothing.
If something should be done, it will retrieve the BSS (corp directory for IBM cloud products) information of the logged user. Lookup user details from LDAP, based on the User’s information it will look up in a data store what transformation rules apply. e.g. the User is a manager and in Europe and has a personal rule. Each rule that applies will map to an action that MUSE server will take to manipulate the Response from the SaaS endpoint, and in what order it will manipulate it.
Actions are things like “modify a CSS element”, change div tags, or add Javascript. Since the SaaS project use Dojo - some of the actions are adding javascript that will execute a augmentations / manipulation on the client. You are also provided with a document that explain the Muse Mode 1 manipulation patterns on the IBM SaaS product response.
Existing Resources
You are provided with following in this challenge :
-
NodeJS PoC code for Muse Mode 1 that talk to one of IBM products and changes the response stream and render different colors, or add/change/remove functionality.
- Documentations that explain how Muse Mode One work with IBM SaaS product.
-
IBM SaaS API definitions and test accounts.
Challenge Requirements
You will address the following in this challenge :
-
- In PoC side :
-
- Demonstrate taking User/Groups/Company information and showing rule selection including precedence (i.e. if a user is a member of groups with differing rules and different rule scopes, how does that resolve, etc.)
-
- Demonstrate processing of rules to find actions sufficiently that we know it scales across all possible action types.
-
- Demonstrate applying actions to show front end has changed.
-
-
- In Documentation side :
-
- Explanation of the mapping from LDAP info to Rules
-
- Explanation of the persistence for rules and actions
-
- Explanation of error cases and proposed handling
-
- Explanation of tie in to LDAP (not needed in POC code though)
-
- Recommendation of libraries and technologies to be used (MIT open source only allowed).
-
Final Submission Guidelines
Deliverable
What we expect as deliverable in this challenge :
-
- Updated PoC Code
-
- Documents that explain your idea (pdf, word document are allowed).