Piazza-Oncall monitors piazza and pings the staff Slack to help with unanswered questions. It assigns a staff member to each question (with individual staff members for each followup) and sends out a daily reminder for all unresolved questions and followups.
All packages are detailed in requirements.txt. Include a .csv file named staff_roster.csv in the program directory. The staff roster should minimally contain email
, name
, and Weight
columns; extraneous columns will be ignored. Name/email will indicate the staff member to tag in slack while the Weight
indicates their probability of being selected for a random post/followup — note that Weight
is capitalized.
If a question remains unresolved for some customizable (default: 3) days, the reminder includes @channel
to encourage a faster response to the post or followup. A post’s age is determined by its date of creation, while a followup’s age is determined by its last nested comment. For example, a 5-day old (unresolved) followup with a 3-hour old reply would not be marked as high priority, since it would be dated at 3-hours old. However, it still would be included in the regular reminders since it’s still marked unresolved.
The syntax oncall: <email_username>
can be used to assign specific staff members to a post. For example, oncall: oski
in the body of the piazza post would assign the staff member with oski@berkeley.edu to the post. Staff members assigned with the oncall syntax are responsible for the entire post, including any followups (no new staff members will be assigned to followups).
Oncall can also be used to assign multiple staff members. For example,
oncall: oski
oncall: gobears
in the body of the piazza post would assign the staff members with emails oski@berkeley.edu and gobears@berkeley.edu to the entire post, including any followups.
To prevent a staff member from being assigned to an unresolved post, use the syntax oncall: ignore
. Ignore takes precedence over any other assignment. For example,
oncall: oski
oncall: ignore
would result in no staff members being assigned to the post, even though oski was specified for assignment.