StatePulse

StatePulse Used AI

46 devlogs
98h 35m
•  Ship certified
Created by Kairui Cheng

StatePulse is designed to encourage people to engage with their state's politics! It aggregates legislation from 2024 from all fifty U.S. states + Congress (with over 250k bills!), with local llm-generated summaries to help you understand the bill's contents and aims.

Core Features:
- Legislation topic tracking and bookmarking
- Find your state and national legislators and generate a message to them through the representatives/civics feature
- Post questions, bug reports, and express your thoughts on particular legislation
- High level views of legislation activity throught the U.S. through dashboard
- Generate AI summaries of bills in different venacular (plain english, legalese, or tweet length)
- And more!

Special thanks to the OpenStates community for providing an amazing API for aggregating legislation, representatives, and jurisdictions (states) with their custom web scrapers! This project would not be possible without them.

Timeline

Added daily automated topic tracking email newsletters! Users can choose which topics they want in their daily inbox. Used SMTP/Brevo.

Update attachment

Ship 7

0 payouts of shell 0 shells

Kairui Cheng

3 days ago

Kairui Cheng Covers 5 devlogs and 12h 24m

New feature time! Incorporated a toggle that enables users to show which party represents which district: congressional, state upper, or state lower. Had to reexport all of the .geojsons cause they didn't include the right property fip/geocode matching the first time.

Update attachment

More refactoring internally, also starting to implement backend that enables users to follow legislators!

Minimal feature changes; just a lot of codebase refactoring!

Many QoL improvements in this devlog! Fixed some dark mode theming issues for the map popups/key. Replaced Leaflet rendering engine with MapLibre GL, which now renders all of the legislative districts much more quickly than before. No lag! Added more bills and merged duplicate representatives as well.

Added chamber makeup into dashboard stats; users can now look at which party controls which chamber in different states, including numbers and percentages!

Update attachment

Ship 6

1 payout of shell 232.0 shells

Kairui Cheng

8 days ago

Kairui Cheng Covers 5 devlogs and 12h 16m

Added previous terms for Congress people in the representatives detail page. Also refined tables/buttons to improve consistency and dashboard stats to make circle size proportional to number of bills

Update attachment

Users can now click anywhere on the map and drag the location icon to get the representatives that represent those coordinates!

Update attachment

Added .geojson files client side for faster district boundary loading.

Update attachment

Federal and state legislative boundaries are here! Imported them into mongodb from U.S. Census. Implemented find your local reps, which get the relevant districts using lat + long. Also added all district boundary visualizations in the dashboard, and color coding representative cards for ux :)

Update attachment

Lots of new features in this devlog; implemented fuzzy search in policy updates feed using fuse.js. Added the field jurisdictionName: United States Congress for all Congress bills, so fetching bills from Congress should be nearly instant now. Also created some scripts to clean up some unwanted summaries.

Update attachment

Ship 5

1 payout of shell 246.0 shells

Kairui Cheng

13 days ago

Kairui Cheng Covers 4 devlogs and 12h 8m

Added legislation existence check so I don't call unnecessary gemini summaries from the API

Update attachment

Implemented time in office, added direct legislation filtered by representative in policy updates feed, and fixed clear filter bug not reloading feed state. Improved UI and UX for representative details with animations and better buttons!

Update attachment

Finished adding representative collection in mongodb database. Normalized all Congress representatives and senators into correct data types; now users can click on any representative to see the bills that they have sponsored! Obviously still a WIP, as some time dates are curiously NaN...

Update attachment

Changed source fetching script to have an Illinois exception (due to their stupid legislative page format)

Update attachment

Ship 4

1 payout of shell 244.0 shells

Kairui Cheng

17 days ago

Kairui Cheng Covers 5 devlogs and 14h 2m

Lots of new features in this one! Added distinct representative page for lookup and filtering, donation buttons, and a parallax animation on the home page to boost engagement. Implemented civics endpoint to remove conflicts with representative endpoint, and switched back to Google AI Studio after looking at the costs :D

Update attachment

