Skip to content

Latest commit

 

History

History
146 lines (110 loc) · 19 KB

README.md

File metadata and controls

146 lines (110 loc) · 19 KB

Massachusetts Platform for Legislative Engagement (MAPLE)

A legislative testimony project through Code for Boston!

We are creating a new web platform called MAPLE (the Massachusetts Platform for Legislative Engagement) that makes it easy for residents to submit their testimony to the MA legislature and read the testimony of others. Our goals are to shine a light on the statehouse by 1) providing a public archive of legislative testimony; 2) standardizing and demystifying the testimony process, so that more people can make their voices heard; and 3) creating a space for constituents and legislators to maintain prolonged focus on key issues, and to learn more efficiently about the laws that will shape our lives. Through this, we hope that people can better channel their political energy into productive improvements for our local and state communities.

Essentials

Join the Code for Boston Slack and our #legislative-testimony channel. Ask to join the Zenhub and Zeplin projects.

Attend a weekly hack night at Code for Boston and join our group.

You can find good first issues here.

Check out the Contributing docs for how to contribute to the project, and the wiki for project documentation.

Links

Live Sites

  • Development site, for testing and development. Feel free to play with the site!
  • Production site, for public use and real testimony. Please only use this site to submit real testimony, not for testing.
  • Version 1 site, for posterity

Getting Started

  1. Fork a copy of the main repo to your GitHub account.

  2. Clone your fork:

git clone https://github.com/YOUR_GITHUB_NAME/maple.git
  1. Add the main repo to your remotes:
cd maple
git remote add upstream https://github.com/codeforboston/maple.git
git fetch upstream

Now, whenever new code is merged you can pull in changes to your local repository:

git checkout main
git pull upstream main
  1. Now you're ready to work on a feature! See the Contributing page for more info, and refer to the wiki for more documentation.

Developing Locally

  1. Make sure that you have node and yarn installed. You can download Node directly here or use a tool like nvm. To install yarn, run npm i -g yarn after installing node.
  2. Install dependencies with yarn install.
  3. If you are developing backend features, install Docker and Docker Compose V2.

If you're developing frontend-only features, such as adding UI or hooks, you can start the development server with yarn dev and access the app at http://localhost:3000 in your browser. The site will automatically update as you make code changes. Your local site will share the same backend as the live development site.

If you're developing backend features, such as adding cloud functions or changing security rules, you can run the backend emulators, search server, and test data with yarn dev:backend. You can access the emulator UI at http://localhost:3010. The backend should update as you make code changes. When dependencies in package.json change, run yarn dev:backend:update to rebuild the image with the new dependencies. Finally, the first time you run the backend, or whenever you update, run yarn dev:backfill to generate new search indexes for bill/testimony search.

Code Formatting and Linting

We use Prettier and ESLint to check files for consistent formatting and catch common programming errors. When you send out a PR, these run as part of the Repo Checks workflow.

You can install pre-commit so that Prettier and ESLint run automatically when you commit. You can also run yarn fix locally to lint and format your code. You'll need to do one of these and commit the changes if the Linting and Formatting parts of the Code Quality check fails on your PR.

If you use VSCode, consider using our project workspace file (open it in VSCode and click the "Open Workspace" button in the editor). It will ask you to install ESLint and Prettier extensions, which will show lint errors in your editor and set up Prettier as the default code formatter. You can format the current file from the command pallete by typing Format Document. You can also set the editor up to format on save: select Open User Settings from the command pallet, search for format on save, and enable it.

Additional Documentation

See the Wiki

Contributors

Thanks to all our contributors!

0lafe
0lafe

💻
Alex Ball
Alex Ball

💻 👀 🧑‍🏫
Anna Steele
Anna Steele

💼 📆
Anthony
Anthony

💻
Brian Rutledge
Brian Rutledge

💻
Byron Kent Hinebaugh
Byron Kent Hinebaugh

💻
Colin MacDonald
Colin MacDonald

💻
Colton Almaraz
Colton Almaraz

💻
Dev1nxavier
Dev1nxavier

💻
Jeff Korenstein
Jeff Korenstein

💻
KY233466
KY233466

💻
Kep Kaeppeler
Kep Kaeppeler

💻
Leopoldo Lening Celaya
Leopoldo Lening Celaya

💻
Luke Rucker
Luke Rucker

💻
Marcos Banchik
Marcos Banchik

💻
Matthew Zagaja
Matthew Zagaja

💻
Mike Yavorsky
Mike Yavorsky

🎨
Miles Baird
Miles Baird

💻
Minqi Chai
Minqi Chai

📓
Nathan Sanders
Nathan Sanders

💻 💼 🔍
Richard Kwon
Richard Kwon

💻
Riley Grant
Riley Grant

💻
RobertMrowiec
RobertMrowiec

💻 👀
Rodrigo Passos
Rodrigo Passos

💻 👀
Scott Solmonson
Scott Solmonson

💻
Ujwal Kumar
Ujwal Kumar

💻
Veronica Adler
Veronica Adler

💻
arutfield
arutfield

💻
bancona
bancona

💻
d.ondrich
d.ondrich

💻
djtanner
djtanner

💻
jamesvas5307
jamesvas5307

🎨 🧑‍🏫 📓
jkinzer85
jkinzer85

📓
mmailloux22
mmailloux22

💻
mvictor55
mvictor55

💼 📆 🔍 💻
ren0nie0
ren0nie0

🔬
sammymyi
sammymyi

🎨 📓
sashamaryl
sashamaryl

💻 🧑‍🏫 🔬

This table follows the All Contributors specification and is managed by the @all-contributors bot. You can add yourself or another contributor by commenting on an issue or a pull request.