Placeholder

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.

Features

  • 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.

Tech Stack

  • Backend: FastAPI, google‑genai (Gemini), ElevenLabs SDK, httpx, pypdf, python‑multipart
  • Frontend: React 18, Vite, TailwindCSS

Project Structure

  • backend: FastAPI app and API routes
  • frontend: React UI

Setup

1) Backend

Create and activate a virtual environment, then install backend dependencies:

python -m venv venv
source venv/bin/activate
cd backend
pip install -r requirements.txt

Create 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_id

Start the API:

uvicorn backend.main:app --reload --port 8000

2) Frontend

cd frontend
npm install
npm run dev

The frontend expects the API at http://localhost:8000.

API Endpoints

  • 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

Python Dependencies

Declared in requirements.txt:

  • google‑genai
  • elevenlabs
  • httpx
  • pypdf
  • python‑multipart

Notes

  • GEMINI_API_KEY is required for all Gemini‑backed endpoints.
  • ELEVENLABS_VOICE_ID is optional; a default voice is used if not provided.

License

MIT

Built With

Share this project:

Updates