-
Notifications
You must be signed in to change notification settings - Fork 30
Schedule Google Sheets Integration
The schedule published on the homepage is dynamically loaded from a Google Sheet. This enables organizers to quickly update the schedule without touching a line of code.
Google Sheets API response is cached hourly. If the schedule is loaded at 3:01pm, the website will show the same schedule until it re-fetches at 4:01pm. This helps to prevent exceeding our API request limit, as well as avoid high request latency (an un-cached schedule load blocks the home page from displaying to the user).
This includes error responses, so if the schedule is broken at 3:01pm, it'll stay broken until 4:01pm (there should be a user-friendly message to check back later during this time).
Caching is ignored in development, unless a tmp/caching-dev.txt
file exists (file content can be empty). This can be useful for testing the cache (see config/development.rb
for details).
- An API key is required to read the sheet
- The Google Sheet's sharing permissions must be:
- Shared with the API Key's associated Google user
- Made public ("Anyone with the link" or "Public on the web" link sharing)
The API Key can be obtained in Google's Developer Console. Enable the Sheets API, and create an API key credential. If possible, restrict API access to specific IP addresses.
For BrickHack, this is handled on the codeRIT Google account.