Transform unstructured team briefs, reports, and meeting notes into precise, time-budgeted agendas โ in seconds.
The landing page where users upload documents and generate AI-powered agendas.
AI-generated agenda with stakeholders, action items, and time allocation.
Real-time meeting facilitation with countdown timer and agenda tracking.
AgendaCraft is a full-stack web application that leverages Google's Gemini AI to intelligently parse source documents โ project briefs, technical specs, email threads, or raw meeting notes โ and automatically generate structured, time-allocated meeting agendas.
The app goes beyond simple summarization: it extracts stakeholder ownership, maps action items to relevant owners, and distributes agenda time proportionally based on the complexity of each topic. An integrated live facilitation mode lets meeting hosts run the session in real time with a built-in countdown timer, agenda progression controls, and print-ready export.
| Feature | Description |
|---|---|
| AI Agenda Generation | Powered by Gemini 2.5 Flash/Pro with automatic model fallback and exponential backoff retry logic |
| Multi-Format Document Ingestion | Accepts .docx (via Mammoth.js), .md, .txt, and raw text paste โ up to 50MB |
| Intelligent Time Allocation | Proportional time distribution algorithm that ensures agenda item durations sum precisely to the specified meeting length |
| Live Facilitation Mode | Real-time countdown timer per agenda section, skip/pause/reset controls, and automatic item progression |
| Stakeholder Filtering | Filter the entire agenda view by individual stakeholder to instantly surface their responsibilities |
| Computed Timetable | Generates actual wall-clock start and end times for every agenda item based on configurable meeting start time |
| Print & Export | Clean print-ready agenda layout with one-click browser print support |
| Copy to Clipboard | One-click copy of the full structured agenda as formatted plain text |
| Demo Documents | Pre-loaded sample business documents to showcase AI capabilities instantly |
| Animated UI | Smooth page transitions and state animations using Framer Motion |
AgendaCraft/
โโโ server.ts # Express backend โ document parsing & Gemini API integration
โโโ src/
โ โโโ App.tsx # Root component โ state management & API orchestration
โ โโโ main.tsx # React app entry point
โ โโโ types.ts # Shared TypeScript interfaces (AgendaItem, MeetingAgenda)
โ โโโ index.css # Global styles (Tailwind v4)
โ โโโ components/
โ โโโ UploadForm.tsx # Document upload UI โ file picker, text paste, settings
โ โโโ AgendaViewer.tsx # Agenda display, live timer, stakeholder filter, export
โโโ vite.config.ts # Vite + React plugin configuration
โโโ tsconfig.json # TypeScript compiler options
โโโ package.json # Scripts & dependencies
Architecture Pattern: The app uses a single-server full-stack model โ Express serves both the REST API (/api/generate-agenda) and the Vite-compiled React SPA. In development, Vite runs as Express middleware for HMR.
User Document / Text Input
โ
โผ
Express POST /api/generate-agenda
โ
โโโโ .docx โ Mammoth.js โ raw text
โโโโ .md / .txt โ UTF-8 decode
โโโโ text paste โ direct
โ
โผ
Gemini Prompt (system instruction + source material)
Model cascade: gemini-2.5-flash โ gemini-2.5-pro โ gemini-1.5-flash โ gemini-1.5-pro
(exponential backoff: 1s โ 2s โ 4s per attempt, 3 attempts per model)
โ
โผ
Structured JSON response (enforced via responseSchema)
โ
โผ
MeetingAgenda { title, goal, agendaItems[] }
โ React state โ AgendaViewer
The Gemini API is called with responseMimeType: "application/json" and a strict responseSchema, guaranteeing type-safe structured output without any post-processing regex or parsing fragility.
Frontend
- React 19 โ UI framework
- TypeScript 5.8 โ Type safety across the full stack
- Tailwind CSS v4 โ Utility-first styling
- Framer Motion โ Declarative animations & page transitions
- Lucide React โ Icon system
Backend
- Node.js + Express โ REST API server
- Mammoth.js โ
.docxto plain text extraction - @google/genai โ Official Gemini SDK
Tooling
- Vite 6 โ Frontend build & dev server (middleware mode)
- esbuild โ Server TypeScript bundling for production
- tsx โ TypeScript execution for development
- Node.js v18 or higher
- A Gemini API key โ get one free at Google AI Studio
# 1. Clone the repository
git clone https://github.com/SauravVenu/AgendaCraft.git
cd AgendaCraft
# 2. Install dependencies
npm install
# 3. Configure environment
cp .env.local.example .env.local
# Add your Gemini API key:
# GEMINI_API_KEY=your_key_here
# 4. Start the development server
npm run devOpen http://localhost:3000 in your browser.
npm run build # Compiles React SPA + bundles Express server
npm start # Runs the production server at port 30001. Upload or Paste Your Document
Upload a .docx, .md, or .txt file โ or paste raw meeting notes directly. Set your total meeting duration (e.g., 60 minutes) and the planned start time.
2. AI Generates a Structured Agenda Gemini analyzes the source material and returns a fully structured agenda with section titles, background context, discussion descriptions, stakeholder owners, and action items โ all time-weighted by topic complexity.
3. Review & Facilitate Browse your agenda by section. Filter the view to a specific stakeholder. Switch to Live Mode to run the session in real time: a countdown timer tracks each section, with controls to pause, skip ahead, or reset. When done, print or copy the complete agenda.
- Model Cascade with Backoff โ Rather than hard-failing on API quota errors, the server iterates through multiple Gemini model versions with per-attempt delays, maximizing availability under load.
- Precise Time Allocation โ A remainder-redistribution algorithm ensures that integer minute values across all agenda items always sum exactly to the specified total meeting time โ no rounding drift.
- Schema-Enforced AI Output โ Using Gemini's
responseSchemaparameter guarantees the AI response is always valid JSON matching theMeetingAgendatype, eliminating brittle regex parsing. - Single-Server Architecture โ The Express server hosts both the API and the SPA, simplifying deployment to any Node.js-capable environment with zero additional infrastructure.
Generates a structured meeting agenda from a source document or text.
Request Body
{
"fileBase64": "base64-encoded file content (optional)",
"fileName": "report.docx (optional)",
"fileType": "application/vnd.openxmlformats-officedocument.wordprocessingml.document (optional)",
"textPaste": "raw text content (optional, used if no file)"
}Response
{
"success": true,
"extractedLength": 2048,
"data": {
"meetingTitle": "FY26 Strategic Planning Review",
"meetingGoal": "Align engineering, design, and leadership on cloud migration priorities.",
"agendaItems": [
{
"id": "sec-1",
"title": "Architecture Overview",
"description": "Review proposed Kubernetes node configuration.",
"summary": "Transition from legacy desktop to cloud containers is estimated to boost engagement by 22%.",
"stakeholders": ["Dave Ross", "Sarah Jenkins"],
"actionItems": ["Dave to present performance benchmarks", "Sarah to approve compute budget"],
"timeWeight": 25
}
]
}
}- Export agenda as formatted
.docxor.pdf - Google Calendar / Outlook event creation integration
- Multi-language agenda generation support
- User authentication and agenda history persistence
- Collaborative real-time agenda editing (multi-user)
- Slack/Teams bot integration for agenda distribution
Saurav Venu Computer Science Student | Full-Stack Developer
This project is open source and available under the MIT License.


