michaelfromyeg / nominatr

A tool to allow you to grab, manipulate, and act on Qualtrics survey data, on an event based trigger. Currently being used to manage SUS' 2021 Spring Election.

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

nominatr

A tool for UBC students to interact with Qualtrics survey data in real time and send emails based on that data. Currently being used for managing SUS' 2021 Spring Elections.

The app:

  • Downloads Qualtrics nomination data using the Qualtrics Java SDK
  • Processes that data and creates a list of generic response objects
  • Creates lists of nominators and nominees
  • Tallies nominations, using additional logic to verify nominations and fuzzy match names
  • Caches data from Qualtrics to be re-used on subsequent runs, and track who needs to be emailed still
  • Emails updates to the EA team, nominees, and nominators (on a cron schedule)

Notes

Just general notes for understanding the code base.

Sending Emails

When we build data for emails, it comes in the following format:

  • Elections team Key-value of key=table (nominees, nominators), value=list (to render in table, need key-value again)
  • Nominees List of key-value that is key=email (nominee's email), value=data; data consists of key=table (summary, nominators) value=list (key-value again)
  • Nominators List of key-value that is key=email (nominator's email), value=data; data consits of key=nominee, value=position

Build

TODO

Maven

TODO

Gradle

TODO

TODOs

  • Send daily email to SUS EAs about current election status (with logs, raw data)
  • Send daily email to nominees until they have enough nominations
  • Send email receipt to nominators for who they nominated
  • Verify candidates to not get repeat emails
  • Provide option for candidates to opt-out of emails
  • Add code formatting
  • Configure mock-CMS to allow some data to be changed "on the fly"
  • Create CI/CD pipeline and deploy to AWS (ca-central)
  • Fill in Javadoc and improve general documentation
  • Write README and contributing guidelines; provide use-case for other student elections
  • Validate that one person doesn't nominate 2 people for the same position

About

A tool to allow you to grab, manipulate, and act on Qualtrics survey data, on an event based trigger. Currently being used to manage SUS' 2021 Spring Election.

License:MIT License


Languages

Language:Java 71.5%Language:FreeMarker 16.1%Language:HTML 12.1%Language:Shell 0.3%