A TidalHACK '26 Creation 🛠
BureauBuddy is a document‑processing application for government and legal forms. It provides PDF ingestion, structured analysis, translation, text‑to‑speech synthesis, and actionable next‑step guidance through a FastAPI backend and React frontend.
- PDF upload with server‑side extraction and analysis.
- Plain‑language summaries and selection‑based simplification.
- Deterministic “next steps” guidance for completed forms.
- Translation of selected content to a target language.
- Text‑to‑speech synthesis via ElevenLabs.
- Minimal UI focused on reading, selection, and playback.
- Backend: FastAPI, google‑genai (Gemini), ElevenLabs SDK, httpx, pypdf, python‑multipart
- Frontend: React 18, Vite, TailwindCSS
- backend: FastAPI app and API routes
- frontend: React UI
Create and activate a virtual environment, then install backend dependencies:
python -m venv venv
source venv/bin/activate
cd backend
pip install -r requirements.txtCreate a .env file in the project root:
GEMINI_API_KEY=your_gemini_api_key
ELEVENLABS_API_KEY=your_elevenlabs_api_key
ELEVENLABS_VOICE_ID=optional_voice_idStart the API:
uvicorn backend.main:app --reload --port 8000cd frontend
npm install
npm run devThe frontend expects the API at http://localhost:8000.
- POST /analyze_doc/upload: Upload a PDF and extract summary + key information
- POST /simplify: Simplify selected text
- POST /translate: Translate text to a target language
- POST /tts: Generate audio from text (ElevenLabs)
- POST /next_steps: Generate next‑step guidance
- POST /important_info: Extract important details
Declared in requirements.txt:
- google‑genai
- elevenlabs
- httpx
- pypdf
- python‑multipart
- GEMINI_API_KEY is required for all Gemini‑backed endpoints.
- ELEVENLABS_VOICE_ID is optional; a default voice is used if not provided.
MIT
