MyNCRep is a civic-information tool built to help North Carolina voters cut through noise and get the facts that matter. It shows where to vote, what you need, and what each candidate actually stands for. No spins. No party narratives. Just information you can use.
This project began as an entry for the Congressional App Challenge, created by students who realized most new voters don’t lack opinions; they lack context. MyNCRep was our answer to that gap.
- Shows nearby polling places using optional location access
- Explains how to register and vote, with reminders for key deadlines
- Displays candidate profiles with issue positions, biographies, and voting histories
- Pulls data from trusted sources like Vote Smart and NCSBE
- Provides short guides on government processes for new voters
- Tailors information based on a simple onboarding quiz
The goal is simple: help people understand who represents them and what those people stand for.
- Google Civics API for polling and representative data
- Leaflet + OpenStreetMap for interactive mapping
- Python backend managed with Poetry
- Modular architecture so contributors can easily extend functionality
During development, we ran into several issues that shaped how the app works:
- Missing NC polling data in VIP, requiring fallback logic
- Choosing between API-driven data flow and local storage
- Designing location features without compromising user safety
- Ensuring civic data is presented in a neutral, verifiable way
- Expand beyond North Carolina
- Real-time updates when bills are introduced or candidates release statements
- Gamified civics learning modules
- AI-powered summaries of bills and issue positions
- Partnerships with election boards for verified polling data
- Cleaner UI and broader device support
Clone the repo using your preferred method.
(Invoke-WebRequest -Uri https://install.python-poetry.org -UseBasicParsing).Content | python -Add this directory to your PATH:
shell
%USERPROFILE%\AppData\Roaming\Python\ScriptsVerify installation:
poetry --versionpython -m venv venvvenv\Scripts\activateIf script execution is blocked:
Set-ExecutionPolicy RemoteSigned -Scope CurrentUser -Forcepoetry installpython main.pyThe server will automatically restart when changes are made.
To add new packages:
poetry add package_nameOther contributors should run:
poetry installto stay synced with the environment.
Built by Aryan Vyahalkar, Evan Yango, Heerak Shah, & Arav Vyahalkar, students committed to making civic participation clearer, simpler, and easier to start.
If you want to contribute, feel free to open an issue or pull request.