Lattice
A workspace for your research.
Understand multilingual meetings: translated transcripts, decisions, action items and grounded Q&A.
Translation pending
ProductivityTypeScript · PythonGitHub @eshakarOnlineOwner unconfirmed
Have you tried it? One tap is enough. No sign-in needed.
No updates detected yet. GitHub releases will appear here.
Multilingual AI meeting intelligence: Gemini-powered summaries, decisions, action items and grounded Q&A across English, Bengali and Hindi. FastAPI + MongoDB + Next.js.
Translation pending
Loading the full README.
Read the full README ↗BridgeTalk helps people who speak different languages understand a meeting and keep track of what was decided. It shows a multilingual transcript with translations, writes a short summary, pulls out decisions, action items and open questions, and answers questions using only what was said in the meeting. Meetings, insights, Q&A history and action-item status are stored in MongoDB.
This is a hackathon MVP. It ships with one simulated sample meeting (hand-written, not live transcription). It works with no API keys, and even with no database, in a clearly labelled demo mode.
Name: text transcript or type it line by line. Each line's language (English, Bengali, Hindi) is detected from its script, and Gemini translates every line into all three. Meetings are saved to MongoDB and can be opened, cleared or deleted from the Meetings page.| Part | Technology | Role |
|---|---|---|
frontend/ | Next.js 16 (App Router), TypeScript (strict), Tailwind CSS v4, Framer Motion (motion), GSAP, React Bits, Lucide icons | Dashboard UI, session state in React context, typed API client, offline fallback |
backend/ | FastAPI, Pydantic v2, pydantic-settings, Uvicorn, Google GenAI SDK (optional) | API, validation, intelligence, repository layer |
| Database | MongoDB through PyMongo's async API (AsyncMongoClient) | Collections meetings, transcript_segments, meeting_insights and meeting_questions |
See docs/ARCHITECTURE.md and docs/DATABASE.md.
docker run -d --name bridgetalk-mongo -p 27017:27017 mongo:8 # or install MongoDB Community, or use Atlas
Atlas instructions are in docs/DATABASE.md.
cd backend
python -m venv .venv
# Windows: .venv\Scripts\activate
# macOS/Linux: source .venv/bin/activate
pip install -r requirements.txt
cp .env.example .env # set MONGODB_URI; optionally GEMINI_API_KEY
cd frontend
npm install
cp .env.example .env.local # optional; defaults to http://localhost:8000
| File | Variable | Default | Purpose |
|---|---|---|---|
backend/.env | MONGODB_URI | mongodb://localhost:27017 | Local or Atlas (mongodb+srv://…) connection string. Never commit it. |
backend/.env | MONGODB_DATABASE | bridgetalk | Database name |
backend/.env | GEMINI_API_KEY | empty | Turns on Gemini analysis. Leave empty to use the rules engine. |
backend/.env | FRONTEND_ORIGIN | http://localhost:3000 | The only origin allowed by CORS |
backend/.env | GEMINI_MODEL | gemini-3.5-flash | Model used when a key is set |
frontend/.env.local | NEXT_PUBLIC_API_URL | http://localhost:8000 | Backend base URL |
# Terminal 1: backend (connects to MongoDB, creates indexes, seeds the demo meeting once)
cd backend && .venv/Scripts/python -m uvicorn app.main:app --reload --port 8000 # Windows
cd backend && .venv/bin/python -m uvicorn app.main:app --reload --port 8000 # macOS/Linux
# Terminal 2: frontend
cd frontend && npm run dev
Open http://localhost:3000. The header shows Saved to MongoDB when the database is connected, and Demo mode · not saved otherwise.
cd frontend && npx tsc --noEmit && npm run lint && npm run build
cd backend && python smoke_test.py # real database if reachable, else fallback checks
cd backend && pip install -r requirements-dev.txt && python -m tests.test_mongo_persistence # in-memory mongomock
The full script is in docs/DEMO_GUIDE.md.
GEMINI_FALLBACK_MODELS in order, then the rules engine.