Logo Lanfrica

vpendo/Public_Voice

Domain:

digital infrastructure

Record type:

software
Creator:
vpe
Host:
PublicVoice: an AI‑powered platform that enables citizens in Rwanda to report community problems easily in informal language, automatically converting them into structured, actionable reports for government and public institutions, thereby strengthening transparency, accountability, and data‑driven governance. # Public Voice Public Voice is a civic engagement platform where citizens submit community issues and administrators review and respond in a dashboard. Final demo video: Watch on Google Drive ## Deployed Links (Live Demo) - Frontend (Web App): publicvoice1.netlify.app - Backend API (FastAPI): public-voice1.onrender.com - Backend Swagger Docs: public-voice1.onrender.com ## What This README Covers - How to install and run the project locally - How citizens and admins use the platform - Privacy Policy, Terms of Use, and registration acceptance - Important project files and where features live ## Run The Project (Step By Step) ### 1. Prerequisites - `Python` 3.10+ - `Node.js` 18+ - `pnpm` (install if needed: `npm install -g pnpm`) - `PostgreSQL` (local or hosted; set `DATABASE_URL` in `Backend/.env` — see `Backend/.env.example`) ### 2. Clone The Repository ```bash git clone github.com cd Public_Voice ``` ### 3. Start Backend API ```bash cd Backend python -m venv venv ``` Activate virtual environment: - Windows: `venv\Scripts\activate` - macOS/Linux: `source venv/bin/activate` Install dependencies and create `.env`: ```bash pip install -r requirements.txt copy .env.example .env ``` On macOS/Linux use `cp .env.example .env` instead of `copy`. Edit `Backend/.env` and set at minimum: - `DATABASE_URL` - `SECRET_KEY` - `ANTHROPIC_API_KEY` (optional but recommended): enables report translation/structuring with Claude - OTP email variables: either `SMTP_*` or `EMAIL_*` If you need a new admin account (admins are not self-registered in the app): ```bash python -m scripts.create_admin ``` Run backend: ```bash uvicorn main:app --reload --host 0.0.0.0 --port 8000 ``` Backend URLs: - API base: `127.0.0.1` - Swagger docs: `127.0.0.1` ### 4. Start Frontend App Open a new terminal: ```bash cd Frontend pnpm install ``` Create `Frontend/.env`: ```env VITE_API_URL=htt …