Giter VIP home page Giter VIP logo

wrvotes's People

Contributors

acant avatar hjroaf avatar jeffwoods avatar kejobuchanan avatar kristinataylor avatar madamedujour avatar mboos avatar nifeoluyemi avatar pnijjar avatar qedi-r avatar s-kennedy avatar toddturnbull avatar westacular avatar

Stargazers

 avatar  avatar  avatar  avatar

Watchers

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

wrvotes's Issues

Look up relevant races by postal code

Here is a wishlist item that might already exist: can we type in a postal code and then have a list of the relevant races come up?

  • What ward am I in? What city am I in?
  • What regional council seats do I vote for, if any?
  • What school board races are relevant to me? (We might allow users to limit the races to the school board that applies to them, but I have privacy concerns about this.)

Along with the list of races it would be good to link to the candidate lists for these pages (which are hosted on the assorted municipal websites -- I do not think they need to be compiled here).

I am tempted to suggest that we use this information to figure out the parts of the region that are most interested in the WRVotes website. However, we should make it clear to users that we are tracking this information if we do this, and we should make the results public.

It is not clear to me that there will be much demand for this, but given the large number of races during a municipal election, there might be.

Populate pages with 2018 candidate info

The links to current 2018 candidates for local municipalities can be found in the wiki here: https://github.com/CivicTechWR/WRvotes/wiki/2018-Candidate-Listing-Pages

I set up a possible site structure (other ideas are welcome) where per-ward candidate info could be structured under municipality/ward_number like https://github.com/CivicTechWR/WRvotes/tree/master/docs/waterloo/7

We won't be able to fully populate these until nominations close in July, but it's worth sorting out structure for the content we want to share, early.

Allow aliases for positions

Some events and surveys are very broad (eg they are mailed out to every municipal candidate in the region). I am working on an alias system that will allow us to tag such surveys more cleanly. They will still show up in all applicable positions.

  • Fix the python script to upload to the Google calendar
  • Create the alias .csv file
  • Use this file as an additional source of IDs to look for: break the aliases for a position into an array, and then filter the group of things to display by each of the aliases, concatenating them and removing duplicates
  • Retag some entries and add the new broad events

Monitor Facebook/Reddit

Somebody or somebodies should volunteer to monitor these social media sites for content we should link to from our site.

Website needs a test suite

Probably all good software should have a test suite. I do not have a good sense of how to do this for websites, although I have heard buzzwords. Can somebody help set up the infrastructure for this, and then help me get started on how to test things and what to test?

How should people contact the site?

The civictechwr.org site lists an email using some magic I don't quite understand (it uses a my-email tag which I guess dissuades spammers). That might work for waterlooregionvotes too, but I do not know how it is implemented.

Another issue: should one person be getting these emails or should it be a group of people? Is there a way to set up a group alias?

I was also looking how to set up a contact form on Jekyll on Github pages. It looks like this requires a third party service to be a backend. Is there a way around this?

The website should be accessible

As far as I know the clickable map is not terribly accessible to the blind. We should figure out how to make things convenient for most voters and accessible to those who have disabilities.

Consolidate about.md and README.md

I wrote some stuff in about.md . I see that Kristina has updated README.md . I do not think the two files should be identical but there is some cross-pollination that should happen. The stuff I added in about.md should be reworded as necessary. Maybe some of the things I wrote were misleading.

Collect advanced polling locations

Some of the advanced poll locations are well documented. Some (eg Kitchener) are not. We should consolidate this information into the resource pages. See #48 for some starting points.

This may require contacting city and township clerks for additional information.

Improve map rendering

This is an oldish issue but still needs work. We want to replace the map rendering done by default on GH pages with our own Leaflet that has better tuning:

  • Street names should render on the map (right now it is very coarse)
  • There should be an easy-to-use search field
  • There should be messages saying that the map is loading, since rendering the map is slower than loading the home page
  • The region should fit better in the map. It is too small in the default rendering.

What events belong to event listings? What counts as news?

I thought figuring out what would go into the event listings would be easy, but I think there are complications. One complication has to do with the City of Cambridge information night. Should that be included in every race where it applies? This clutters the display. Should it just be listed for Cambridge Mayor? That does not seem right either.

On a related note, one candidate is holding weekly "Town Halls". Should this person get all the town halls listed in the events for that race? This has bad optics.

Do we include blog posts as news? Just established media sites? What is the bar for inclusion?

I have opinions about this but can be flexible. We should figure out a strategy here, however.

Add csv validation

We should be able to validate CSV input files in the scripts/travis_test ruby script.

If we want, we can break this out into a separate script that will be called by Kernel#system to keep as much of the script codebase in Python as possible.

Clarify how people vote and get on the voter's list

Some area municipalities do Internet voting only! Some do regular voting only! Cambridge does both!

It is not clear what the rules are for eligibility in the different municpalities. We need to figure this out and document this.

Curate video site that is crowdsourced

The people at vimex.tv might be willing to set up a curated video site for us, but we would have to get the content seeded, and then we would have to do curation.

I do not think I have the space to do this myself. Others might want to take this on (David from BTI media?)

Handle withdrawn candidates

I've added a column to nominees.csv to identify candidates who have withdrawn - marked as "Y". We should flag these on the site.

