Project Info
Inspiration
Congressional stock trading is a cornerstone issue in Congress today, with bills being setup as bipartisan issues. Traditional disclosure documents are dense, hard to navigate for casual readers, and incredibly hard to visualize holistically. We decided to create a visual analysis tools which took this dense, messy, and unfriendly data to transform it into a user-friendly graph displaying the flow of money in Congress. This makes it incredibly easy for researchers, journalists, and citizens to follow the money.
What it does
Our platform visualizes the intricate relationships between: Corporations and their stock holdings Politicians and their financial interests Corporations and their stock holdings Politicians and their financial interests Users can search for any entity (company, politician, organization) and instantly see: A force-directed network graph showing all connections Real-time node selection with detailed relationship breakdowns A force-directed network graph showing all connections Real-time node selection with detailed relationship breakdowns
How we built it
Frontend: React was used for an awesome UI/UX experience D3.js for graph visualization Backend Architecture: Python and FastAPI for the backend integration and data scraping PostgreSQL to host the database Railway for deployment
Challenges we ran into
Ideation and brainstorm took almost a full day as we were struggling to find a project that could have real-world impact or was truly engaging with us. Deployment took quite a while because of a lack of documentation as well as a lack of available build tools. Scraping the data was a bottleneck for us as we had multiple sources to comb through and were significantly limited because of the slow Wi-Fi.
Accomplishments we're proud of
Actually getting a final project out and on time considering our delays just in the very beginning An awesome UI given that only one of us had extensive frontend and React experience prior
What we learned
D3 + React patterns: Direct DOM manipulation with D3 while React manages the surrounding UI Graph algorithms: Efficient edge deduplication and bidirectional relationship detection Political transparency: Some entities have 50+ connections
What's next
Add tracking for PAC/Super PAC donations Add a live net worth estimator and visualizer Push notifications to users of notable Congresspeople trading
Weyes
Explore the network between politicians, companies, and money
React + FastAPI app to search entities, visualize connections, and drill into details.
Built With
Frontend
Backend
Features
Smart Search
- AI-assisted classification (Anthropic Claude) of queries into person vs company with confidence and reasoning, with heuristic fallback when AI is unavailable.
Interactive Graph
- D3-powered visualization shows nodes and edges between politicians and companies.
- Edges encode ownership/holding value; nodes display metadata like ticker, position, state, party, net worth.
Entity Profiles
- Detail views for people and companies with canonical IDs.
FastAPI + Typed Schemas
- FastAPI with typed responses, async PostgreSQL pooling via
asyncpg. - CORS enabled for local dev and hosted environments.
Built at CalHacks.
Analysis
View
Metric
- 38
- 6
- 4
- 3
- 2
Figures cover GitHub contributors during the hackathon window. A co-authored commit counts in full for each author, so per-member totals add up to more than the whole-team figures.
Technology
- AnthropicIn code
- CSSIn code
- FastAPIIn code
- HTMLIn code
- JavaScriptIn code
- PythonIn code
- ReactIn code
- SQLIn code
- Tailwind CSSIn code
- TypeScriptIn code
- PostgreSQLClaimed
10 of 11 appear in the indexed code. 1 claimed on Devpost could not be matched to code, which may simply mean the tool leaves no trace in the repository.
AI coding agents
- CursorConfig
Detected from committed agent config files and commit authorship. Absence of a signal is not proof an agent was unused.
Codebase size
Source size
362 KB
Source files
74
Counts recognized source files only; vendored directories, binaries and lockfiles are excluded, so this is smaller than the repository on disk.
Repository
MamuzaD/weyes
95 files · 966 KB · @ fa95f2f
Structure
Interface
24 files · 25%Screens, components and styles rendered to the user.
API & routing
4 files · 4%Request entry points: routes, handlers and controllers.
Application logic
34 files · 36%Domain rules, services and shared utilities.
Data & schema
7 files · 7%Schema definitions, migrations and data access.
Supporting
Layers are inferred from where files sit in the tree, not from reading the code. A project that names its directories unconventionally will read oddly here — open the file browser to check anything the diagram implies.
Languages
- YAML53%
- TypeScript30%
- Python10%
- Markdown3%
- CSS2%
- SQL1%
- Other (3)1%
Share of indexed source by file size. Binary and vendored files are excluded.
Dependencies
frontend/package.json
npm · 32- @radix-ui/react-dropdown-menu
- @radix-ui/react-slot
- @tailwindcss/vite
- @tanstack/react-devtools
- @tanstack/react-query
- @tanstack/react-query-devtools
- @tanstack/react-router
- @tanstack/react-router-devtools
- @tanstack/router-plugin
- class-variance-authority
- clsx
- d3
- lucide-react
- react
- react-dom
- tailwind-merge
- tailwindcss
- tw-animate-css
- +14 more
backend/requirements.txt
pypi · 28- annotated-types
- anthropic
- anyio
- async-timeout
- asyncpg
- certifi
- click
- distro
- docstring_parser
- fastapi
- h11
- httpcore
- httptools
- httpx
- idna
- jiter
- pydantic
- pydantic_core
- +10 more
Declared in the repository’s manifests at the indexed commit. A declared package is not proof it is used, and runtime dependencies are listed first.
This project’s features have not been analysed yet.
Export this project's context (description, README, evidence, key source files) to chat with an AI agent elsewhere.