Skip to content

SauravVenu/AgendaCraft

Folders and files

NameName
Last commit message
Last commit date

Latest commit

ย 

History

6 Commits
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 

Repository files navigation

AgendaCraft

AI-Powered Meeting Agenda Generator

Transform unstructured team briefs, reports, and meeting notes into precise, time-budgeted agendas โ€” in seconds.

React TypeScript Node.js Gemini AI Tailwind CSS Vite


๐Ÿ“ธ Screenshots

๐Ÿ  Home Page

Home Page

The landing page where users upload documents and generate AI-powered agendas.


๐Ÿ“‹ Generated Meeting Agenda

Generated Agenda

AI-generated agenda with stakeholders, action items, and time allocation.


โฑ๏ธ Live Facilitator Mode

Live Facilitator Mode

Real-time meeting facilitation with countdown timer and agenda tracking.


๐Ÿ“Œ Overview

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.


โœจ Key Features

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

๐Ÿ—๏ธ Architecture

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.


๐Ÿค– AI Pipeline

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.


๐Ÿ› ๏ธ Tech Stack

Frontend

Backend

Tooling

  • Vite 6 โ€” Frontend build & dev server (middleware mode)
  • esbuild โ€” Server TypeScript bundling for production
  • tsx โ€” TypeScript execution for development

๐Ÿš€ Getting Started

Prerequisites

  • Node.js v18 or higher
  • A Gemini API key โ€” get one free at Google AI Studio

Installation

# 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 dev

Open http://localhost:3000 in your browser.

Production Build

npm run build    # Compiles React SPA + bundles Express server
npm start        # Runs the production server at port 3000

๐Ÿ“ธ How It Works

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


๐Ÿ’ก Design Decisions

  • 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 responseSchema parameter guarantees the AI response is always valid JSON matching the MeetingAgenda type, 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.

๐Ÿ“ API Reference

POST /api/generate-agenda

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
      }
    ]
  }
}

๐Ÿ”ฎ Future Enhancements

  • Export agenda as formatted .docx or .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

๐Ÿ‘ค Author

Saurav Venu Computer Science Student | Full-Stack Developer

GitHub


๐Ÿ“„ License

This project is open source and available under the MIT License.


Built with React, Express, TypeScript, and Google Gemini AI

About

AI-powered meeting agenda generator built with React, TypeScript, Express and Google Gemini AI.

Topics

Resources

Stars

1 star

Watchers

0 watching

Forks

Releases

No releases published

Packages

 
 
 

Contributors