Challenge Overview
We previously launched a contest to create a Google Calendar Sidebar Gadget (http://community.topcoder.com/tc?module=ProjectDetail&pj=30045003), in this contest we want to update it a bit:
- The gadget will only be active if the selected event is owned by the authenticated user. It would be ideal if the gadget were hidden entirely if an event that they did not own was selected.
- The gadget should have two dropdowns, these can be made fairly generic Selection 1, Selection 2 with a number of options. These should be able to be set within a config file. Also these values will be sent in the call to the web service. It will also be sending information about the event to the web service, date, time, subject, location, owner and invitees.
- Under this should be where the user selects what email to associate this export to. It should not include anyone in the event that is part of the owner’s organization. The user’s organization can be stored in a config file. If only one other person was in a selected event there would be no need for a drop down. But if there were more than one external attendee then there should be a dropdown allowing the user to select one email from a list of attendees not in the users organization. By organization, it's just the domain part of user's email address.
- Button at bottom of gadget: Submit to IRIS. Once the submit button is pressed the data should be shown arriving or being processed by the web service. Often we’ve seen this implemented in Node.js, but that is not critical, whatever choice is selected it must be easy and free to implement and test. The web service should return a value once received, could just be a unique ID or the like. This returned value and the selections that the user chose should be stored in event attributes. Once sent these values should be shown in the gadget for that event. Once, it’s sent the user would not be able to change the dropdown values. The Submit to IRIS button would change to Resubmit to IRIS. And if pressed would send any event data that may have changed. The options and unique ID would remain the same.
Using a Google Calendar Sidebar gadget authenticate to the user’s account using the Calendar API auth scope.
Any submission should not utilize any element of the DOM that is a part of the web page of the service that is provided, that is to say that you should not scrape the DOM or insert elements into existing DOM of Google Calendar interface for example. Any functionality should be implemented using Google APIs.
Many of the above functionalities should have already been implemented in the winning submission of previous contest, but please double check.
Note that the previous winning submission store configuration data in user preferences, you should load them from a configuration file instead. And for the custom event attributes (e.g. Has event been sent to WS), please store them together with the event data. Put them in the user preferences (like previous winning submission is not acceptable).
Final Submission Guidelines
Submission Deliverable
- Updated Source Code
- Detailed Deployment Guide with verification steps