Code Monkey home page Code Monkey logo

mittens's Introduction

Michigan Voter Engagement

CircleCI

Slack channel: #project-mittens

Project Description:

A social tool for encouraging eligible citizens in the Grand Rapids area to vote in local elections.

Project Guide:

The project is split into a backend API and a web frontend.

Maintainers (people with write access):

  • Jace Browning
  • Sam Bleckley

Skills

Skills you may learn or already posses relevant to this project:

  • Django
  • API design
  • React
  • Typescript
  • MobX
  • HTML
  • CSS

Getting Started

  • We welcome contributions from first timers
  • Join the slack channel and tell us about what you can do, and what you'd like to learn to do, and we'll find a first task that's right for you.
  • Core maintainers and project guides are responsible for reviewing and merging all pull requests. In order to prevent frustrations with your first PR we recommend you reach out to our core maintainers who can help you through your first PR.
  • Need to practice working with github in a group setting? Checkout github-playground
  • Updates to documentation or README are greatly appreciated and make for a great first PR. They do not need to be discussed in advance and will be merged as soon as possible.

Setup

Requirements

To run the application locally, you will need the following:

  • make
  • Python, pipenv
  • Node, Yarn
  • PostgreSQL

Follow the guides for macOS and Windows 10.

To confirm these system dependencies are configured correctly:

$ make doctor

Installation

To install backend/frontent project dependencies:

$ make install

Development

Create a development database and seed it with data:

$ createdb voterengagement_dev
$ make data

# OR

$ make reset

To run the backend/frontend development server:

$ make run

Unless MANDRILL_API_KEY is set, sent emails will appear in your terminal.

mittens's People

Contributors

aaronjamesking avatar allen616 avatar brandonklotz avatar craiglabenz avatar dependabot[bot] avatar dianeumoh avatar diiq avatar jacebrowning avatar psollars avatar slothwerks-studio avatar tammycole avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar

mittens's Issues

How should we handle erroneous region names from the SOS?

For example, many districts have the word "district" twice in their name:

Should we clean this up in our own data and consider "16th District" and "16th District District" to be the same region? Should we defer cleanup until presentation of the data? Something else?

Discussion: Who can see my registration?

I propose we implement a one-way friendship system similar to Twitter DM permissions. We'll want a better term for this, but I'm going to use "follow" for simplicity.


If I follow you then you can see my voter progression (from registration through voting). You can also choose to "hide" me in the event that I am not really your friend.

If you follow me back then I can see your voter progression.

If I know your (A) voter information (legal name, birthday, zip code) or (B) registered email address, then we are implicitly following each other. You can always hide or block me.

If I don't know your voter information, but do know your email address, I can invite you. We will be following each other when you complete signup.

There may be additional levels of "friendship" later on that let voters share opinions.

Email confirmation link redirects to a 404

  1. Sign up for email alerts
  2. Click the "Confirm Registration" link
  3. After going to vote.citizenlabs.org/login, you get redirected to vote.citizenlabs.org/registration-verified which says "Sorry, that page does not exist."

Check if zip code is in Michigan

I just gave this a spin, and I live in Georgia. When I enter my zip code it just says "Hmm! I wasn't able to find you. Is this information correct? Did you use your legal name?" - maybe instead it should do a validation check, and if the zip code is in another state, link to that state's Secretary of State or voter registration page?

Trim spaces from inputs

The error message on iOS Safari does not indicate the requirements of the zip code field.

Indicate that your legal name is requried

I entered "Josh" instead of "Joshua" and was told "Hmm! I wasn't able to find you." I should have known to use my legal name and the bot did ask me to clarify, but perhaps a prompt in the hint text would help avoid this easy mistake altogether?

Prompt users to check the spelling of their name

Rather than immediately tell someone they're not registered to vote, we should ask them to confirm the correct spelling of their name before sending them to the "unregistered" page in the event that the SOS comes back negative.

Displayed birthday is one day later than entered

A user entered a birthday of April 22, but it was displayed as April 21 on the frontend after submission.

The backend logs show the correct date: GET /api/registration/?first_name=<...>&last_name=<...>&birth_date=1980-04-22&zip_code=<..>.

This was after 10pm EDT (when considering timezone bugs).

Accept numerical or text for Birth Month

Current behavior: It seems the birth month must be the name of the month spelled out. The name must even be in proper case.

Desired behavior: The birth month should accept both the month name (any case) or its ordinal number.

Example: "7", "July", and "july" should all be accepted as "July".

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.