Challenge Overview
Challenge Objectives
-
Design and build application backend using NodeJS and the provided Wireframe prototype
Project Background
In this project we’re building a web application to manage insurance policy details. Project frontend will be built using Angular using a set of UI components (NBDX) provided by the client and a working frontend prototype. Future challenges will build backend API (this challenge), integrate frontend and backend and create tests for the frontend code base.
Note that code quality is very important in this project and will be reviewed thoroughly.
Technology Stack
-
NodeJS
-
Express
Code access
We’re starting from an empty code base.
Application wireframes are available at https://designchief.github.io/ai-internal-app/policy
Individual requirements
1. Design API spec (swagger)
First requirement is to design the API specification - it should support the following use cases:
-
View policy info (policy details, activity, customer details) - https://designchief.github.io/ai-internal-app/policy
There should be a separate endpoint to fetch customer details (policy info would just reference customer by id) -
Lookup endpoints for dropdowns in new quote screens - https://designchief.github.io/ai-internal-app/quote/quote-customer
See the excel file attached in the forums for sample data required for countries, addresses, car details and occupation -
Create a quote - each screen info should be saved when clicking the “Continue” button
-
Pay for the new quote (essentially just mark the quote as paid)
-
Cancel the quote (save quote details and cancelation reason)
-
Get policy info - get saved quote details
User authentication and authorization are out of scope
2. Build the api
Api should be implemented using NodeJs/Express. We won’t persist any data to database - services only need to validate inputs and return mock data.
All the endpoints should be annotated with swagger-jsdoc so that swagger file can be built from the code on the fly. Lookup endpoints should return the provided sample data.
What To Submit
Submit the following:
-
Full source code for the built app
-
README.md file explaining application configuration and deployment
-
Postman collection with sample requests for all endpoints (both success and failure scenarios)
-
Validation.md - containing any details required for validation of requirements (if any), like sample data, demo video link (optional), etc. You can document any additional coding style followed by your submission that we should consider using in future challenges (ex if it makes component testing easier, api integration is easier, etc)
Final Submission Guidelines
-
Full source code for the built app
-
README.md file explaining application configuration and deployment
-
Postman collection with sample requests for all endpoints (both success and failure scenarios)
-
Validation.md - containing any details required for validation of requirements (if any), like sample data, demo video link (optional), etc. You can document any additional coding style followed by your submission that we should consider using in future challenges (ex if it makes component testing easier, api integration is easier, etc)