Logo Lanfrica

mwananchi-tech/bunge-hub

Domaine:

digital infrastructure

Type de record:

softwareproject
Créateur:
mwa
Hôte:
Kenya's parliamentary record, open and queryable. Browse bills, debates, and member contributions from Parliament, with full transcripts, bill journey timelines, and committee tracking. # Bunge Hub Open-source web platform for exploring Kenya's parliamentary record. Every bill debated, every contribution made, every question raised in the 13th Parliament: structured, searchable, and openly available. Built on top of odnelazm, which handles scraping, parsing, and ingesting Hansard data from mzalendo.com into a PostgreSQL database. Bunge Hub is the read layer on top of that database: a React Router v7 SSR app that queries it and presents the data. ## Stack - React Router v7: SSR, loaders, file-based routing - postgres.js: database queries - Tailwind CSS v4: styling - React Flow: bill journey visualisation - PostgreSQL: data store (populated by odnelazm-pipeline) ## Local development ### 1. Start PostgreSQL ```bash docker run -d \ --name bunge-hub-db \ -e POSTGRES_USER=odnelazm \ -e POSTGRES_PASSWORD=odnelazm \ -e POSTGRES_DB=odnelazm \ -p 5432:5432 \ postgres:16 ``` ### 2. Populate the database Install `odnelazm-pipeline` from the odnelazm repository: ```bash cargo install --git mwananchi-tech/odnelazm odnelazm-pipeline ``` Run the ingest pipeline to fetch the last 3 months of sittings and enrich member profiles: ```bash odnelazm-pipeline ingest \ --start-date $(date -v-3m +%Y-%m-%d) \ --enrich-members ``` See the odnelazm-ingest README for the full reference, including the `enrich` subcommand for AI-generated summaries. ### 3. Install dependencies ```bash npm install ``` ### 4. Configure environment ```bash cp .env.example .env ``` Set `DATABASE_URL` to your PostgreSQL connection string: ``` DATABASE_URL=postgres://odnelazm:odnelazm@localhost:5432/odnelazm ``` ### 5. Run the dev server ```bash npm run dev ``` The app will be available at `localhost`. ## Other scripts ```bash npm run build # production build npm run typecheck # TypeScript type check npm run lint # ESLint npm run lint:fix # ESLint with auto-fix npm run format # Prettier check npm run format:fix # Prettier a …