Skip to content

krishn1122/AI-MoM-Builder

Repository files navigation

πŸ“ MOM Builder Free

MOM Builder Free Python FastAPI Flask Gemini AI License

Generate professional Minutes of Meeting (MOM) from text, images, PDFs, and documents using Google Gemini 2.5 Flash AI

πŸš€ Quick Start β€’ πŸ“– Documentation β€’ 🎯 Features β€’ πŸ› οΈ Tech Stack β€’ 🀝 Contributing


🎯 Features

✨ Multi-Format Input Support

  • πŸ“ Text Input: Paste meeting notes directly
  • πŸ“ File Upload: Support for multiple file types:
    • πŸ–ΌοΈ Images: PNG, JPG, GIF, WEBP (OCR + Vision AI)
    • πŸ“„ PDFs: Automatic text extraction
    • πŸ“˜ Word Documents: DOCX file processing
    • πŸ“ƒ Text Files: Direct TXT file support
  • πŸ”„ Mixed Content: Process images and documents together (up to 10 files)

πŸ€– AI-Powered Processing

  • 🧠 Google Gemini 2.5 Flash integration
  • πŸ” Advanced OCR for handwritten text and images
  • πŸ“„ Smart text extraction from PDFs and DOCX files
  • πŸ“‹ Structured MOM generation with professional formatting

πŸ“₯ Multiple Download Formats

  • πŸ“ Markdown (.md): Original format with full formatting
  • πŸ“„ Plain Text (.txt): Clean text without formatting
  • πŸ“˜ Word Document (.docx): Professional document with styling
  • 🎯 Smart Naming: Files named after meeting agenda/title

🎨 Modern Interface

  • πŸ“± Responsive design for all devices
  • 🎯 Clean, professional UI with Tailwind CSS
  • ⚑ Real-time processing status and progress indicators
  • πŸ–ΌοΈ Smart file previews with type-specific icons
  • πŸ—‚οΈ Drag & drop file upload with validation

πŸ”’ Privacy & Security

  • πŸ›‘οΈ Secure, temporary processing
  • 🌍 IST timezone handling
  • πŸ” No data storage or retention
  • πŸ”„ Client-side file processing where possible

πŸ“Έ Interface Screenshots

Text Input Interface

Text Input Interface

File Upload Interface

File Upload Interface Supports images, PDFs, DOCX, and TXT files with smart previews


πŸš€ Quick Start

Prerequisites

1️⃣ Clone the Repository

git clone https://github.com/yourusername/mom-builder-free.git
cd mom-builder-free

2️⃣ Install Dependencies

# Install all required dependencies automatically
python install_dependencies.py

3️⃣ Set Up Backend (FastAPI)

cd backend
# Create .env file
echo "GEMINI_API_KEY=your_gemini_api_key_here" > .env
echo "PORT=8000" >> .env

# Start backend server
python main.py

4️⃣ Set Up Frontend (Flask)

# In a new terminal
cd frontend
# Create .env file
echo "SECRET_KEY=your-secret-key-here" > .env
echo "BACKEND_URL=http://localhost:8000" >> .env
echo "PORT=5000" >> .env

# Start frontend server
python app.py

5️⃣ Access the Application

Open your browser and navigate to: http://localhost:5000


πŸ—οΈ Project Structure

