Challenge Overview
Challenge Requirements
In this challenge we are going to enhance the admin-app with a few additional features:
- We are going to port some features from a legacy java based admin tool that admins use to perform various types of management tasks, these include the following:
- updateFixedChallengeFee: use "PUT /challenges/{id}" endpoint
- updatePercentageChallengeFee: use "PUT /challenges/{id}" endpoint
- resetAggregation: use "POST /reviews/{challengeId}/resetAggregation"
- resetReview: use "POST /reviews/{challengeId}/resetReview"
- updateAutopilot: use "POST /reviews/{challengeId}/updateAutopilot"
- reopenReview: use "POST /reviews/{reviewId}/reopen"
- deleteReview: use "DELETE /reviews/{reviewId}"
- We should add a new root menu that says "Challenge Management" to the admin app, and on this new page we should be able to enter a challenge, search and then perform the actions mentioned above on the returned challenge(s). For reopening and deleting review, we'd need to list the reviews for that challenge so admins can select which one to reopen or delete.
- The new pages must work on both desktop and mobile browsers.
Please make sure the exising coding standards / conventions are still followed.
It's important that your submission works properly with the real environment, you will be provided a test account to access the dev api server.
Notes
- Please make sure that you are using best practices for Angular.js (for example: ui-router, separate states for list / detail / new, etc...)
- Please check the admin-app-mock-api readme to see how you can get the admin-app running locally
- Please make sure you code is well documented
- Make sure the newly added pages have consistent look and feel with the admin-app (use similar style as the Submission page)
Technologies
- Node.js
- Angular.js
- HTML
- Elasticsearch
- Docker
- Java
Final Submission Guidelines
Submission
- Updated admin-app code with all the requirements covered
- A detailed verification guide explaining how to run and test your submission.
- The winner will be asked to send a pull request to our repo.