Backend (Spring Boot, Kafka, Redis, Gemini) and frontend (React, Tailwind) for an AI-powered email draft assistant. Connects to Gmail, categorizes incoming mail, generates draft replies with AI, and lets you review or skip before sending.
emailbot_demo.mp4
backend/– Spring Boot app (Gmail → Kafka → categorize → draft → Redis). Run from here.frontend/– Vite + React + Tailwind dashboard. Run from here.docker/– Kafka, Redis, Kafka UI, RedisInsight (Compose).test/– Demo email seed script for local/demo use.
- Java 21, Maven
- Node.js 18+ (for frontend)
- Docker (for Kafka + Redis)
- Google Cloud project with Gmail API and OAuth credentials
- Gemini API key (for categorization and draft generation)
-
Start infrastructure:
docker compose -f docker/docker-compose.yml up -d
-
Configure backend: copy
backend/src/main/resources/application-local.yml.exampletoapplication-local.ymland set OAuth client ID/secret, Gemini API key, etc. -
Run backend:
cd backend && mvn spring-boot:run
App listens on port 8080.
-
Run frontend:
cd frontend && npm install && npm run dev
Open http://localhost:5173. The dev server proxies
/apito the backend. -
Log in via the app (OAuth with Gmail), then use Drafts or seed demo data (see below).
To trigger the pipeline with fake emails for a demo:
./test/seed-demo-emails.shUses test/demo-emails.json and POST /api/gmail/seed. Backend and Kafka must be running.
- Code: see LICENSE.
- Docs: LICENSE-DOCS.md (CC-BY 4.0).