Challenge Overview
Overview
Aftermarket Service Products (ASP) Telematics Operations is developing a website which needs a specific set of WebServices to be developed. In this challenge we want you to develop a web service to retrieve a set of information (list of CANs - i.e. Customer Account Numbers) that will eventually be used as values to be used in a drop down list for all other CANs (Response) related to a CAN provided as input (Request) by the user.This data (all other CANs list) will help the website end user in correctly identifying the desired CAN. The data will be sourced from Services (DB2). The purpose for developing this is that every CAN may have related CAN's in the system, and they often are hierarchical and could have many related CANs. This webservice will return the entire related list of CAN's for a given CAN as input.
Create a new WebService sourcing data from ServicesDB to be used in the Detroit Connect website. The objective of this challenge is only developing the webservice, and no integration with the website.
Please review the detailed requirements in the document provided in the forums. (FDWSRelatedCANs.docx)
Webservice
The Webservice should take a CAN (Customer Account Number) input parameter, and return all the related CAN list objects in JSON
We want you to build a RESTful Web Service with DOT.Net 4.5 , and would be deployed on IIS 8.0
Please refer to the provided document in the Challenge forum for the complete and detailed requirements.
Use URI Template to rename URI to this format <host>/Services/rest/RelatedCANsList
Architecture
App should have a multi layer architecture with separate Database Access Layer and Business Logic.
Error Handling
If the web service gets any error (for instance, no CAN in input, or errors in the database), the exceptions should be logged as a log event using log4net.
Exception handling conventions, as detailed in "Coding Conventions 1.3.pdf" , should be followed.
Database
Download and install DB2 Express-C on your development machine.
Download and install DB Visualizer here
Scripts to create the database tables and sample data are provided in forums
(The DB2 installer will add a sample database. You can use that or create your own.)
Validation:
Include Unit tests.
Functionality should be validated against the test cases detailed in "TC WS Related CANs.xlsx" (Attached in forums).
Code Quality:
You need to strictly follow the coding conventions.
Follow the coding conventions described in the "Coding Conventions 1.3.pdf" provided in forums
There should be no hard coded configurations. Database Connectionstrings and queries should be easily configurable.
Development Enviornment:
- IBM DB2
- Visual Studio 2013
- Dot.Net 4.5
- Web API
- Entity Framework
- IIS 8.0
- JSON
Final Submission Guidelines
Submission Deliverable
-
Upload entire Source Code (Entire VS 2013 project workspace) as your submission. No changes would be accepted after submission end date/time.
-
Deployment Guide with detailed steps to deploy on IIS and verify the deployment
-
Provide detailed guide to configure the Webservice ( Database connection strings, Queries, URI Templates etc)
- Video Demo of your solution and Code walk through
Technology
- IBM DB2
- Visual Studio 2013
- Dot.Net 4.5
- Web API
- Entity Framework
- IIS 8.0
- JSON