Challenge Overview
Project Overview
Currently a user can find a great deal of information about their Google Apps Domain through the Admin Console when logged in as an Admin to their Google Apps Domain. Our customer is looking for a tool to query the Google Apps Domains through Google APIs and provide a dashboard view. This will put all of the settings in a read-only view all in one place. This will also allow individuals who would not normally have access to this information the ability to at least have read access to the Google Apps Domain that their company maintains.
Competition Task Overview
This challenge should implement following changes and fixes:
Codebase: https://gitlab.com/jmartensappirio/google-domain-dashboard
Please use contact manager to request access. Your gitlab username must be included in the request.
-
Remove Print and Export buttons
-
Error handling on quota errors - Implement a single backend error handling process for all errors. Suggest a 5 count exponential back off process. Here is Google’s documentation on when to retry and how: https://developers.google.com/admin-sdk/directory/v1/limits
-
Split groups loading process (get all groups and get group members) - As the code gets the groups, instead of getting the group members inline, create a task to get the group members. 1 task per group.
-
Update the loading screen to include the 3 loading operation. Example:
-
XX users loaded
XX groups loaded
XX groups members loaded
-
Data storage update - store all data in the datastore then populate the memcache for better performance. If memcache is cleared get the data from the datastore. The datastore refresh is on a timed update every hour, configurable from the application.properties file. Plus the UI will have a Refresh Data button to force a data refresh which will utilize the current UI when data is loaded. This data load will also occur if the datastore is empty.
-
Use App Engine Cron Service for the hourly data load to the Datastore - https://cloud.google.com/appengine/docs/java/config/cron
-
-
Checkmarx security fixes - please fix the following issues identified in the attached PDF.
-
Unchecked Input For Loop Condition
-
Client Potential Code Injection
-
Client Potential XSS
-
Testing
The winner is required to provide the deployed google app engine project endpoint.
Technology Overview
-
Java 6
-
Google App Engine
Final Submission Guidelines
- Deployment Guide
- Source Code
- Deployed App Engine Project