mom-builder-free/
β”œβ”€β”€ πŸ“ backend/                 # FastAPI Backend
β”‚   β”œβ”€β”€ πŸ“ models/             # Pydantic models
β”‚   β”‚   └── πŸ“„ requests.py     # Request/response models
β”‚   β”œβ”€β”€ πŸ“ services/           # Business logic
β”‚   β”‚   β”œβ”€β”€ πŸ“„ gemini_service.py      # AI integration
β”‚   β”‚   β”œβ”€β”€ πŸ“„ file_processor.py      # Multi-format file processing
β”‚   β”‚   └── πŸ“„ file_converter.py      # Download format conversion
β”‚   β”œβ”€β”€ πŸ“ utils/              # Helper utilities
β”‚   β”‚   └── πŸ“„ timezone_helper.py     # IST timezone handling
β”‚   β”œβ”€β”€ πŸ“„ main.py             # FastAPI app entry point
β”‚   └── πŸ“„ requirements.txt    # Backend dependencies
β”œβ”€β”€ πŸ“ frontend/               # Flask Frontend
β”‚   β”œβ”€β”€ πŸ“ static/             # CSS, JS, assets
β”‚   β”‚   β”œβ”€β”€ πŸ“ css/           # Tailwind CSS styling
β”‚   β”‚   └── πŸ“ js/            # Interactive JavaScript
β”‚   β”œβ”€β”€ πŸ“ templates/          # Jinja2 templates
β”‚   β”‚   └── πŸ“„ index.html     # Main application interface
β”‚   β”œβ”€β”€ πŸ“„ app.py              # Flask app entry point
β”‚   └── πŸ“„ requirements.txt    # Frontend dependencies
β”œβ”€β”€ πŸ“ assets/                 # Documentation & UI assets
β”‚   β”œβ”€β”€ πŸ“„ txt.png            # TXT file icon
β”‚   β”œβ”€β”€ πŸ“„ docx.png           # DOCX file icon
β”‚   └── πŸ“„ substance.png      # Markdown file icon
β”œβ”€β”€ πŸ“„ install_dependencies.py  # Automated dependency installer
β”œβ”€β”€ πŸ“„ main.py                 # Alternative backend entry point
β”œβ”€β”€ πŸ“„ README.md               # Project documentation
└── πŸ“„ .gitignore             # Git ignore rules

πŸ› οΈ Tech Stack

Backend

Frontend

  • Flask - Lightweight web framework
  • Jinja2 - Template engine
  • Tailwind CSS - Utility-first CSS framework
  • Marked.js - Markdown parser and renderer
  • Vanilla JavaScript - Interactive file handling and UI

πŸ“– API Documentation

Endpoints

Method Endpoint Description
GET / Root endpoint
GET /api/health Health check with IST timestamp
POST /api/process-text Process text input for MOM generation
POST /api/process-images Process files (images, PDFs, DOCX, TXT)
POST /api/download-mom/txt Download MOM as plain text
POST /api/download-mom/docx Download MOM as Word document

Example Request (Text Processing)

curl -X POST "http://localhost:8000/api/process-text" \
     -H "Content-Type: application/json" \
     -d '{"text": "Meeting notes here..."}'

Example Request (File Processing)

curl -X POST "http://localhost:8000/api/process-images" \
     -H "Content-Type: application/json" \
     -d '{"images": ["data:image/jpeg;base64,/9j/4AAQ...", "data:application/pdf;base64,JVBERi0x..."]}'

Example Response

{
  "success": true,
  "data": {
    "content": "# Minutes of Meeting β€” Project Kickoff\n\n**Date:** 30-Sep-2025 **Time:** 16:20 IST **Mode:** Hybrid\n\n## Agenda\n1. Project overview\n2. Timeline discussion\n3. Resource allocation\n\n## Key Discussion Points\n- Budget approved for Q4\n- Team expansion planned\n- New technology stack evaluation\n\n## Decisions Made\n- Go-live date: December 15, 2025\n- Weekly sprint reviews\n- Remote work policy updated\n\n## Action Items\n| Task | Assignee | Due Date |\n|------|----------|----------|\n| Setup development environment | John Doe | Oct 5, 2025 |\n| Finalize requirements | Jane Smith | Oct 10, 2025 |\n\n## Next Meeting\n**Date:** October 7, 2025 **Time:** 2:00 PM IST",
    "format": "markdown"
  }
}

πŸš€ Deployment

Deploy to Vercel (Recommended)

Deploy with Vercel

