Challenge Overview
-
Tool will provide a web based GUI for users to access form
-
Tool will present a form for creating a Google Group and automatically create that group using the Directory API (groups)
-
User will be asked to enter the following general information to create a group:
-
Country (drop-down menu - required)
-
Country should default to a specific value based upon the logged in user’s OU (queried via the Directory API (users))
-
-
Group ID/Email (free text, up to 60 characters - required)
-
Email should always end in “@domain.com” (this is static for all groups)
-
Email should always contain a prefix of the 2-digit ISO country code and the “_” character (example: user chooses country of United States and enters group email address of “mygroup”, actual group address will be set to us_mygroup@domain.com)
-
Allowable characters include letters (a-z), numbers (0-9), dashes (-), underscores (_), and periods (.) only.
-
Email address must not end in “_auto@domain.com”
-
-
Group Name (free text, up to 60 characters - required)
-
Group Description (free text, up to 300 characters - optional)
-
-
Form will be able to perform checks against the text to make sure it meets technical and business requirements
-
When the user clicks submit the form will check if the the group id/email exists in Google Apps, if it exists it should display an error and ask for a new email
-
Tool will add the user submitting the form as a manager to the group
-
-
Tool should present a form for configuring initial Group Settings. It should set a number of settings for the new group using the Groups Settings API. Some of these will be configured by the end user upon group creation via the form. Others will be static and set by the administrator.
-
Settings configured by end user in web form:
-
Who can email group (whoCanPostMessages) default=ALL_IN_DOMAIN_CAN_POST
-
Allow external members (allowExternalMembers)
default=false
-
-
Settings configured by administrator - always forced to given values:
-
Show in Groups Directory (showInGroupDirectory = true)
-
Content archived in web UI (isArchived = false)
-
Permission to view members (whoCanViewMembership = ALL_IN_DOMAIN_CAN_VIEW)
-
-
The settings listed above are provided as an initial example, and they are subject to change. It should be possible for an administrator to configure these without source code edits.
-
-
Tool will present a form for adding users to the new group in bulk using email addresses or lookup, and it will update membership via the Directory API (members). This part of the tool should be accessible BOTH during the initial group creation process and as a post-creation group edit mechanism.
-
This should be accessible either during the group creation process or after the group is created. If running after the group is created, it should only be accessible to group managers.
-
Provide a user picker against Directory API (users) (with additional data presented, including first name, last name, email address, country, department, job title)
-
Search based upon first name or last name
-
Search and filter based upon directory API attributes, e.g. Country, Department
-
-
Provide a free-text field where a user can enter a list of email addresses separated by comma, semi-colon, or spaces.
-
Select role for new group members (add as either a member or manager)
-
-
Group creations will be logged
- End users and a customizable admin list will receive emails upon group creation
Final Submission Guidelines
Submission Deliverable
* Source Code
* Detailed Deployment Guide
Note that for the UI, please try your best to make it clean and professional.