Key Information

Register
Submit
The challenge is finished.

Challenge Overview

A tool that will collect ratings directly within MS Teams right after any meeting ends. The rating is a 5-star scale and each star corresponds to one criteria - see below for reference.

The tool should prompt users to provide the rating immediately after a call ends in MS Teams. This includes scheduled meetings, direct calls and ad hoc meetings. The prompt should be seen by everyone, and it should be available in the channel or chat where the meeting originated. It must also be possible to collect the results, such as number of meetings for each rating, in aggregate. If it is simple, the average rating should be displayed after each submission.


This challenge is a followup challenge to a previous PoC challenge: http://www.topcoder.com/challenge-details/30069655/?type=develop&noncache=true. 

In this challenge, it should prompt users to provide the rating after the scheduled meeting ends. Note that if it's impossible to implement the rating stars in ms-team bot, it's fine to replace them as checkboxes (Input.Choice), but we still want to keep the CRUSH image, and we can have a submit button to submit the rating as well. 

The app should also expose endpoints to return the rating data for scheduled meetings: 
  • /meetingsRating - it should return the meeting data together with the user ratings for each meeting. It should support paging and filtering by meeting-id, meeting-name, team-id, team-name (any can be optional). 
  • /meetingsStat - it should return number of meetings for each rating, in aggregate. It should support filtering by team-id, team-name (any can be optional). 
  • /avgRating/:meeting-id - it should return the average rating of the provided meeting
Basic authentication should be implemented for endpoints above, and you can hard-coded an admin account (with username/pass) in config file. The ratings should be saved into MongoDB as well (please create a separate rating table, and it should fields like: meeting-id, user-id, user-name, the CRUSH ratings and timestamp). 

You are also responsible for fixing the following issues in the previous winning submission:
  • The submission calls the /groups and /groups/:id/events Microsoft Graph API to get the groups and events data. These APIs support paging, you need to make sure the paging is implemented correctly. And for the /groups/:id/events API, you should update it to only pull necessary data (small duplication is fine) instead of pulling all data every time. e.g. in the first time, it should only pull meetings that are not ended; and in the following times, it should ignore the meetings ended 1 day ago and pull the rest. You may even use the Microsoft Subscription API if it works. 
  • The rating prompt should only be posted to the channel in which the meeting is scheduled (instead of all channels)
  • The bot should work for repeated scheduled meetings as well
Note test-account for non-free ms team will be provided to you. 

Final Submission Guidelines

Submission Deliverable
- Updated Source Code
- Deployment Guide and Verification Guide
- Working Azure Deployment for easy testing

ELIGIBLE EVENTS:

Topcoder Open 2019

REVIEW STYLE:

Final Review:

Community Review Board

Approval:

User Sign-Off

SHARE:

ID: 30070107