elducati/cityhub-civil-engagement — explained in plain English
Analysis updated 2026-05-18
Run a local civic platform where residents submit and vote on community proposals.
Moderate incoming proposals and manage user roles from an admin dashboard.
Study a full-stack example combining Next.js, Express, Redis, and RabbitMQ.
| elducati/cityhub-civil-engagement | 0xradioac7iv/tempfs | abboskhonov/hermium | |
|---|---|---|---|
| Stars | 0 | 0 | 0 |
| Language | TypeScript | TypeScript | TypeScript |
| Setup difficulty | moderate | moderate | moderate |
| Complexity | 4/5 | 3/5 | 4/5 |
| Audience | developer | developer | developer |
Figures from each repo's GitHub metadata at analysis time.
Requires Node.js 20, Docker, and Docker Compose to run the full multi-service stack.
CityHub is a civil engagement platform that connects citizens with their local government. It gives residents a place to submit proposals, vote on community issues, and collaborate with local leaders, all through a web interface that requires no special technical knowledge to use. On the citizen side, users can create a multi-step proposal covering things like infrastructure, public safety, transportation, or the environment, attach an optional location, and publish it for others to review and vote on. Each user gets one vote per proposal, and the most popular submissions surface on a trending section of the landing page. A full text search makes it easy to find existing proposals before creating a duplicate. The admin side is where moderators and administrators review incoming proposals, approving or rejecting them, managing user roles, and monitoring activity through an audit log. A dashboard displays stats about users, votes, and engagement trends using built-in charts, and a CSV export option lets administrators pull proposal data for offline analysis. Dashboard numbers refresh automatically every thirty seconds. The project is built as a monorepo with a TypeScript backend using Express.js and a Next.js 14 frontend. Data lives in PostgreSQL 16, session state and vote deduplication run through Redis 7, and vote messages are processed asynchronously via RabbitMQ. Authentication uses JWTs with role based access control across three roles: USER, MODERATOR, and ADMIN. The whole stack runs locally via Docker Compose. The full README is longer than what was shown.
A full-stack platform where citizens submit and vote on community proposals, with an admin dashboard for local government moderators.
Mainly TypeScript. The stack also includes Next.js, Express.js, PostgreSQL.
No license file is mentioned in the README, so terms of reuse are unclear.
Setup difficulty is rated moderate, with roughly 1h+ to a first successful run.
Mainly developer.
This repo across BitVibe Labs
Verify against the repo before relying on details.