I also found one candidate that was missing from the township of Wilmot's website that had been listed previously, is showing in the data as having registered, and isn't listed as having withdrawn (Al Junker). Haven't figured out what to do with this one yet.

Website should enforce https

Websites of the form foo.github.io automatically use https. There seems to be some confusion as to whether third party domain names can use this, but I think this is resolved. It even appears that we are being encrypted! However, we are not enforcing encryption, so that needs to happen.

See: https://blog.github.com/2018-05-01-github-pages-custom-domains-https/

Also: https://help.github.com/articles/securing-your-github-pages-site-with-https/

I do not see a settings button, so maybe I am blind or maybe I do not have sufficient rights to change this setting.

Cooperate with other groups who have similar goals

There are several other groups doing similar things to this project. Where possible, I suggest that we avoid reinventing the wheel. It may make sense to contribute to another project rather than start a fresh one from scratch. At the very least there should be some room for collaboration.

http://waterlooregion.org : This is the Social Development Centre of Waterloo Region. They tend to get heavily involved in collecting all-candidates meetings and candidate information.

http://waterloovotes.com : This is a barebones site from the Waterloo Voter Support Committee.

Indirectly, http://waterlooregionconnected.com has been active in municipal politics, and have done some publicity around these issues.

The Federation of Students at UW also typically run "get out the vote" campaigns on campus. I am guessing the WLU and Conestoga College have similar initiatives.

Find meet-and-greets on candidate websites

Some candidates are holding events of their own! We should find out who is doing this and get their events on our website. In the best case we can get these people or their campaign staff to submit events to us so we do not have to chase them down.

Find possible ways to advertise the site

In 2014, the majority of attention on the #wrvotes hashtag came from Kitchener and Waterloo. Online resources for Cambridge and the townships was sparse. Maybe it makes sense to purchase advertising for the website to get out the word amongst populations that are not already well-connected to municipal politics?

Some ideas:

  • Facebook
  • New Hamburg Independent
  • Waterloo Chronicle/Kitchener Post
  • Woolwich Observer
  • Ayr News

Events CSV should be imported into Google Calendar

It does not need to be Google Calendar, but it should be something that can display events in a calendar format. @slin1202 has volunteered to take this on.

For Sean: the code I wrote to pull events from Google Calendars is here: https://github.com/pnijjar/google-calendar-helpers .

You will also want to send your GMail address to [email protected] so that Kristina can give you write access to the calendar. Then you can generate an API key and use it to post events.

It is an open question as to whether it is better to regenerate the calendar from scratch on each run of the script or to modify existing events.

Google docs should not be world writable

Currently it looks like anybody who has the secret address for the Google spreadsheet containing the list of candidates can write to that list. This is convenient for me, but it is a bad idea. Malicious actors can delete candidates (so they do not show up on our list) or change their information.

The site should have a favicon

We probably should have a nice logo and a facelift as well, but getting some kind of favicon would help people who view the site in a web browser.

Allow users to choose their candidates and print a cheat sheet

Since we always have so many candidates to choose, I an guessing that a lot of other people have to write down all of the candidates they intend to vote for. I know that I did.

One each of the ward pages, we could add form elements which would like you check off the candidates that you want to vote for, and then have a button that will print out a sheet with those names and positions.

This might be something that could be implemented for the 2022 election.

Candidate info should include phone and email

The homegrown Google doc does not include phone numbers or emails for the candidates. This should be included. (I do not feel strongly that home addresses are necessary. In fact that is kind of creepy.)

Make it easy to link directly to the map

I posted a link to the site in reply to a KitchenerPost article with a terrible map.

And I noticed that someone clicking on the link would need to scroll down in order to see the map. I think that we should make it easier to link directly to the map. Some options:

  1. add an anchor tag into the front page, so that we can link to the map section directly
  2. create a seperate full screen map page

1 is easy, so I can do that first.

Are there any opinions on 2? I imagine something list the default OSM view with the wards and address search included.
https://www.openstreetmap.org/#map=12/43.4372/-80.5215

Parse and filter survey results

This is a feature request from Tori. She would like to see where candidates stand on various issues according to surveys (and candidate websites?).

Here is what would be required from an infrastructure point of view:

  • We would need a set of topic tags: Intensification, Transportation, Safe Injection Sites, etc
  • We would probably need a table of survey questions
  • We would probably need a table of survey answers. Each answer would be associated with a survey question.
  • We would need something (Javascript, I am guessing) to filter a big table by topic
  • We might need to filter by position as well

I think this is a neat idea, but I do not think I am going to implement it myself. It is tough enough populating the site with content without parsing a lot of surveys.

If we set up the CSV files properly I don't think the sitebuilding side is terrible, but it would be a few days of work. Bit I think setting up the CSVs properly is nontrivial as well. Still, if somebody wants to take this on as a technical project then it is available.

Update site structure to allow for adding page nav structure

We need a way to add basic navigation to the site, at the very least a "home" button when you get into sub pages like http://civictechwr.org/WRvotes/waterloo/7/ (linked from the properties in the Waterloo Ward 7 Geo data)

By default, github pages doesn't enable editing of headers and footers and whatnot, but github pages does if you tweak it a bit. It looks like these instructions would help: https://help.github.com/articles/customizing-css-and-html-in-your-jekyll-theme/

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.