1 of 17

Contributing to Open States

Open States Summit 2021

2 of 17

Ways to Contribute

  • Help Improve Legislator Data
  • Write Scrapers
  • Contribute to OpenStates.org or API v3
  • Help Us Improve Documentation
  • Using Data & Promoting Open States
  • Enhancement Proposals
  • Provide Feedback

3 of 17

General Community Guidelines

Where We Communicate:

  • GitHub Discussions
  • GitHub Issues
  • Slack
  • contact@openstates.org

More Information:

https://docs.openstates.org/#communication

Code of Conduct:

http://docs.openstates.org/code-of-conduct/

4 of 17

Contributing to People Data

Source: https://github.com/openstates/people

Uses: YAML

Documentation: https://docs.openstates.org/contributing/people/

  • Easy to manually/bulk edit
  • Contributions via GitHub PRs
    • automatic linting
  • os-people tool

5 of 17

People Data Contribution Example

6 of 17

Writing Bill/Vote/Event Scrapers

Source: https://github.com/openstates/openstates-scrapers

Uses: Python 3.9

Files:

  • scrapers/{STATE}/bills.py
  • scrapers/{STATE}/events.py
  • Sometimes scrapers/{STATE}/votes.py

Documentation: https://docs.openstates.org/contributing/scrapers/

7 of 17

8 of 17

Writing People/Committee Scrapers

Source: https://github.com/openstates/openstates-scrapers

Uses: Python 3.9, Spatula

Directory: scrapers_next

Documentation:

9 of 17

10 of 17

OpenStates.org

https://openstates.org

Source: https://github.com/openstates/openstates.org

Uses: Python 3.9, Django, React (frontend), graphene (GraphQL API)

Ideas:

  • Feature events / committees on OS.org
  • Improvements to GraphQL API
  • Better integration of votes/etc.

11 of 17

API v3

https://v3.openstates.org

Source: https://github.com/openstates/api-v3

Uses: Python 3.9, FastAPI, pydantic, SQLAlchemy

Ideas:

  • Additional API parameters
  • Expanded helper endpoints
  • More examples of usage!

12 of 17

pyopenstates

https://openstates.github.io/pyopenstates/

Source: https://github.com/openstates/pyopenstates

Uses: Python 3

Ideas:

  • Just recently ported from API v1 to v3 (thanks Camille Fassett!)
  • Parameters & coverage of new API could use some attention
  • Bindings in other languages? R? JS?

13 of 17

Documentation

https://github.com/openstates/documentation

Source: https://github.com/openstates/documentation

Uses: Markdown, easy to contribute!

14 of 17

Using Open States Data

  • API Data & Bulk Data
  • Tag us on Twitter @openstates
  • Talk/Write About it!
  • Attribution!

15 of 17

Providing Feedback

16 of 17

Other Ways to Help

  • Reach out if you have ideas that could help!
  • Share bill links/etc. on social media
  • Ask your state for better data
    • API or bulk data > scraped data (as long as it is fairly complete!)
    • We can help you find the right person to contact
    • We have recommendations that we’ve given to other states
  • Slip us a piece of paper with an unknown (but public) IP*

*actually happened

17 of 17

Questions?

https://docs.openstates.org/contributing/

Up Next: Technical Deep Dive @ 4:30pm