Continued changing the AI Summaries text extraction from the different pdfs provided by legislature websites! Switched from Google AI Studio to Microsoft Azure AI for cost purposes. Text extraction from pdfs and source links now works better than ever...

Update attachment

Implemented SMTP email senders in tracking policies! Also fixed some of the backend API for handling push notifications, and added a new email template. Settled on Brevo for SMTP after hours of searching for alternatives to gmail. Unrelated, transferred DNS from Namecheap to Cloudflare :)

Update attachment

Lots of new stuff in this one! Spent a while refactoring the PostsFeed and PostCard components, which enabled me to add liking, more sorting (new, hot, top, and old), and display exact times. Also fixed some CRUD issues that came up through previous updates.

Update attachment

Updated the fetching script to include more robust Gemini Summary handling by feeding it better input text. This bug has been bashing me since the existence of this project...

Update attachment

Ship 3

1 payout of shell 322.0 shells

Kairui Cheng

23 days ago

Kairui Cheng Covers 7 devlogs and 11h 42m

Users can now search posts and filter them by tags!

Update attachment

Fixed CRUD operations on detailed individual community posts. Users can also click into posts from viewing other people's profiles.

Update attachment

Implemented some functionality into viewing individual community posts on a separate page. CRUD operations will be fixed soon.

Update attachment

More animations added! Also created a script that merged duplicate Congress bills containing same source links but having different identifiers.

Update attachment

Reformatted a ton of code. Added animations to the entire website, reduced loading times!

Fixed dashboard data inconsistencies in internal API

Update attachment

Major internal codebase changes, refactored a ton of types. Also fixed fetching representatives bug, where states with similar acronyms would fetch cached reps of different states (i.e. CA and AL)

Update attachment

Ship 2

1 payout of shell 333.0 shells

Kairui Cheng

27 days ago

Kairui Cheng Covers 7 devlogs and 11h 41m

Fixed incorrect Congressional session aggregation for dashboard. Implemented more robust solution for querying most recent Congress session; floor((x - 1789 / 2) + 1, where x is the current year

Update attachment

Fixed bugs regarding searching for Congress bills in the policy updates feed. Also enabled aggregation for U.S. Congress in dashboard.

Update attachment

Added state-specific dashboard statistics! Users can now look at popular topics, most active representatives, and recent bills at a glance.

Update attachment

Users can now view a dashboard to see overview statistics of all state legislation in the U.S. More features will be implemented soon!

Update attachment

Legislation fetching script now handles two APIs: OpenStates and U.S. Congress.

Update attachment

Bug fixes: fixed incorrect pagination state on new state search, fixed multiword queries for RepresentativesFinder.tsx (states like New York, New Jersey, New Mexico were calling directly from the OpenStates API instead of from mongodb cache); Enhancements: added custom tags for policy search, enabled users to view details on embedded legislation in community posts

Update attachment

Users can now add comments to posts, with fully implemented CRUD operations. Comments are nested akin to Instagram/Youtube/X.

Update attachment

Ship 1

1 payout of shell 360.0 shells

Kairui Cheng

about 1 month ago

Kairui Cheng Covers 12 devlogs and 22h 16m

Users can now create posts and link legislation to express their views! Also enhanced mobile UI and deployed a production instance of Clerk Auth. Core features are essentially complete (except for the occasional bug :)).

Update attachment

Added generate message to legislator. Now users can contact with their state rep/senator and ask questions pertaining to their bills!

Update attachment

Added civics tool improved mobile formatting (still need to iron out more bugs), added bookmark functionality

Update attachment

Added further improvements in policy tracker front/back end, barebone functionality

Update attachment

Changed timeline representation format

Update attachment

Started implementing page protection, used mistral from ollama to generate better summaries of policies, pushed to mongo

Update attachment

Added ollama scripts to generate summaries of legislation locally + push to mongo db database, continued populating historical legislation, fixed infinite scroll + state preservation on policy update feed

Update attachment

Added a better script to fetch all legislation data from all fifty states from 2017 to present

Update attachment

Improved pagination, switched localStorage caching to sessionStorage

Update attachment

Added more historical legislation

Update attachment

Added night theme toggle

Update attachment

Added home page

Update attachment