Coder Social home page Coder Social logo

hackforla / ballotnav Goto Github PK

View Code? Open in Web Editor NEW
23.0 16.0 15.0 17.2 MB

A repository for HackforLA's BallotNav project

Home Page: https://BallotNav.org

License: GNU General Public License v2.0

Dockerfile 0.07% Shell 0.14% HTML 9.56% JavaScript 28.43% Python 0.81% Jupyter Notebook 50.71% CSS 0.02% PLpgSQL 9.38% Makefile 0.05% SCSS 0.21% HCL 0.63%
ballots usps code-for-america hack-for-la code-for-all dropoff dropoff-locations ballot county state

ballotnav's People

Contributors

adamkendis avatar adithya-harshababu avatar albertulysses avatar alexchoiweb avatar alligatormonday avatar allysmatrix avatar anullvalue avatar arjayellis avatar briancodes33 avatar experimentsinhonesty avatar geleazar1000111 avatar henrymarks1 avatar jacobzwang avatar jafow avatar jmensch1 avatar jrhutson avatar kcoronel avatar lennessyy avatar myastark avatar salice avatar seymour100 avatar tan-nate avatar theswerd avatar

Stargazers

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

Watchers

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

ballotnav's Issues

Basic Data structure

Overview

Data structure for postgres so we can get started.

Please note this can be changed in the future, but the faster we get this initial one the faster we can get started.

Action Items

  • Create data structure
  • Create rules

Resources/Instructions

Recruit from CFA events

Overview

Finding volunteers from CFA events

Action Items

  • From Bonnie: The Data science team has shown interest for scrapping information from existing sites for populating BallotNav database
  • chat with Bonnie re: CFA Regional Call (once a month)
  • CFA Pitch Day 09/28

Resources/Instructions

EAJ Location Map View

Overview

We need to have the application display all the locations that are within the users Election Administration Jurisdiction (EAJ) on the initial map load.

Dependency

Search #42

Acceptance criteria

(how do we know when this task is "Done")

  • results match mockups
    • desktop
    • desktop low bandwidth
    • mobile
    • mobile low bandwidth
  • Map
    • pins are representative of locations within your EAJ
    • clicking pin loads single location details where search results were (see foodoasis.la)
    • dragging map will NOT allow user to change EAJ - you can only change by putting in new address or choosing different EAJ from drop down above)
    • all map views start by showing the EAJ outline (place where the center of the map is determined by how you arrive, see details below)
    • arrive by search
      • enter a valid Zip Code: map loads with zip code you entered as the center of the map and the 10 closest results to the zipcode center
      • enter a valid City and State: map loads with City you entered as the center of the map and the 10 closest results to the city center
      • enter a full address: map loads with address you entered as the center of the map and the 10 closest results
      • choose "Current Location": map loads with current location as the center of the map and the 10...
    • arrive by drop down
      • choose state/territory: map does not load, in place of map instructions to choose EAJ
      • choose state/territory and EAJ: map loads with EAJ as the center of the map and all the results - preferably grouped

Action Items

  • Product
    • Determine map layout
    • Determine map functionality
    • Identify error handling requirements
  • UI/UX
    • Make mockup of map:
      • that has many locations
      • that has few locations
      • that has what you look like when you first arrive (seeing EAJ outline)
      • zoomed in view
  • Front End Dev (React)
    • Build out location map display according to design spec
    • Build map with markers
    • Build out results list
  • Back End Dev
    • Identify criteria for ways that locations appear (short distance to long distance)
    • api?

Resources/Instructions

Figma
Map Hero Icon

Examples of "Location Hours" data/UI

Overview

There are numerous ways that locations are scheduled by their respective jurisdictions. We need to come up with a good way to handle this in the UI. Perhaps we need a calendar view for the location?

Resources/Instructions

These are different formats that I've seen:

  • 24/7 (continuously) starting at a date/time, ending at a date/time

  • Between a range of dates, the same open/close times every day, with no exceptions (i.e., "Every day, Oct 27 to Nov 3, 8-7")

  • Open/close times vary consistent by range of days (i.e., "Mon-Fri 8-4; Sat 8-12")

  • Open/close times vary by date without consistency beyond 1 week

