Register
Submit a solution
The challenge is finished.

Challenge Overview

Challenge Overview

 
  • Enable local deployment for two web functions and update document
  • Add unit tests in two web functions
  • Bugfix in webhook function
  • Database models update in webhook function and backend api
  • Optional: solution for shared models (extra $100 for the winner if the winner provides this solution)
 

Project Background

 
This project objective is to analyze customer service center call recordings for sentiment analysis. The main tasks that will be covered in the project are as follows.
 
  • The call recording file and metadata available will be used to transcribe the audio
  • Perform sentiment analysis on the corpus to extract key topic / positive or negative interaction / isolate portions of conversation by factors.
  • Finally visualize the output along with filtering and aggregation.
 

Technology Stack

 
  • Java 8
  • Spring Boot 2.1.x
  • [Azure SDK for Java](https://docs.microsoft.com/en-us/java/api/overview/azure/cognitiveservices/client?view=azure-java-stable) (Speech and Text Analytics)
  • Azure Blob Storage (Optional)
  • MSSQL (Azure SQL Database)
 

Challenge Assets

 
  • codebase links
  • a high level architecture graph and explanation
  • demo audios
 

Individual requirements

 
1. (major) Enable local deployment and update document
This requirement is for two Azure web functions. We should be able to test both web functions locally without deploying them in Azure.
Because both functions require to access remote endpoints, please make sure we could test them locally without network. Both functions use Spring, we may adopt a local spring profile for this.
Don't forget to update document and update postman to add necessary requests.
 
2. (major) Add unit tests in two web functions
 
3. (major) Bugfix
Webhook function receives callback from Azure Speech service. It works well when result is success. However, when result is failure, it returns 500. A sample audio can be found in the forum. Please make sure it returns 200, and create a proper model to store the failure request body.
 
4. (major) Database models update
There is Word entity. Every result includes many Words, so when inserting into database, it may take over one minute to response. The problem here is Speech Service may consider this slow response as timeout and send it again, which causes duplications in database.
Instead of using word table, please use a json column in sentence table for list of words. All three fields for word (text, startTime and endTime) are still needed in json.
The models in backend api and webhook function are the same, please make sure both places are updated and both services work well.
 
5. (Optional) solution for shared models
As mentioned in 4th requirement, backend api and webhook function share same models. Please provide one solution to remove this duplication.
  

Important Notes

 
  • Basic code challenge with unit testing scorecard is used for this challenge, please make sure the coverage is more than 80%, and unit tests should be well designed (it should not only check response status code)


Final Submission Guidelines

git patch files for azure functions and backend api repos (not full code base)

Review style

Final Review

Community Review Board

Approval

User Sign-Off

ID: 30100211