jungshadow / yfpp Goto Github PK
View Code? Open in Web Editor NEWA foul-mouthed election information application.
Home Page: https://yourfuckingpollingplace.com
A foul-mouthed election information application.
Home Page: https://yourfuckingpollingplace.com
As a user starts to type an address into the search box, an autocomplete list appears to help them complete the proper address.
No autocomplete appears.
Type into the search box.
Partial work started with PR #4.
This bug arises from the fact that the electionSelect
is only shown on certain tabs, and tabs are hidden if they have no data (see #85).
Not actually sure, there's a few ways I could see this going. I suppose one solution would be to move the electionSelect
higher up in the hierarchy, either in the menu on the left or to display above the tabbed/paginated content (like the search bar does).
You get stuck on the representatives page.
Enter "700 Avalon Avenue, Virginia Beach, Virginia 23464, United States". There are 2 elections for this address: the Virginia Democratic Primary and the Virginia Republican Primary. Note that screenshots are from my local environment running #143. If you use electionSelect
to pick the Republican Primary, the "Polling Place" and "Drop Off Sites" tabs disappear. Maybe this is intended (lmao), but I could see this being a bigger issue if, for example, the election picked by default were the one missing the tabs.
On mobile, users will see the secondary nav fixed to the top of the viewport, allowing content to scroll beneath it.
Entire site, including the header, scrolls.
Site is secure.
Site is not secure.
Browse to the site.
A link exists on the home page that directs people to a place to register to vote (e.g. Rock the Vote).
No link exists.
Ability for user to get the most relevant election information and be able to switch to another relevant election.
Only the most relevant election to the address is selected. The general election is entirely obscured unless queries explicitly.
Query this Atlanta GA address 385 Angier Ct NE Atlanta, GA 30312 before 9/29, the end of the special election.
Site is currently built from a number of custom gulp tasks. To help fortify and future-proof the site, it should be revamped using Facebook's create-react-app.
For example, if there's no ballot data, there would be no ballot tab.
A ballot tab is present with a salty message.
Search an address in a state without ballot information.
Right now, the address has to be entered correctly. A Google Maps address type-ahead would make things infinitely easier for users. It would still allow the user to submit whatever they type, but, if the correct address is displayed by the type-ahead, the user could immediately select it instead of continuing to type.
The card expands to the entire content area to show a interactive map of the currently selected location with information on the lower 2/3rds of the area.
Nothing is mapped.
Click any Map It link.
All voting sites (e.g. polling locations, drop boxes, and early vote sites) can be a very large list of elements. In OR, any registered voter can drop their ballot off at any dropbox in the state. The voting sites in the API are broken up into three categories (NB: each category is sorted by distance from the address provided to the API):
These three different methods of voting should be fairly easy to browse when the list is >20. What's the best way for this to happen?
Can be taken from existing privacy policy.
Card interactions include gesture/drag events at mobile for closing or expanding cards.
Should be moved closer to the TabPanel and not be called directly from the app. That said, TabPanel will also need access to the election info and normalized address to populate the hidden fields of the form.
In states with drop off locations (i.e. physical locations where a person can drop off a ballot), the site should return the locations as part of the results.
No drop off locations are returned.
Search for any address in a state with these drop off locations (e.g. 1055 6th Street Northwest, Salem, OR 97304).
Mo was removed in d0551bb. Need to fix that.
Since we're making the site secure (see #88), we should make sure there's nothing on the site that loads insecure information and keep the user in the secure space (if possible).
There are a few links that point to insecure endpoints.
See Twitter and Facebook links in the footer.
Working social links exist per the latest Sketch document.
The react-addons-css-transition-group
package is 3 years out of date and the maintainers pushed for folks to update to the react-transition-group
package. In addition, the react-transition-group
maintainers have asked everyone to update to the latest version as the version that's hot-swappable with our build is no longer maintained. Thankfully, we only have a couple of places to update:
% grep -r "react-addons-css-transition-group" src/.
src/./components/Tabs.js:import CSSTransitionGroup from 'react-addons-css-transition-group';
src/./App.js:import CSSTransitionGroup from 'react-addons-css-transition-group';
Should be a relatively easy fix.
Assuming we'd like contributions to the project (I do anyway) and it's going to be open source (that was always my hope), I think it would be good for us–and potential contributors–to have some contribution guidelines (e.g. this is the bar you have to pass if you want to submit code). I wrote something for an old project I'd be happy to submit for comment.
Anastasia's bio should read, at the third sentence: "In her current role as a Senior Digital Strategist at Trilogy Interactive, she runs the social media department, helping political, nonprofit, and ballot proposition clients run high-impact digital campaigns."
It's currently says: "In her current role as a Social Strategist at Trilogy Interactive, where she helps political, nonprofit, and ballot proposition clients run high-impact social media campaigns."
Read words.
Performing certain actions on the site trigger analytics events which are sent to GA.
Nothing happens
Click on stuff. No analytics fire.
Goto Polling place tab and click on map or share links on a single location.
After searching for an address in Orange County, the site should return all voting locations for that registered address.
After attempting to search for voting locations for an address in Orange County, the site showed up as blank under the polling locations tab. The problem is that the API returned a string that didn't really make sense for the address.locationName
(i.e. orange county registrar of fucking voters_ office
). Hard to really say if this is a bug on our end or it should have been caught upstream, but...here we are.
Search for voting locations for 13901 Tustin East Drive, Tustin CA 92780.
Use clean version of Roboto (Roboto-700) for bold weights
Dates and other bold versions of Roboto look a little rough which usually comes from the font using the browser's bold weight rather than switching to the Bold variant of the font:
We can link to all the weights here
https://fonts.google.com/specimen/Roboto?sidebar.open=true&selection.family=Roboto:wght@700
When posting to Facebook or Twitter, the voting location name should be populated (and "fucktified").
Because early vote sites and drop off locations have a separate property for name (e.g. earlyVoteSite[].name vs. earlyVoteSite[].address.locationName), sometimes the name is missed in generating the tweet or post.
This section in src/scripts/components/Actions.js
in the function buildTweet()
is mainly the culprit for tweets:
if (location.locationName) {
text = encodeURI('I vote at ' + helpers.titlecase(helpers.fucktify(location.locationName)) + ' where the fuck do you vote? Find out at');
} else {
text = 'I found my fucking polling location, where the fuck do you vote? Find out at';
}
And this one, also in src/scripts/components/Actions.js
, for posts:
buildFB() {
const location = this.props.location;
return <a className="actionLink actionLink_facebook mix-actionLink_blue shareLocationFacebook"
href="#"
data-name={helpers.titlecase(helpers.fucktify(location.locationName))}
data-city={helpers.titlecase(location.city)}
data-state={location.state}>Facebook</a>
}
It's a little difficult to reproduce since some early vote sites have address.locationName
populated. Attempt to post to either Facebook or Twitter on a site that's lacking it and you'll see the issue.
FormSelect is able to replace any unique select component
Components are too specific and are begging to be abstracted.
Actually paginate results.
Nothing is paginated.
Search for any address.
In situations where we don't have any polling locations or ballot information, we'll need error messages for:
If we can direct someone to a local election official to resolve issues, all the better.
The Twitter script is loaded in main.js
making the block of code in index.html redundant. Should be removed.
The NJ address "5 Clyde Court, Bergenfield, NJ 07621" should return polling location "St Fucking Johns Conlon Hall Main Hall, 18 North William Street, Bergenfield, NJ 07621."
Polling location tab is blank and, switching back and forth between candidates and polling locations causes odd display issues.
### Steps to reproduce the behaviorEnter "5 Clyde Court, Bergenfield, NJ 07621" into the search bar and hit search.
Clicking/touching on a particular contributor name should result in seeing the bio carousel modal with the requested contributor displayed.
The link sometimes shows a blank modal window.
Contributors | Result of Interaction |
---|---|
Navigating back-and-forth either via the left and right arrows or by swiping (depending on device) also yields no content until potentially hitting a bio that is visible.
Clicking on the representatives card would expand that card and reveal additional fields to users
Additional info is not visible to the user
navigate to representatives page and notice that none of this info is listed.
See this blog post. Seems extremely useful.
The end of Anastasia's bio should read:
But forget Instagram—tweet her your favorite cat GIF instead: @golovashkina
Because we can't reliably support emojis, I changed the original snapchat joke...which broke it.
If something is wrong with the data, there needs to be a link to report the issue back to the Civic Information API.
Searching for a valid, registered address in states with some form of early voting should return polling locations and early vote sites (e.g. vote centers, drop boxes, et al...).
Returns only polling locations.
Search valid, registered address in any state with early voting (e.g. MD).
Virtual keyboard goes away after triggering the easter egg.
Keyboard stays visible.
Trigger the easter egg.
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.