Challenge Overview

Topcoder wants to revamp the way members, copilots, and customers communicate. For that we are contemplating using Discourse as our messaging platform.

Features

The following are the required features of the new Topcoder messaging service:
1. Seamless account creation: Once members are registered to the Topcoder platform, they should not have to register again in order to access messaging functionality
2. Single sign on: Once members are logged into the topcoder platform, they should have access to messaging features without having to log in again
3. Discussions in context: Ability for members to have discussions in the context of an entity, i.e. have one or more threads tied to an entity such as a project, challenge, submission, submission file, etc.
4. Discussions without context: Ability for members to have discussions without any context, i.e. members should be able to start general discussions that are not tied to any entity in the system.
5. Context based authorization: A member may only comment on entities to which they have read access. E.g. if a member has read access to a challenge, the member can add comments or edit their own comments related to that challenge.
6. Administration and Moderation: An administrator may have a moderator role, allowing them to view all threads and comments in the system, as well as edit or delete other user's comments. Ability to ban users from the messaging system.
7. Media-rich discussion - add links, emoticons, media items with preview (video, images) from Internet or local-based file upload
8. Custom front-end that fits seamlessly with the Topcoder UI Kit

Scope

For this challenge, we'd like PoC For the following features.
1. Account Creation
2. SSO Authentication
3. Discussions in Context

For detail requirements, please check attached document in forum.

Technical Requirements

1. Use as much Discourse out of the box capabilities as possible;
2. Small code changes to Discourse are acceptable, but solutions with the least amount of changes to discourse are preferred;
3. Required code for the PoC that is outside of Discourse should be in HTML, JavaScript, and node.js;
4. Provide one or more docker images that can be used to run the PoC locally. If multiple images are required, please provide a docker-compose file. Please share the images through dockerhub;
5. Any json store or database may be used, keep this as simple as possible.
6. Keep the user interface as simple as possible, and don't worry about creating user interfaces for things that are not specified in the PoC. For instance, creating, deleting, and updating challenges can be done directly in the database, but please provide sample scripts so that the use cases can be performed end to end as envisioned by the submitter.

Final Submission Guidelines

1. New Code or Code Changes for showing the implemented functionality.
2. Clear Setup/Deployment Guide for environment to test
3. docker-compose file for envirionment building.
4. sample scripts for setup the testing environment.

REVIEW STYLE:

Final Review:

Community Review Board

Approval:

User Sign-Off

SHARE:

ID: 30054499