Challenge Overview
NOTE - This challenge has shorter phases and a fixed reviewer fee.
Welcome to Mjolnir Project Mobile Application Backend Assembly Challenge Part 2. We had earlier launched the Backend Assembly Challenge 1 which partially implemented the application backend. The winning code from previous challenge is present in our repo (request access via forums)
Introduction
Dental offices and patients meet the ultimate application to help them finding the perfect match for their needs! We leveraged the Topcoder community to come up with a fun and engaging design in earlier challenges. Now, we want to translate the design into an Ionic prototype. This is the first out of the two challenges that we’ll be running to build out the Ionic prototype.
Application Users
The application will be used by two types of persons, employer (also referred to as business user) (dental practical office) and employee. Both of them are searching for matches to either hire or to be hired respectively.
Note that an application user can be both dental practical office and employee at the same time.
See Matching Interaction Workflow.xlsx to understand the application workflow.
Scope
-
If there is any change needed in models as per TCUML & Swagger file for the below services, those need to be implemented.
-
The following Services/ API are in scope (as per TCUML & Swagger)
-
EmployeeBench
-
EmployerBench
-
LikeDislike
-
Match
-
BenchMatch
-
Question
-
Notification
-
Interview
-
Friendship
-
Message
-
ContactUsMessage
-
Utility
-
Additionally, the following issues from Challenge 1 are in scope
-
The user got created in database if it fails to send the email during the signup. This needs to be handled.
-
BenchMatch model is not implemented. It needs to be implemented.
-
Winston email transporter can be configured to receive the exceptions notification via email. This is not implemented
-
EmployeeSearchFilter & EmployerSearchFilter - the answers should be stored in the FilterMatchingAnswer. Your can only change after being approved
-
Get /employerprofiles
-
1. distance and closeTo
-
a. searchemployerProfiles filter by office locality
-
b. searchemployeeProfiles filter by office employeeLocation
-
-
2. how to filter employerProfiles by degree (there is no degree in employerProfile -> Implement this filter By Staff
-
3. the answers in searchemployerProfiles and searchemployeeProfiles should post profileQuestionAnswerId array (not the whole profileQuestionAnswer array) -> Full entities are not needed here, ids are sufficient
-
4. is the answers need use fuzzy matching? like profile had answers [1,2] and filter answers [2,3] , does it matched? -> Exact match. Or we need to specify the type of the match in the question then (full/partial).
-
Assets (available in repo docs folder)
-
TCUML
-
Application Design Specification
-
Backend API to Screen Mapping
-
Swagger API Definition
Additionally we’ve also provided the MarvelApp link for the frontend so you can develop a holistic understanding of the app.
-
MarvelApp Link
-
Matching Interaction Workflow
Technology Overview
· JavaScript
· JSON
· REST
· Backend
o Node.js 8.x
o Express 4.15.x
o MySQL
o Sequelize.js 4.x
o passport 0.3.2
o winston 2.3
o nodemailer 4.0
· Frontend
o HTML5
o CSS
o Ionic
General Notes
-
The code should be free of any linting errors
-
You are required to provide Postman tests for all endpoints. The test collection must cover positive and negative scenarios
Final Submission Guidelines
-
Zipped Source code/ Git Patch
-
Documentation including instructions for deployment, configuration parameters & verification
-
Updated Swagger File + Postman collection
-
Demo video showing how to setup your app and run the postman tests