Assignments - HenrikWM/NNUG_GAB2016 GitHub Wiki

Business scenario

You are a developer tasked with integrating existing "Enterprise Resource Planning" (ERP) services in order to form a workflow so that the business manager can do his job, which is to create work plans for his employees and manage their capacity and utilization. The services have been built as separate services and the next step is to integrate and deploy them to Azure.

The manager needs a workflow that is highly responsive and gives quick feedback (this is his most important ERP-tool) and is should be precise in what it calculates. He can tolerate some latency in performing calculations of capacity and utilization but it shouldn't take more than a few minutes at the most. The company he works for is a global corporation with has offices in the USA, Brazil, Belgium and Singapore. His colleagues in his department will also be using this workflow.

You are free to use any integration technology as you see fit as long as it will work inside of Microsoft Azure.

The services

The scenario consists of 4 key services: EmployeeRecords, ResourcePlanning, Calculations and Reports.

EmployeeRecords (Web & Api): A service to manage employees

ResourcePlanning (Web + Api): A service in which the manager can select an employee or department and plan the capacity for a given time-frame

Calculations (Api): A service which calculates capacity and utilization based on an employee or department for a given time-frame. Creates a report with the results

Reports (Web + Api): A service which the manager can use to browse reports and get an overview of utilization that have been calculated for an employee or department

Your Visual Studio solution consist of projects that are seen in the diagrams below. Each MVC ASP.NET Application is a website that serves as a front-end to an Api. Each Web Api ASP.NET Application is the the back-end that contains business logic and integrations with other services.

Data flow between services

View large version

Data flow between services with actual Api-calls

[View larger version] (https://github.com/HenrikWM/NNUG_GAB2016/blob/master/src/Assets/Diagrams/Diagram%20with%20API-calls.png)

Business acceptance criteria

When you have successfully completed this assignment, the business acceptance test that the manager will perform will be to:

  1. Open the employee website and create an employee.
  2. Open the resource planning website and create a work plan for the employee that you just created.
  3. Still on the resource planning website, calculate the utilization for the resource plan that you just created (click the "Calculate"-link). The "Calculate"-link should turn into a "View report"-link once the report has been created.
  4. Open the reports website and verify that you see a report for the plan you created and see a utilization value.

Assignment 1

  1. Open a git shell and clone the repository: git clone https://github.com/HenrikWM/NNUG_GAB2016
  2. Checkout the begin-here branch: git checkout begin-here
  3. Setup DocumentDB

Assignment 2

  1. Publish the services to Azure.
  2. Verify that Swagger (API-documentation) is live for each of the Apis.
  3. Use a REST-tool (e.g. Postman) or Swagger to verify that the Apis are working.

Assignment 3

  1. Create the missing integrations so that the services can communicate (see diagrams above).
  2. (optional) Create the "View report"-link on the resource planning website (Step 3 in the business acceptance criteria).
  3. (optional) Calculate utilization for a department