Challenge Overview
This challenge will be updates and enhancements to a pre-existing Chrome extension. Please make sure that you've read the original challenge specification and understand the requirements. Current source code is attached below.
Fixes and new functionality required:
- Fix error launching calendar
Current version will show this error message upon initial launch of calendar service. Find and fix the issue:
- Fix OAuth authorization flow
Update the refresh token flow in such a way where it is not seen by the end user
You may use the Chrome.Identity API rather than keeping the current code
- New Functionality - Add support for recurring events
Currently, the extension will hang at "Loading..." when a user launches a subsequent instance of a recurring event
Update this so that Extended Properties can be written to each instance of a recurring event individually
- New Functionality - Button to add details to event description
Add a button to the extension called "Update Description"
When clicked, this should populate the following information in the calendar event description:
Contact:
Staff:
Advance:
Photo: yes/no
The values should come from the settings currently shown in the extension textboxes / checkbox. Please make sure that this information is prepended to the beginning of the current event description. It should not overwrite the current description. This should appear in the description immediately (not after the user has saved the event).
If this button is clicked a second time, details should be updated (don't add them a second time).
Please make sure that this works both for new events (not yet saved) and edits to existing events.
- New Functionality - Friendly error handling
If the extension encounters a condition where the extended properties dialog box cannot load, attempt to fix the error condition, and if not possible, provide an intuitive error message to the end user.
The application should not hang with only a message of "Loading..." shown.
Final Submission Guidelines
Please update existing documentation to provide details of new functionality added. It is not necessary to re-record a video demo.
Extension should be packaged as a zip including any necessary a manifest.json (v2) and all necessary html, js, and any other necessary components.
Google Calendar API v3 (https://developers.google.com/google-apps/calendar/) must be used for all access to the calendar. All requests should be authorized using OAuth 2.0 (https://developers.google.com/google-apps/calendar/auth).
Supporting open source libraries are allowed. Please ensure they are included within the zip.