One-Click Deployment:

  1. Click the "Deploy with Vercel" button above
  2. Connect your GitHub account
  3. Add environment variable: GEMINI_API_KEY (your Google Gemini API key)
  4. Click "Deploy"
  5. Your app will be live in 2-3 minutes!

Manual Deployment: For detailed step-by-step instructions, see VERCEL_DEPLOYMENT.md

Environment Variables

Required for Vercel:

GEMINI_API_KEY=your_gemini_api_key_here
ENVIRONMENT=production
SECRET_KEY=your-secret-key-here

Add these in Vercel Dashboard β†’ Project Settings β†’ Environment Variables


🎯 Usage Guide

πŸ“ Text Input Mode

  1. Click on "Text Input" tab
  2. Paste your meeting notes, agendas, or discussions
  3. Click "Generate MOM"
  4. Download in your preferred format (MD, TXT, DOCX)

πŸ“ File Upload Mode

  1. Click on "File Upload" tab
  2. Upload files (up to 10):
    • Images: Meeting photos, whiteboard captures, handwritten notes
    • PDFs: Meeting agendas, presentation slides
    • DOCX: Word documents with meeting content
    • TXT: Plain text files with notes
  3. Mix different file types as needed
  4. Click "Generate MOM from Files"
  5. Download with smart filename based on meeting title

πŸ“₯ Download Options

  • πŸ“ Markdown (.md): Full formatting preserved
  • πŸ“„ Text (.txt): Clean, readable plain text
  • πŸ“˜ Word (.docx): Professional document with styling

🀝 Contributing

We welcome contributions! Here's how you can help:

  1. Fork the repository
  2. Create a feature branch (git checkout -b feature/amazing-feature)
  3. Commit your changes (git commit -m 'Add amazing feature')
  4. Push to the branch (git push origin feature/amazing-feature)
  5. Open a Pull Request

Development Setup

# Install all dependencies
python install_dependencies.py

# Run backend tests
cd backend && python -m pytest

# Run frontend in development mode
cd frontend && python app.py

πŸ› Known Issues & Limitations

  • PDF processing works best with text-based PDFs
  • Handwritten text recognition depends on image quality
  • Maximum file size: 10MB per file
  • DOCX processing supports basic formatting

πŸ“„ License

This project is licensed under the MIT License - see the LICENSE file for details.


πŸ™ Acknowledgments

  • Google Gemini 2.5 Flash for providing advanced AI capabilities
  • FastAPI for the excellent web framework
  • Flask for the lightweight frontend framework
  • Tailwind CSS for the beautiful UI components
  • Open Source Community for the amazing tools and libraries

πŸ”„ Version History

v2.0.0 (Latest) - Multi-Format Support

  • βœ… Added support for PDF, DOCX, and TXT files
  • βœ… Multiple download formats (MD, TXT, DOCX)
  • βœ… Smart file previews with type-specific icons
  • βœ… Enhanced UI with dropdown download menu
  • βœ… Automated dependency installation script

v1.0.0 - Initial Release

  • βœ… Text input processing
  • βœ… Image upload with OCR
  • βœ… Basic markdown download
  • βœ… Responsive web interface

πŸš€ Future Roadmap

  • Real-time Collaboration: Multi-user editing
  • Meeting Templates: Pre-defined MOM formats
  • Calendar Integration: Automatic meeting scheduling
  • Audio Processing: Voice-to-MOM conversion
  • Export Options: PowerPoint, Excel formats
  • Meeting Analytics: Insights and reporting
  • Mobile App: Native iOS/Android applications

⭐ Star this repository if you find it helpful!

πŸš€ Built with cutting-edge AI technology for modern teams

Made with ❀️ by Krishn Jatav

Visitors GitHub Stars GitHub Forks

About

Generate professional Minutes of Meeting (MOM) from text or images using Google Gemini 2.5 Flash AI

Topics

Resources

License

Security policy

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors