Giter Club home page Giter Club logo

nominatr's Introduction

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

nominatr's People

Contributors

michaelfromyeg avatar

Watchers

 avatar  avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.