Challenge Overview

Project Overview

The goal of this project is to build a new portal for our Cognitive Catalyst GitHub community (all community members including IBMers, and IBM Partners)..  We’re looking to build a responsive web app that works on mobile devices as well.

Cognitive Catalyst is an open source community for the development of Watson platform extensions and tools to enable and accelerate the development of cognitive applications.  The project is hosted on GitHub and is accessible by everyone to use and collaboratively create open source software that interacts and enhances the functionality of the Watson services.  IBM has initiated the project and will turn over ownership to the community.

Competition Task Overview

In this challenge, we are looking to define the module architecture for the new Cognitive Catalyst portal. You are expected to break down the requirements and define the detailed architecture for the whole system (including 3rd party integration).

Using the provided documentation, competitors will complete the architecture deliverables (https://apps.topcoder.com/wiki/display/tc/Module+Architecture+Tutorial+-+Deliverables).

The wireframes from the previous challenge have been provided to show the screen flows and how the new Cognitive Catalyst Portal will work.  Please also check the wireframes challenge past for a list of high level requirements: http://software.topcoder.com/review/actions/ViewProjectDetails.do?method=viewProjectDetails&pid=30052358

Requirements & Notes

  • For login, we need to use Bluemix SSO with GitHub, it's supported according to this page: https://www.ng.bluemix.net/docs/services/SingleSignOn/configure_service.html
  • We should get user roles from GitHub teams. Assume there will be a certain team on github so you add someone to this team to make him an admin in our app, users not in this group are normal users. When a user submits a project and then he is the maintainer of that project, while he is still a user to other projects.
  • We need to integrate with social services for sharing
  • We need to host everything in Bluemix, leverage as many services as possible.
  • We do not want to build the forum from scratch, we should use a free open source forum (example: nodeBB) and integrate it with our app. You need to research and propose the forum solution to use. Make sure your architecture provides a complete solution for the integration. Some integrations we need to cover are:
    • SSO integration
    • Auto creation of forum / topic / posts and link to these from projects
  • Backend will be Node.js with a database available in Bluemix. Architect should propose what's good (for performance, or for community familiarity, etc.): Cloudant, DB2, Postgres, MongoDB, etc.
  • Solution will need to be scalable with Bluemix capacity, potentially with large number of users and projects. Justify your approach / choice of database and other bluemix services based on this.
  • The application must satisfy the IBM Accessibility checklist.
  • We need to support profile editing, thought it's currently missing from wireframes right now. Profile will at least contain basic information (picture, user name, user 'handle', contact info, which cognitive catalyst projects they contribute too) about the user is imported from github during the initial login. We will need additional information, such as IBMer, IBM Partners, Open source developer, etc. There should be integration with some badge API that you should propose, some options are: IBM Open Badge initiative, Mozilla, Acclaim and Credly. Justify your choice in the design documentation.
  • You can load the list of categories / services from this page (for the lookup values)
  • News / Blogs / Events managment is missing from wireframes, but it's in scope. We want to combine the news, blogs and events into a single display structure. Then a single mechanism will be used to submit an entry, and the user will select the type of the entry (blog, news, event) and submit the request. A moderator will approve the request.
  • If we need to launch multiple frontend / integration challenges, please optimize design so we can run some of them in parallel.

We are still making some changes to wireframes, the winner of this architecture challenge will need to double check the final version of wireframes in final fixes phase and update the architecture accordingly!

Open Source Library

Any open source library you choose must work with Bluemix.

Timeline

This challenge has shortened review / appeals / appeals response timeline, make sure you meet the deadlines!

Technology Overview

  • Node.js
  • GitHub
  • Cloudant / DB2 / Postgres / Mongo
  • HTML5
  • Javascript
  • CSS

Documentation Provided

  • Wireframes


Final Submission Guidelines

Submission Deliverables

  • Application Design Specification
  • TCUML containing Sequence Diagrams, Interface / Class Diagrams and detailed documentation
  • Entity Relationship Diagram(s)
  • Assembly Specifications
  • Gameplan
  • Endpoint documentation for RESTful services

Submission Guidelines

For each member, the final submission should be uploaded via the challenge detail page on topcoder.com.

ELIGIBLE EVENTS:

2016 TopCoder(R) Open

REVIEW STYLE:

Final Review:

Community Review Board

Approval:

User Sign-Off

SHARE:

ID: 30052542