Piazza → Slack staff backchannel
Create a Piazza account for <course-number>@<slack-alley-domain>
.
Add that user as an instructor in the class.
Set their email settings for the class to: real time + real time + follow everything.
Create a DynamoDB item:
{
"cid": "class",
"key": <course-number>,
"val": {
"piazza_nid": <piazza-network-id>,
"piazza_password": <piazza-account-password>,
"slack_channel": <slack-channel-id>,
"slack_token": <slack-app-token>,
"user_domain": <student-email-domain>,
"user_info": <prefix-for-user-info-web-page>
}
}
For users with non-user_domain
email addresses on Piazza, create DynamoDB items:
{
"cid": "email",
"key": <email-address-on-piazza>,
"val": <username>
}
After creating Terraform configs, use lambda/local
to run locally.
See:
- https://github.com/dyhwong/piazza-api (e.g.
Content.js
) - https://github.com/hfaran/piazza-api (e.g.
rpc.py
,nonce.py
)
In setup
, create terraform.tfvars
and terraform.auto.tfvars
following the examples.
In the development VM: in lambda
run npm install
, and in setup
run pack
to generate the Lambda deployment package.
After Terraform, complete SES domain verification.
To test on-email
in the Lambda console, create test events:
{
"Records": [ {
"ses": { "mail": { "commonHeaders": {
"messageId": "<"<piazza-message-cid>"@piazza.com>",
"to": [ <course-number>"@"<slack-alley-domain> ]
} } }
} ]
}