Challenge Overview
Challenge Requirements
For this challenge, we'll make some changes / enhancements to the existing admin app. Here are the details:
1. On the "Project Detail" page (url looks like this: /#/index/work/list/1461592014967-8c0c9bfd-4690-4628-9ed6-1b4ab54030c9), we need to add another tab that says "Messages" and it will show all the messages in the project. You need to call an api like https://api-work.topcoder-dev.com/v3/projects/1461592014967-8c0c9bfd-4690-4628-9ed6-1b4ab54030c9 to get the complete project object and then extract all messages from this object and show them under the Messages tab. You will need to mock this API to return a response json that follows the sample json we provided in the forum (messages.json).
2. Right now on both the list view and details view, the app is showing user id instead of handle in multiple places, we need to update the app so it shows user handle in all places instead of user id. You will need to call an api like https://internal-api.topcoder-dev.com/v3/members/_search?query=userId%3A40138942%20OR%20userId%3A40138941 to get the handles by userId and you can call this api with multiple user ids to save the number of calls to the API, query format is urlencoded elasticsearch query format - userId:{id} OR userId:{id}. Again you will need to mock this API to return a response json that follows the sample json we provided in the forum (users.json).
3. Show customer and copilot's email addresses on project detail page, you should be able to get the email through the search mentioned in #2.
4. On list view, add new searchbox to search by user handle and user email, this can be client side searching since we don't have API to support it yet.
5. Please make sure all these API endpoints are configurable so that when we deploy it we can simply update config.js to consume the real api instead of the mock api.
6. You must use UI State router best practives - separate states for list / detail / new
7. You can reuse the existing WORK_API_URL config for the API to get project object, you can reuse the existing ES_PROJECT_API_URL for the member search api root url, but you will need to provide a mock implementation for the member search.
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
Final Submission Guidelines
Submission
- Updated admin-app code and mock api with all the requirements covered.
- A detailed deployment guide explaining how to run and test your submission with some meaningful data.