Challenge Overview
Challenge Requirements
Right now in the admin-app, we have two menus to import users:
Unfortunately, neither of these are working. The purpose of this challenge is to fix Import Users and make it work again, let's leave Import SSO Users unchanged for now. Below are the detailed requirements:
- The admin chooses the csv file, the admin app will load all records into the page in a table. For columns ssoProviderType, ssoProvider, and group, we should also allow the admin to bulk change the values, for other columns the admin should be able to edit them individually.
- The admin should be able to choose which records to import, by default all records can be selected.
- The admin app should import the users sequentially (i.e. one by one) and show the import status on the UI (i.e. successful or failed for each record).
- The admin app should be able to re-export the records in the table to csv by status (i.e. admin can export successful loaded users or failed users or both).
- For users failed to be imported, include an extra column that contains details of the failure (example: error message from the api).
- 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.