Challenge Overview
Challenge Requirements
For this challenge, we will add project listing feature to the existing Work page. Here are the details:
1. Add a new menu named Projects that will show under the Work menu.
2. The new projects page will list all projects and this can be the default page under work menu. The existing Work page will now also be a sub-page named "Work" under the root "Work" menu.
3. Allow user to filter on status (pick 1 status, or All)
4. The page should display Project ID, Name (link to project detail in work admin), Type, Owner handle (link to profile), Copilot handle (link to profile), Submit Date, Current Status, Current Work Step
5. The page should make the list sortable on all columns
6. The search will be done against an elasticsearch instance, in production the instance will have all project data indexed. In this challenge, you should use the elasticsearch docker image for testing, we'll provide some sample data in the forum and you can create indexes for the data in your local docker image.
7. You should not hit the search endpoint of elasticsearch instance from the pages directly, instead you should create a lambda function to do it and the page will call the lambda function to perform search. We did something similar for member-search and we'll provide the code for your reference.
8. You must use UI State router best practives - separate states for list / detail / new
9. The elasticsearch instance endpoint should be configurable, just like API_URL, WORK_API_URL, etc...
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 with the specified project listing page and the lambda function implemented
- A detailed deployment guide explaining how to run and test your submission with some meaningful data, this must cover how to run the docker image, setup data / index in elasticsearch and test locally.