An example of that last one is all of Ohio:
October 6-9: 8:00 a.m. - 5:00 p.m.
October 12-16: 8:00 a.m. - 5:00 p.m.
October 19-23: 8:00 a.m. - 6:00 p.m.
October 24: 8:00 a.m. - 4:00 p.m.
October 25: 1:00 p.m. - 5:00 p.m.
October 26-30: 8:00 a.m. - 7:00 p.m.
October 31: 8:00 a.m. - 4:00 p.m.
November 1: 1:00 p.m. - 5:00 p.m.
November 2: 8:00 a.m. - 2:00 p.m.
November 3: 6:30 a.m. - 7:30 p.m.

In all cases, the currently open/closed indicator is possible and IMO we should keep it.

As an idea, perhaps we could keep the current wireframe design that could accommodate the 24/7 locations (because that's super short to explain: "24/7, opens October 5", "24/7, until November 3 at 7:30 PM").

But for all of the others, perhaps we could do something along the lines of one of these descriptions ("Opens Monday at 8:00 AM", "Closes at 5:00 PM"), along with a link that opens a calendar view of the schedule for that location?

I know data, but I'm not great at UI; please go easy on me if this is illogical. I'll be happy to clarify or provide additional information if needed.

Write Project Requirements Summary Document

Overview

We need a requirements summary to share with website design and to complete the initial requirements gathering milestone.

Dependency

Requirements gathering milestone complete

Action Items

Resources/Instructions

Add QR code for locations

Overview

Individual drop off locations should have a QR code

Action Items

  • Get the current URL
  • Generate a QR Code
  • Make the QR Code easily sharable

Talk to @JacobZwang about design if you are interested

Resources/Instructions

Role Recruitment

Overview

We need to recruit contributors for this project on an ongoing basis in order to make sure that the site goes live in a timely manner.

Action Items

  • Check BallotNav items on recruiting sheet and update as necessary

Resources/Instructions

Identifying the OKR's for BallotNav

Dependency

Add OKR Guide to this issue

Overview

We need to collaborate on identifying how best we will measure the successes using milestones and measurable results.

Action Items

  • Identify North Star metric for BallotNav
  • PM drafts OKR's (up to 3) that support the North Star metric
  • PM shares with PM team
  • PM will share with larger team for pre-work before our Tuesday general meetings (team independently reviews doc.)
  • Meeting with Team
  • Review OKRs

Resources

Ballot NAV OKRs
Useful OKR reading - https://www.whatmatters.com/articles/okrs-positive-social-change-nonprofit/
Useful OKR reading - https://www.bernardmarr.com/default.asp?contentID=1456
100 Automation Example OKRs

AirTable fixes

Overview

we need to fix a few minor problems in AirTable so that the forms work properly on Saturday 9/12/2020 National Day of Civic Hacking

Items

  • Claim a state lets you claim a state that is already claimed
  • Amazing Scrapers page does not show the url of the people who have claimed the state to scrape

Resources/Instructions

Link to contributing doc to check flow

Users that we created for testing purposes

  • Super McFly
  • Happy Golucky

Website Use Metrics

Overview

Identify how we will measure and report customer facing use

Action Items

Research and discuss options

Resources/Instructions

OKRs Issue

Feature Suggestion: Link to State Ballot-Tracking Tools

Overview

As a voter worried about election interference, I want to be informed if my state has a ballot-tracking tool so I can visit and use it.

Action Items

  • Define your Feature Suggestion
    • To add a link to state ballot-tracking tools somewhere appropriate in the UI
    • Is this feature urgent - Yes
      • It is urgent because our mission is to get votes counted, so we should notify voter of any tools that are useful to follow through
    • How long do you expect it take to implement this issue? Probably not long?
    • Who is needed to implement this feature (Could you implement it yourself? -No)
      • Design
      • Front End
      • Back End
      • Database
    • What problem does this feature solve? Voter not being fully armed with everything possible against disenfranchisement
    • What technologies are needed for this feature? a link

Resources/Instructions

If there is a website which has documentation that helps with this issue provide the link(s) here:
How to track your ballot like a UPS package

Change Notification: State and EAJ Only (Design)

Overview

Users should have the capability to signup for notifications from BallotNav, notifying users about an update on their state's Secretary of State page so that they are not relying on old information or having to continually check our site.

Dependency

Feature: search by address #42
Privacy Policy #104

User Acceptance Criteria

TBD based on compliance requirements

Action Items

  • Product
    • Product will determine the exact language to achieve compliance
      • text for notifications sign up page
      • text for SMS messages, including confirmations and stop messages
  • Design
    • Mock up interface design according to UX specs above

Resources/Instructions

Figma
The Complete Guide to SMS Compliance

Gather & Validate Information Display Requirements

Overview

We need to review the information we intend to collect so that we can present ballot information in a way that is valuable to our audience

Dependency

Competitor/Resource research #14

Action Item

  • List out all data types we would need to make resource useful
  • Review the template with team and validate with outside stakeholders
  • Test the model with scrapers

Resources

BallotNav Data Collection Starting Point

Can get dropoffs by county

Overview

Should be able to get dropoffs by county

Action Items

  • Add a get request at /dropoffs
  • Take in parameters for state and county, and sends only the points with the proper state and county.

We should be able to grab all points in an area and send them to the client.

Create CI

Overview

Create CI for pushes to master branch.

Action Items

  • For React front end we need one that builds it, then pushes to an S3 bucket
  • For Flask back end we need to build the docker image, and push to the kubernetes engine

feature: data loader script

Overview

We need to be able to take data from airtable or raw csv and import it into a database.
This should be able to be run regularly with minimal manual intervention, even automated!

acceptance criteria

  1. we can take 1 or more correctly formatted files from air table and load them into a format the application can return
  2. the script can be run often by more than one person and with minimal manual intervention
  3. the script can be run against and tested against a local running instance before running on the live db

Action Items

  • write a script that can, 1 or more csv files and move them into a format the application understands

approach 1

Write a python or SQL script that reads each line of the csv and executes on the db.
Python's psycopg2 library is very good for this.

# psuedo code warning

connection = psycopg2.connection("postgres://ballotnav:[email protected]:5432/main")

with open("import-data-from-airtable.csv") as f:
     reader = csv.DictReader(r)
     with connection.cursor() as cursor:
         for line in reader:
             cursor.execut("insert into dropoff_table values {**line}")

This should be straightforward for a singel table, but gets trickier as the data relationships expand.

approach 2

write JSON API calls to the application

e.g.

for line in csv_file:
   response = requests.post("https://ballotnav.org/api/locations", {"data": line})
   if response not in requests.ok:
       print("we got an error on this line: ", line)
   else:
       print("created this : ", line)

This way seems more maintainable & automatable but has the dependency on us writing the app!

Resources/Instructions

Data Science Community of Practice Meeting 8/20/2020

Overview

Relevant excerpts from the chat

Excerpts

20:22:37 From Hovanes Gasparian : What was the Rock the Vote site about? Didnโ€™t they have location-based tools?
20:22:43 From Ryan Swan : 538 has a similar tool: https://projects.fivethirtyeight.com/how-to-vote-2020/
20:23:24 From Mya Stark : doesnโ€™t seem to have drop-off info either
20:23:24 From Mya Stark : https://projects.fivethirtyeight.com/how-to-vote-2020/
20:27:12 From Hovanes Gasparian : https://www.rockthevote.org/how-to-vote/
20:30:16 From Hovanes Gasparian : Yeah, the bulk of the work would probably be JavaScript in terms of visuals and whatnot
20:32:28 From Hovanes Gasparian : or if it was like a web app, and you access it from your smartphone, and grab your location data?
20:32:54 From Mya Stark : i feel like web app would be best
20:32:59 From John Ritchey : gotta take off for another call. Looking forward to where this is going.
20:36:17 From Mya Stark : Number of Drop Boxes for March 2020 Election - 155
20:36:23 From Mya Stark : 155 for the whole county??
20:42:08 From Hovanes Gasparian : https://caearlyvoting.sos.ca.gov
20:42:25 From Hovanes Gasparian : Looks like the SOS is kicking it down to the counties
20:42:36 From Sophia Alice : Nice How!
20:43:38 From Hovanes Gasparian : But yeah, if we had someone in Padillaโ€™s office, that would be great, haha
20:45:47 From Hovanes Gasparian : Yeah, CA is pretty good about it. Iโ€™d say the need is much greater for a tool like this in Southern states and wherever the cough voter suppression cough efforts are greater...
20:47:16 From Bonnie Wolfe : @Hov agreed, but looks like southern states may be restrict people to mailing them in only.
20:47:18 From Mya Stark : How good is Code for America brigade coverage in those areas?
20:47:47 From Bonnie Wolfe : @mya We have pretty good coverage all over
20:48:01 From Alina Ingel : May be also try to contact the LA County Election office? Dean Logan, Registrar - Recorder/County Clerk, [email protected] - would not hurt, but who knows how responsive they are
20:48:27 From Mya Stark : โ€œAlmost all states allow voters to deliver their ballots in person at their local election office."
20:48:37 From Bonnie Wolfe : Where are you seeing that
20:49:11 From Mya Stark : https://www.cbsnews.com/news/absentee-ballot-alternatives-usps-mail-in-voting-presidential-election/
20:49:28 From Mya Stark : their source is https://www.ncsl.org/research/elections-and-campaigns/absentee-and-early-voting.aspx#permit
20:50:12 From Bonnie Wolfe : ok, so we could map local election offices?
20:51:25 From Bonnie Wolfe : I clicked on California but still didnโ€™t find the offices
20:51:31 From Mya Stark : I feel like that would be a minimum safe bet
20:51:51 From Bonnie Wolfe : Opps, didnโ€™t look hard enough
20:51:55 From Bonnie Wolfe : https://www.sos.ca.gov/elections/voting-resources/county-elections-offices/
20:51:55 From Mya Stark : hereโ€™s a table of what states do drop BOXES but i donโ€™t believe a state has to have boxes for drop-off to be viable
20:51:56 From Mya Stark : https://www.ncsl.org/research/elections-and-campaigns/vopp-table-9-ballot-drop-box-definitions-design-features-location-and-number.aspx
20:52:25 From Mya Stark : Yeah drop boxes seem pretty niche
20:52:38 From Bonnie Wolfe : But its not like I needed a map, since there is only one LA location
20:52:44 From Mya Stark : local election offices might be a quick and dirty safety net
20:53:37 From Mya Stark : โ€œTwo states permit ballots to be dropped off at a polling place, but it must be the voterโ€™s assigned precinct polling place on Election Day: New Hampshire and Vermont.โ€
20:54:19 From Bonnie Wolfe : so this is Alabama: The absentee ballot application must be returned to the Absentee Election Manager by the voter in person (or by the voter's designee in the case of medical emergency voting), by U.S. Mail, or by commercial carrier.
20:54:30 From Bonnie Wolfe : https://www.sos.alabama.gov/city-county-lookup/absentee-election-manager
20:59:04 From Mya Stark : this is WHO can return a ballot but it doesnโ€™t say who TO https://www.ncsl.org/research/elections-and-campaigns/vopp-table-10-who-can-collect-and-return-an-absentee-ballot-other-than-the-voter.aspx
21:03:09 From Mya Stark : In some ways the goal is to combat โ€œEven if, as the Postal Service says, it has plenty of capacity to process mail-in ballots, the fear is that the psychological damage is already done.โ€
21:03:15 From Mya Stark : https://archive.vn/YNMCQ#selection-685.0-685.149
21:03:25 From Mya Stark : the psychological damage
21:05:41 From Mya Stark : โ€œIn Ohio, Frank LaRose, the Republican secretary of state, said he did not have the legal authority to unilaterally expand drop-box locations. He has since decreed that there can be no more than one drop-off location per county."
21:05:48 From Bonnie Wolfe : @mya what if the idea was to provide a place where people could get pro-vote advice?
21:09:44 From Mya Stark : From humans?
21:09:50 From Bonnie Wolfe : yes
21:09:57 From Mya Stark : I donโ€™t really believe in those
21:10:01 From Bonnie Wolfe : lol

Overview of what you see after you search

Overview

We need to be able to display the EAJ for each area depending on the rules/requirements when a user clicks the markdown.

This will be complete when

Resources/Instructions

Figma
EAJ = Election Administration Jurisdiction

feature: search by address

Overview

a user needs to be able to enter an address and receive information about their closest ballot dropoff location.

Acceptance criteria

(how do we know when this task is "Done")

  • Use Input bar to get delivered to a list of ballot drop off sites in your EAJ
    • enter a valid Zip Code
    • enter a valid City and State
    • enter a full address
    • choose "Current Location"
  • results match mockups
    • desktop
    • desktop low bandwidth
    • mobile
    • mobile low bandwidth
  • If view includes map
    • pins are representative of locations within your EAJ and you can click on them to see location detail.

Users can search at following locations

  • Homepage
  • Search Results page

Users can search the followings ways

  • By Current Location
  • By Full Address (e.g., 13428 Maxella Avenue, Marina Del Rey, CA 90292)
  • By City and State
  • By Zip Code

Error Handling requirements
This has an issue Invalid Address Feature #112

  • If null value or error is returned by API user is delivered to Search Results view with no map and no results and a message where those would normally be indicating that they should choose their state from the drop down and then their EAJ. Also present search bar again so that they can put their address in again.

Action Items

Search (using interface code from FoodOasis for the search)

  • Product
    • Identify criteria for ways they can search
    • Identify locations for search bar
    • Identify error handling requirements
  • UI/UX
    • Search bar should appear in identified locations
    • Make mockup with Error Handling view
  • Font End Dev (React)
    • Build out homepage according to design spec
  • Back End
    • AirTable to DB (convert the "State County Locations" table to Postgress)
    • api to send user input (from home page) and get back EAJ info, so that front end can route search results page view
  • Front End integrator
    • integrate api into search

Resources/Instructions

foodoasis.la search example
Figma
EAJ = Election Administration Jurisdiction

Create brigade state adoption interest form

Overview

We need to create a form to gather information from brigades' interest in helping us with the manual updating process so that when the interface is ready there are people to use it.

Action Items

  • Define required information
    • Name
    • Email address
    • Location
    • State/county interested in
    • Time available to devote per week before election
    • How they heard about BallotNav
    • Affiliation
  • Contact Jenny Miksell from Food Oasis if there is additional info that should be included
  • Get header image for google form

Resources/Instructions

New Volunteer On-Boarding

Overview

We want to add specific information for each type of volunteer so they know how to contribute

Action Items

  • Add instructions for development team
  • Add instructions for design team
  • Add instructions for data validator team
  • Add instructions for web scraping team

References

Build Search interface

Overview

We need to have users be able to search by criteria and get back results based on location so that we accurately deliver them their EAJ info

Action Items

Search (using interface code from FoodOasis for the search)

  • Font End Dev (React)
    • Build out homepage according to design spec
  • Back End
    • Identify criteria for ways they can search
    • api to send user input to and get back EAJ info to route to front end next page
  • Front End integrator
    • integrate api into search

Resources/Instructions

foodoasis.la search example
Figma

Issue 42

BallotNav features

Overview

We need to create basic functionality for the BallotNav site, so that it is minimally useful to users.

Functions

  • Must have
    • Search (using interface code from FoodOasis for the search) #42
    • Display of state and county confirmation text
      • if no, offer state or county drop downs (pre populated with whatever is currently in STATE).
    • Display of State regulation info from markdown inline into the page - signup for change notification (state only)
    • example the sos has published new info,click here
    • County Location Map View: Display of all locations that are within their county on initial load
    • County Location Text View: Display of closest 5 locations with lazy loading for the rest
    • All new pages, should put parameters into the url string for easy bookmarking and sharing
    • Share npm page will be every page and on individual results, with where you are clicking on it determining what is shared
    • Change notification on SOC page: signup for change notification
    • Change notification on location specific page: signup for change notification (notification will also include the SOC site update)
    • example the location has been updated and or/sos has published new info,click here
  • Should have
    • spanish translation
      • airtable db of language translations
  • Could have
    • email notifications
    • calendar integration

Resources/Instructions

React Share npm package

Can create new locations

Overview

Can load new data into our application

Action Items

  • Backend take in http request of data
  • Add lat long
  • Add it do database

This card should take a post request to /dropoffs with a json body with required fields and add it to the postgres table

Hello world

Overview

Hello World Milestone requirements

Action Items

  • #26 Basic Front End React + deck.gl
  • #27 Basic Flask + Docker + Docker Compose
  • #28 Basic Data structure
  • #29 CI

Create site map with UI/UX navigation flow

Overview

We need to create a flexible structure for the website to accommodate requirements

Dependency

Requirements gathering summary Issue #12

Action Items

  • Product/UI/UX
    • Review requirements summary with UI/UX team
    • Ideate on potential designs
  • UI/UX
    • Create site map
      • Review with Product
    • Create style guide issue #20
      • Review with Product
    • Build low-fi mock-ups
      • Get sign-off
    • Build hi-fi mock-ups
      • Get sign-off

Resources/Instructions

Recruitment of last mile updaters

Overview

Recruit volunteers who are willing to make calls to find the most up to date information regarding ballot drop off (most likely at county level for all 50 states)

Action Items

  • Find areas to recruit
  • Assign PM to attend meeting, etc. to recruit
  • Create a functional spreadsheet for the recording of information
  • Product
    • Create an adopt a county form
    • Registration Page (for updating data) Food Oasis Registration Form
    • Finalize Language and graphics for 'Claim an EAJ' recruitment
      • Share language to CFA general Slack page and friendly areas **by cross posting ex: "cross posting here (take link of original post) for BallotNav, we should have the interface ready in a week **
  • Markting/Partnerships

Resources/Instructions

Update Team Roster

Overview

We need to get new volunteers' information on the roster so we can add new resources and stay in touch.

Dependency

Email address has been added to the google drive

Action Items

  • Add or update your info into the team roster.

Resources/Instructions

Google Drive
BallotNav Team Roster

Update ReadMe

Overview

We need an up to date ReadMe to communicate effectively new users, contributors, and visitors on a continuous basis.

Action Items

  • Once that happens, update link in ReadMe to the template
  • New person to review ReadMe identifying unanswered questions that could be addressed
    • Post suggestions in the comments below

Resources/Instructions

Basic Front End React + Deck.gl

Overview

Basic Functioning React website with Deck GL installed ready to take contributions

Action Items

  • Create React App
  • Create folder structure
  • Install DeckGL

Resources/Instructions

Product Roadmap

Overview

We will create a roadmap to stay on track and ensure members are aware of necessary milestones

Action Items

  • Create roadmap document
  • Update milestones based on new requirements
  • Get feedback from stakeholders

Resources/Instructions

Export Location Schema for Desigers

Overview

We need to provide the location schema for the designers to make sure they have all the info that is going to need to be on the location page.

Action Items

  • Export schema from locations table pasting in the comments below and annotating what they can ignore.

Resources/Instructions

Airtable

Create Readme for website

Overview

Update Readme so that people thinking about joining our project know how to contribute.

Dependency

Adding Project Card to hfa website: hackforla/website#703

Action Items

  • Review the readme resource and figure out what we can include in ours. Also look at the one for civic opportunity as an example
  • Update our readme
  • Add link to project page on Hack for LA website, hackforla.org/projects/ballotnav (link will be up when page is finished when project card get's added to website #1 )
  • Add details about how people can get involved in the project (write a narrative description of the things people need to do with a bulleted list and link to the state project board)

Resources/Instructions

Other readme's
Hack for LA's default
civic opportunity
hackforla.org website

our readme
BallotNav readme

Timestamp info last updated

Overview

We need to display the last time when the site was updated

Action Items

Timestamp

  • Font End Dev (React)
    • Build time display according to design spec
  • Back End
    • Determine time and push to display on site
  • Front End integrator
    • [ ]

Resources/Instructions

REPLACE THIS TEXT -If there is a website which has documentation that helps with this issue provide the link(s) here.

Exceptions to Counties Table

Overview

We need an exception table of places that don't use the county as their election administration jurisdictions (EAJ) so that the lines in the map match the area.

Dependency

  • Making sure the census data is applicable for voting

Action Items

  • Data Science
    • Identify the relevant fields needed
    • Create a table in called EAJ table Airtable with fields
    • Send to development
      Development
    • design conditional rendering of shape of the EAJ's based on EAJ Airtable to appear on the site

Resources/Instructions

https://en.wikipedia.org/wiki/County_(United_States)#County_equivalents

Emergency Action Notifications Examples

Overview

We need a notification examples so that design can plan them in.

Action Items

  • Link or paste the messages into the comments below

Resources/Instructions

Have VRMS add meeting times for BallotNav to project and event database

Overview

Get VRMS to add this project to its database so that meeting times can appear on the website team meeting page

Action Items

  • List out team meeting info
    • Tuesdays: 6:00-8:00 (Pacific) Team Meeting
    • Saturdays: 4:00pm-6:00pm (Pacific) Management Meeting
  • Reach out to Tech Lead or PM on the vrms slack channel with a link to this issue
  • After they indicate completion, check the website.

Resources/Instructions

https://www.hackforla.org/project-meetings
slack channel for VRMS team is vrms.

script: query mapbox for geocodes

Overview

We currently do not have any latitude or longitude data for any ballot dropoff location address, but the client requires these to render locations on the map.

Action Items

  • write a script that reads a CSV file exported from air table and looks up the lat & lon for each address and saves the output

Resources/Instructions

requirements

  • the script should be automatable -- e.g. minimum of manual intervention required, ideally a file input and output
  • the script should log any failures and continue to fetch any geocode data even if one call fails (robust!)

further considerations

  • the input data will likely change a lot--new columns may be added, old ones removed so consider how much your program relies upon the current structure of the input and make it robust to change.

  • separate the input transformation from the output/saving code; it's likely that we will want to change the output from writing to a file to sending HTTP requests to the ballotnav backend. Consider making this part of the program swappable

Identify Audience for website

Overview

We need to know who we are designing this website for

Action Items

  • Review the one sheet and pull out all the audience types and put in this issue
  • Identify audiences we have not named
  • Find user stories in the media in order to create personas
  • Identify other people to ask including general channel
  • Create personas from validated user groups
  • Add user stories to new project board

Resources/Instructions

BallotNav One Pager

locations summary view

Overview

We need to give users a display of up to 5 closest drop-off locations, with pagination for additional results.

Dependency

Search #42

Acceptance criteria

(how do we know when this task is "Done")

  • results match mockups
    • desktop
    • desktop low bandwidth
    • mobile
    • mobile low bandwidth
  • list
    • Information is representative of locations within your EAJ
    • can scroll through results and expand selections when clicked
    • features such as hours dropdown, share, and get directions all work correctly

Individual result display requirement

  • Name
  • Type of location
  • Inside or Outside
  • Address
  • Accessibility Icon
  • Distance
  • Hours
    • No hours (if we don't have hours for this location prompt them to sign up for notifications)
    • Open Now: Open until 9pm PDT (more hours - is a link to hour display on the detail card)
    • See hours
  • Read location requirements and get directions
  • Travel Time
  • Directions Button
  • Website Link
  • Phone Number
  • To Verify

Action Items

  • Product
    • Determine text to be displayed
    • Confirm text layout
    • Identify error handling requirements (can't think of any errors)
  • UI/UX
    • List should display text/information in correct locations
    • Make mockup with Error Handling view
  • Font End Dev (React)
    • Build out display according to design spec
  • Back End
    • Identify 5 closest locations and integrate API to deliver results to page

Resources/Instructions

Figma

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.