The website for SEC Twin Day 2023.
Make sure you have a compatible version of Node installed.
This project uses the same service account as hall-monitor, so go there for
information about creating a google sheets service account and downloading a credentials file. You should have a keys.json
that looks something like this:
{
"type": "service_account",
"project_id": "...",
"private_key_id": "...",
"private_key": "-----BEGIN PRIVATE KEY-----\n...\n...\n...\n...\n...\n-----END PRIVATE KEY-----\n",
"client_email": "...",
"client_id": "...",
"auth_uri": "...",
"token_uri": "...",
"auth_provider_x509_cert_url": "...",
"client_x509_cert_url": "..."
}For this app, instead of using a keyFile to authenticate, credentials are passed via the credentials property from
environment variables. To define these variables locally, create a .env.local file in the root directory that declares
your CLIENT_EMAIL, PRIVATE_KEY, and the ID of the app's backing spreadsheet. Your .env.local file should look
something like this:
CLIENT_EMAIL=...
PRIVATE_KEY=-----BEGIN PRIVATE KEY-----\n...\n...\n...\n...\n...\n-----END PRIVATE KEY-----\n
SPREADSHEET_ID=...
For the PRIVATE_KEY, make sure that the \n newline characters are kept as \n and not converted to actual newlines,
or the .env will not be parsed correctly.
After defining environment variables, run npm install to install dependencies and npm run dev to start the dev server
on localhost:3000.
Every push to main automatically rebuilds and deploys the site to Vercel with GitHub actions, using the configuration described here.
To set environment variables in the workflow, CLIENT_EMAIL, PRIVATE_KEY, and TWIN_DAY_2023_SPREADSHEET_ID are kept as
organization secrets.
