Challenge Overview
Challenge Requirements
Recently we have built an admin-app that we use to manage users and projects, we also had a legacy admin-tool that's used to manage copilots / admins / reviewers / etc.. The goal of this challenge and next challenges is to implement the features in admin-tool in the new admin-app so we only need to maintain one app.
For this challenge, the specific tasks are:
1. Add new pages to manage admins, reviewers and copilots using the new v2 api, please register to see details on the new api.
2. The current admin-app works with v3 api, but the new endpoints are only available in the v2 api for now, so you'll need to add new config for the v2 api endpoint, and make sure the new pages call the new endpoints from the v2 api.
3. The v2 api and v3 api use different auth tokens, to be able to call the v2 apis, you must call the https://api.topcoder-dev.com/v3/authorizations/1 api with "Authorization: Bearer <v3 token>" header after getting the v3 api token, in the response the "externalToken" field is the v2 api token that you can use to call the v2 api.
4. Since the v2 api is not available for testing, you will need to provide mock implementation of these endpoints based on the documentation and code we provide in the forum, so that you can test the new pages locally.
5. Please check the mockup below, we'll add a new sub-page with title "Admins / Copilots / Reviewers" to the User Management section.
5.1. This single page should handle managements of admins, copilots and reviewers.
5.2. Admins will be able to list users by role (perhaps a dropdown with the 3 roles, and a button to show all users with the selected role). It should also be possible to search user by handle (and email if possible). The page can use a similar design to the current Users page shown below.
5.3. When adding a new Admin/Copilot/Reviewer on this page, there should be a role dropdown to select from, a user can be a copilot and reviewer at the same time, but the admin role is exclusive. Can use a pop up dialog for adding user. For adding reviewer the immute flag must be editable.
5.4. For editing it should also be possible to edit role, and for reviewers the immute flag should be editable.
5.5. For deleting we can have a button that says "Remove" in the list that shows all the users.
6. You must use UI State router best practives - separate states for list / detail / new
7. Update the favicon to use the topcoder favicon, and change the “Appirio” logo to Topcoder, you can get the topcoder logo from the main site.
Notes
- Please make sure that you are using best practices for Angular.js (for example: ui-router)
- 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)
Timeline
This challenge has shorter submission / review / appeals timeline, please make sure you don't miss the deadlines.
Technologies
- Node.js
- Angular.js
- HTML
- Elasticsearch
- REST
Final Submission Guidelines
Submission
- Updated admin-app code with all the requirements covered.
- A detailed deployment guide explaining how to run and test your submission with some meaningful data.