Key Information

Register
Submit
The challenge is finished.

Challenge Overview

Welcome to the IBM Castle Strongloop Messaging API contest with CouchDB. IBM is building a versatile, extensible Mail and Calendaring interface on top of their existing infrastructure.  As part of this contest, you will make use of Strongloop’s Loopback Framework to create an API server and expose multiple API endpoints.  These endpoints will be used by an Angular application and native mobile clients to be built in subsequent challenges.

 

This challenge is part of the *IBM Castle* Challenge Series.  Competitors who win challenges in this series will compete in a leaderboard of points for additional prizes. We have lots of contests coming in this series so it is best that you participate early and frequently.

 

Secondly, we understand that the earlier contest had too much in scope. So for this contest, we are only building the Calendar resource. The scope is much less for this contest in comparison with the previous CouchDB contest and we have increased the prize money too.

 

Project Overview

This project is the foundation for a complex, enterprise email, calendaring, and messaging system.  We will be building a robust REST API to allow multiple frontend clients to connect to many different services, including multiple mail server backends.

 

Contest Overview

We currently have a loopback server hosting the endpoints for the Messages and the Tags resources. For this contest, we would like you to create the endpoints for the Calendars resource.

 

We will share the following with you:

  1. A document describing the Calendar model you need to create

  2. A document describing the different endpoints in scope for the current contest

  3. The code base

 

Note that the current code base has multiple issues that we are resolving with the winner. However, we do not expect this to affect you. But we may ask you to use the latest code base before the submission phase ends. As mentioned, we expect the changes to not affect your code since you are working on a new resource altogether.


 

Points to Note

  1. There is no login for the app. You can simply expose the endpoints directly

  2. You need to create Unit Tests for the application. No POSTMAN files allowed.

  3. You need to provide a Test Data generator script for the application. See the model defined in the document to decide on the type of data to generate. The test data needs to be directly stored in CouchDB which will be subsequently used during testing of your submission. Please make sure that you have test data for each attribute combination.

  4. As part of the mock API, you don’t have to actually send email out the calendar invites.

  5. Please use CouchDB. You will need to interact with a database and for this, you can use loopback-connector-couch and follow the official documentation on the topic.

 

Kindly note the following additional points:

  1. You need to use AirBnb’s ESLinter for both javascript code style and checks. This already exists in the existing code base. Make sure that you verify that your submission is free from any warnings and errors. You only need to focus on the Calendar resource.

  2. Your solution should compulsorily use Strongloop’s Loopback framework.


Final Submission Guidelines

Kindly make sure that before uploading your submission, it:

  1. Meets the specification documents shared

  2. Passes all the lint checks using the ESLint rules that we mentioned

  3. Includes Unit Tests. POSTMAN extension based imports are NOT allowed

  4. Implements all the endpoints requested


Once you are ready, create a .zip file of the submission and upload this through the Submit and Review tool for this contest.

ELIGIBLE EVENTS:

2016 TopCoder(R) Open

REVIEW STYLE:

Final Review:

Community Review Board

Approval:

User Sign-Off

SHARE:

ID: 30053512