Register
Submit a solution
The challenge is finished.

Challenge Overview

Challenge objectives

  • Node app that runs as a processor, watching a kafka queue and interfacing with Rocket.chat to build private groups to potentially replace the challenge forums
  • This challenge will add support for Vanilla Forums, in addition to Rocket.Chat.  

Project background

We're looking at potential replacements for the Topcoder forums, and Vanilla Forums is something we'd like to investigate further.  Vanilla Forums is an open-source forum application that has nice features and can interface with Topcoder's authentication platform.  We want to build a processor that will create private groups and categories in Vanilla for challenges, allowing us to use Vanilla in a similar fashion to the current forum.

Technology stack

  • Node.js running on Heroku
  • Kafka
  • Vanilla forums

Installing Vanilla


You can download the Open Source Vanilla installation here, which is what we'll target:  https://open.vanillaforums.com/download

If you'd like to install your own Vanilla instance, you can install it locally.  I used the instructions here, but note that in Ubuntu 18.04, with the latest Vanilla code, I had to install additional PHP dependencies.  https://websiteforstudents.com/install-vanilla-forums-on-ubuntu-18-04-16-04-18-10-with-apache2-mariadb-and-php-7-2-support/

Details will be provided in the forum about how to connect to the Topcoder development environment and the Kafka queues there.  Alternatively, you can use your own Kafka installation and messages that match the same format published by the Topcoder APIs.

Current Codebase

The current codebase is available here:  https://github.com/topcoder-platform/challenge-forum-processor

Requirements


The goal of the integration is to handle:

* Challenge created (creating a category in Vanilla, along with specific discussions for things like "Code Questions" and "Code Documents")
* User registered for a challenge (add associated user to category)
* User unregistered for a challenge (remove associated user from category)

We want to also include the same challenge overview information we add into the group for Rocket.chat, in the info and topic fields, but in a way that fits Vanilla best.  You are free to suggest how you think the overview and welcome information should be added to Vanilla.

The initial Rocket.chat implementation didn't necessarily follow the existing Topcoder forums structure because Rocket.chat isn't necessarily a forum app.  For this challenge, because Vanilla is a true forum application, we can more closely match what the structure is for the existing Topcoder forums.  Use the existing Topcoder forums as your inspiration for how things should work.

Relevant tickets for Rocket.chat that we'll also implement for Vanilla:

Relevant Vanilla API links

Configuration

We'd like the ability to configure all necessary Vanilla connections and endpoints similar to how we do for Rocket.chat
Note that the Vanilla API is accessible using a Vanilla-generated personal access token.  This token should be configurable in Heroku as well.

Deployment guide and validation document

You must provide a new README.md that covers:

  •     Heroku deployment (of the processor)
  •     Configuration for the app
Assume that the reviewers have Vanilla set up properly.  If there are specific things they have to do in Vanilla to get the integration to work, like generating the personal access token, that must be documented, but just getting Vanilla installed does not need to be.

You must provide a Validation.md that covers:

  •     How to validate the Vanilla integration, in as much detail as possible.

No video is required for this challenge

What to submit



Final Submission Guidelines

Please see above

ELIGIBLE EVENTS:

2020 Topcoder(R) Open

Review style

Final Review

Community Review Board

Approval

User Sign-Off

ID: 30115776