Code Monkey home page Code Monkey logo

early-voting's Introduction

civictechatlanta

Civic Tech Atlanta's main website

Getting Started

You need to be in the directory that contains the docker-compose.yml file

Run the following command in a terminal:

docker compose up -d 

This should be all you need to get the project up and running

early-voting's People

Contributors

getabetterpic avatar luigi avatar mapsandapps avatar mollietaylor avatar rhewitt22 avatar

Stargazers

 avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

early-voting's Issues

Write generator for html pages

This website shouldn't really need javascript to work. Let's replace most of the javascript by building a generator that we can run to create each page for the site and limit the JS to things like maps.

Clean up repo

  • Remove unused files and directories
  • Also update README to match
  • Note that contributors need to comment out aws line in Gruntfile (or change it so they don't need to
  • Include instructions on how to deploy and who can deploy

Among other things, this will make it easier for people to contribute to the project

Sanity check data for November 2016 election

Sanity check the site content based on what the scraper and parser are outputting (e. g. look for places that close for lunch (it doesn't handle those well) or places that supposedly close before they open) and then maybe plan to make some phone calls if anything needs confirmation.

Write copy about election day polling places

It's been brought to my attention that several people will show up to an early voting location on election day. If you want to vote on election day, you need to go to your regular polling place, not any early voting one.

Please write some copy to add to the site to clarify this point. For now, this should point them to the Secretary of State "My Voter Page" to find their polling place. https://www.mvp.sos.ga.gov/MVP/mvp.do

UI: Automate displaying post-early voting content

It's been brought to my attention that several people will show up to an early voting location on election day. If you want to vote on election day, you need to go to your regular polling place, not any early voting one.

Ticket #49 outlines two new pieces of content:

  1. To be displayed after early voting but before/on election day
  2. To be displayed after one election but before early voting is approaching for the next election

Ideally, this change in display would be automated using the existing Angular app. We already have the election dates included in the app, so if it's currently within a given date range, we can have the site display different content.

Combines with #49 and #50 as a feature

Automate running of scripts

  • Utilize heroku to store the ruby scraper and the js parser
  • Create a cron job on heroku and schedule it to run ruby scraper and js parser periodically

early-voting

Relates to #46

UX: Display different content once early voting ends

It's been brought to my attention that several people will show up to an early voting location on election day. If you want to vote on election day, you need to go to your regular polling place, not any early voting one.

Once early voting ends, we should change what's displayed on the site to make it clear that early voting has ended and that you should go to your normal polling place on Tuesday if you haven't voted yet. What content should be displayed at this time?

Additionally, what content should be displayed once one election is over and early voting has not begun for the next one?

Combines with #50 and #51 as a feature

Update npm & bower packages

npm WARN deprecated [email protected]: Please update to minimatch 3.0.2 or higher to avoid a RegExp DoS issue
npm WARN deprecated [email protected]: graceful-fs v3.0.0 and before will fail on node releases >= v7.0. Please update to graceful-fs@^4.0.0 as soon as possible. Use 'npm ls graceful-fs' to find it in the tree.
npm WARN deprecated [email protected]: Please update to minimatch 3.0.2 or higher to avoid a RegExp DoS issue
npm WARN deprecated [email protected]: graceful-fs v3.0.0 and before will fail on node releases >= v7.0. Please update to graceful-fs@^4.0.0 as soon as possible. Use 'npm ls graceful-fs' to find it in the tree.
npm WARN deprecated [email protected]: use uuid module instead
npm WARN deprecated [email protected]: Please update to minimatch 3.0.2 or higher to avoid a RegExp DoS issue
npm WARN deprecated [email protected]: ReDoS vulnerability parsing Set-Cookie https://nodesecurity.io/advisories/130
npm WARN deprecated [email protected]: this package has been reintegrated into npm and is now out of date with respect to npm
npm WARN prefer global [email protected] should be installed with -g```

Have some sort of MARTA info?

At the least, this could be a map of rail and bus stops shown on the Fulton, DeKalb, and Clayton county maps.

Possibly also include regional transit systems?

Improve mobile responsiveness

During the November 2016 election season, 55% of users were on mobile, 6% on tablets, and 39% on desktop. 74% of mobile devices were on iOS.

Add code to parser to handle unusual times (e.g. closing for lunch, duplicates)

5238 Evitt Street Ringgold, Catoosa
3319 Lakeview Dr Rossville, Catoosa
1475 East Fayetteville Road Riverdale, Clayton
5401 Anson Avenue Eastman, Dodge
150 Davis St Franklin, Heard
111 Davis Rd Stockbridge, Henry 1
408 Thomaston Street Barnesville, Lamar 0
56 W Main Street, Suite 8 Lakeland, Lanier 0
825 Memorial Drive Griffin, Spalding 0

UI: Display different content once early voting ends

It's been brought to my attention that several people will show up to an early voting location on election day. If you want to vote on election day, you need to go to your regular polling place, not any early voting one.

This ticket is for building out the UX designed in #49

Combines with #49 and #51 as a feature

Mailing list

screen shot 2017-02-21 at 9 24 45 pm

Subtasks:

  • Decide on form fields
  • Write copy for form
  • Write copy for at least a couple campaigns
  • Style form
  • Embed form in website
  • Write script to know which counties have early voting and when early voting begins (can vary by county)
  • How to send an email to only people in counties with an election

Create a filter service

The service should store user settings for the following:

  • Store the user's County
  • Reset defaults function
  • Open Late (@mollietaylor what hours are considered 'late')
  • Open Saturday
  • Open Sunday

Create a Filter view

The filter view should have all of the options the user has to filter early voting locations. Each item in the list of options should trigger a toggle function on the Filter service. The view should use ng-class and the value of the filter setting to change the look of the list item.

I'm thinking if the filter is active (true) it should be green? If the filter is inactive (false) it should be red? Maybe we should use icons (checkmark or x), too.

Build System

Angular is great for writing modular code, but you often end up with a pretty long list of JS files to include. I suggest setting up a build system with gulp or grunt to concatenate these files together to reduce HTTP requests.

On iOS, keyboard keeps popping up after using find-as-you-type

To reproduce on an iOS device on Chrome or Safari:

  1. Use the county search to type a county name
  2. Tap on any county that pops up
  3. On the subsequent screen load, tapping on any part of the screen causes the soft keyboard to pop back up, even if it's dismissed

Allow user to filter polling places in their county

Some possibilities to consider:

  • Open now
  • Open today (or tomorrow if it's currently after 9pm, using existing logic)
  • Open on Saturdays
  • Open on Sundays
  • Open Saturdays or Sundays
  • Open after 5pm
  • Open after 6pm
  • Open after 7pm
  • Open after 8pm
  • Open before 9am
  • Open before 8am
  • Open the first week of early voting
  • Open this week
  • Reset filters
  • More?

Instead of "datesSimplified", on county pages, display what time each polling place is open today or tomorrow or what day it opens

Examples:

Before early voting begins: "Opens October 17"

Before 9pm Eastern on an early voting date: "Open today, Oct. 17: 8am - 5pm"

After 9pm on an early voting date: "Open tomorrow, Oct. 17: 8am - 5pm"

Or: "Closed today. Click for dates."

After early voting (inc. last day after 7pm eastern): "Early voting has ended"

Note: make sure daylight savings time is handled and that times are converted to eastern

Make map 100% height

For some reason I can't get the map to be anything but a pixel based height.

See issue.

My styles:

html,
body {
  height: 100%;
}

.angular-leaflet-map {
  height: 100%;
}

Blog posts

  • Why would you want to vote early?
  • Info about upcoming elections/candidates/ballot measures
  • Difference between early & absentee

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.