GithubHelp home page GithubHelp logo

🗓 VotingDeadlines.ts

This is a project for validating, organizing, and visualizing voting deadlines, starting with the 2020 elections in the USA.

The data pipeline is written in TypeScript, and the webapp is built with Svelte.

The underlying data (official state voting deadlines) is hard to perfectly capture in code, and keeps changing, so contributions are welcome.

Dependencies

Most can be installed with yarn in the packages/web folder.

On macOS, install trash-cli with brew install macos-trash (used by bin/ scripts).

Organization

  • The webapp is in packages/web.
  • The data pipeline is in packages/web/src/data.
  • A WIP setup for visual and E2E testing is in packages/e2e.

Quick start

  • Run yarn dev in packages/web to start the Svelte webapp.
  • Run yarn export in packages/web to build a static version of the webapp.
  • Run make help to see a list of available commands.
  • Run make data at root to pull/scrape fresh data.
  • Run make merge at root to merge source data to packages/web/src/data/.

Data pipeline

Data is ingested from the sources below and merged into the packages/web/src/data/data folder.

Vote.gov

Vote.gov contains voting registration deadlines and links, and is open source. To ingest, we do this:

  1. Download the source code of the website (data-sources/vote.gov)
  2. Keep just the file we care about (vote.gov/state-data.raw.json)
  3. Clean the source JSON into a simplified format (vote.gov/state-data.cleaned.json)
  4. Parse the JSON data into a standardized format (vote.gov/state-data.parsed.json)

VoteAmerica

VoteAmerica.com data is scraped to get a second opinion about the Vote.gov data. Currently most of it is not merged into the final file, except for some official state website links.

Vote.org

There is some code to scrape Vote.org but it is not currently in use due to that data being relatively unstructured and harder to parse.

Changelog

See CHANGELOG.md in this folder.

References

Voting Deadlines 2020's Projects

vote-gov icon vote-gov

This repository contains the files and infrastructure to run the current vote.gov website.

votingdeadlines icon votingdeadlines

A project for validating, organizing, and visualizing voting deadlines in the USA.

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.