Challenge Overview
Challenge Objectives
-
Integrate frontend app with backend API
Project Background
-
Telecom providers sell products such as broadband and mobile phone contracts. These contracts consist of products of different types and capabilities and that are then sold in different markets. In this project we’re building a forecasting tool to predict variables like volume base, gross adds, churn, net migrations, average revenue per customer, etc
-
We’re integrating the frontend with backend API in this challenge
-
In the follow-up challenges we will update ui and integration and build test suites
Technology Stack
-
Angular
-
Swagger
Code access
The base code is available in the forums. API specification document (swagger) and api implementation is available in the repository.
Individual requirements
Sample data values are available in the backend code base - you can use them to import the data to database.
Required UI changes:
-
Update reforecasting tab - synchronize sliders
Currently, every graph has one set of sliders to configure KPI drivers, but the backend is expecting only one set of drivers. Synchronize sliders from all charts so that changing a slider in one group updates the value in the other one, and send only one set of values to the backend service. -
Remove user avatar image
Replace the image with user name initials -
Create “New Forecast” screen
The screen will open a dialog to enter the new forecast name - all other values for the forecast (markets, products, brands, kpi drivers) will be copied from the last forecast (list the forecasts and get the last one by creation date). -
Add “Forgot Password” form
This form will ask the user to enter his email and call the /forgotPassword API endpoint (that endpoint will send a password reset code to the user). On success, show the form to enter password reset code and set the new password. Submit the form to /resetPassword endpoint
Required screens and endpoints that are in scope of this challenge:
-
Security (/me, /resetPassword, /forgotPassword, /login)
-
Forecasting endpoints (Forecast and Forecasts screens)
These endpoints allow the user to create a new forecast (screen created in this challenge), update an existing one (ex lock it on the Forecast screen), get forecast values, list existing forecasts (Forecasts screen) etc -
User settings
These endpoints save user settings - favourite charts, chart settings -
Lookup endpoints
These endpoints provide raw lookup values for various dropdowns in the app
General requirements
-
Unit tests are out of scope.
-
Show loading spinner for api actions, and use toast to show success/error messages
What To Submit
-
All source code
-
Deployment guide
-
Short demo video