Challenge Overview

Challenge Overview

 

Welcome to the EWS middleware API challenge. Our goal here is to implement apps, files and search related EWS (Exchange Web Services) API endpoints that would read and write the resources from a custom data source instead of Exchange data sources like an outlook email inbox.

 

 

Project Overview

The project goal is to create EWS and MAPI middlewares and use them to provide access from Outlook to data from non-Microsoft apps/data sources. Integrating with those data sources is out of scope for this challenge - we will use static/demo data for verification only. This challenge will only implement schedule related endpoints. MAPI support would be added in a future challenge. 

 

 

Technology Stack

  • Typescript

  • Loopback 4

  • EWS

 

Assets

See forums for access to the project repository. 

 

Individual requirements

 

NOTE: Outlook integration only works on OSX - you will need Outlook client on OSX to work on this challenge

 

The goal here is to implement EWS API that reads some static data, point Outlook client to that API and get the communication working between them. Here is a system diagram of what we’re trying to do

See the EWS Managed API reference for API details. 

In the previous challenge we have implemented account related endpoints. In this challenge we’re targeting apps, files and search related endpoints, a Postman collection to verify the implementation (see below for the list of required endpoints) and a demo video to show the app working with Outlook. Since there is no business logic to implement (we’re not integrating with external services yet), most of the endpoints should be straightforward to implement. Use the existing in-memory data store to read/write data to - this is to showcase that Outlook works with the implemented apis (for example receiving an email and then searching the mailbox should work).

Try using auto-generated EWS generated models to implement the API proxy/middleware. Note that these are .NET managed model classes (so can't be used directly in NodeJS land), but should still be helpful to resolve any endpoint model mappings.

Latest WSDL for EWS APIs are available here - you need to log in with a Microsoft account to access it (wsdl and xsd files available in the project repo too). The endpoints that need to be implemented are 

  1. GetAppManifests

  2. InstallApp

  3. UninstallApp

  4. DisableApp

  5. GetAppMarketplaceUrl

  6. GetServiceConfiguration

  7. GetSharingMetadata

  8. RefreshSharingFolder

  9. GetSharingFolder

  10. FindItem

  11. FindConversation

  12. ApplyConversationAction

  13. GetConversationItems

  14. FindTags

  15. AddTag

  16. HideTag

  17. GetSearchableMailboxes

  18. SearchMailboxes

  19. GetDiscoverySearchConfiguration

  20. GetSearchSuggestions

  21. DeleteSearchSuggestion

  22. ExecuteSearch

  23. EndSearchSession

What to submit

  • Submit the API implementation 

  • README document with deployment and verification steps (and demo video for outlook verification)

  • Postman collection to verify the endpoints



Final Submission Guidelines

See above

ELIGIBLE EVENTS:

2020 Topcoder(R) Open

REVIEW STYLE:

Final Review:

Community Review Board

Approval:

User Sign-Off

SHARE:

ID: 30125872