AI-Powered Meeting Intelligence Platform
Transform your meeting transcripts into actionable insights with the power of Google's Gemini AI. MeetlyAI automatically extracts summaries, key decisions, and action items from your meeting notes.
- π Smart Summarization: Get concise, accurate meeting summaries
- π― Decision Tracking: Automatically extract key decisions made
- β Action Items: Identify tasks with ownership and priority
- π Fast & Reliable: Built on FastAPI for high performance
- π RESTful API: Easy integration with any frontend or tool
- π³ Docker Ready: Deploy anywhere with containerization
MeetlyAI/
βββ backend/ # FastAPI backend service
β βββ app/
β β βββ api/ # HTTP endpoints
β β βββ core/ # Configuration & logging
β β βββ services/ # Business logic (Gemini AI)
β β βββ schemas/ # Pydantic models
β β βββ utils/ # Helper functions
β βββ main.py # Application entry point
β βββ Dockerfile # Backend container
βββ frontend/ # React + Vite frontend
β βββ src/
β β βββ App.jsx # Main component
β β βββ index.css # Glass morphism design system
β βββ Dockerfile # Frontend container
β βββ nginx.conf # Production server config
βββ .github/
β βββ workflows/ # CI/CD pipelines
βββ docker-compose.yml # Multi-service orchestration
βββ README.md # This file
- Docker & Docker Compose (recommended)
- OR Python 3.11+ and Node.js 18+ for local development
- Google Gemini API Key (Get one free)
-
Clone the repository
git clone <your-repo-url> cd MeetlyAI
-
Configure environment
cp .env.example .env # Edit .env and add your GEMINI_API_KEY -
Start all services
docker-compose up --build
-
Access the application
- Frontend: http://localhost:3000
- Backend API: http://localhost:8000
- API Docs: http://localhost:8000/docs
- Health Check: http://localhost:8000/health
Backend:
cd backend
python -m venv venv
source venv/bin/activate # Windows: venv\Scripts\activate
pip install -r requirements.txt
cp .env.example .env
# Edit .env and add your GEMINI_API_KEY
uvicorn main:app --reloadFrontend:
cd frontend
npm install
npm run devAccess frontend at http://localhost:5173
curl -X POST http://localhost:8000/api/analyze/transcript \
-H "Content-Type: application/json" \
-d '{
"transcript": "Team sync on Jan 5th. Discussed Q1 goals. Alice will prepare the budget proposal by next week - high priority. Bob agreed to review the design mockups. Decision: We will use the new framework for the project."
}'{
"summary": "Team discussed Q1 goals and made key decisions about project framework and task assignments.",
"decisions": [
"Use the new framework for the project"
],
"action_items": [
{
"task": "Prepare the budget proposal",
"owner": "Alice",
"priority": "High"
},
{
"task": "Review the design mockups",
"owner": "Bob",
"priority": null
}
]
}- Framework: FastAPI 0.115+
- AI Engine: Google Gemini 2.0 Flash
- Validation: Pydantic v2
- Server: Uvicorn with async support
- Framework: React 18
- Build Tool: Vite 5
- Styling: Custom CSS with Glass Morphism
- Fonts: Google Fonts (Inter)
- Containerization: Docker
- Orchestration: Docker Compose
- Web Server: Nginx (production)
- CI/CD: GitHub Actions
- Linting: Flake8 (Python), ESLint (JavaScript)
Once running, visit:
- Swagger UI: http://localhost:8000/docs
- ReDoc: http://localhost:8000/redoc
| Method | Endpoint | Description |
|---|---|---|
| GET | /health |
Health check |
| POST | /api/analyze/transcript |
Analyze meeting transcript |
Create a .env file in the root directory:
# Required
GEMINI_API_KEY=your_api_key_here
# Optional
APP_NAME=MeetlyAI
ENV=development
GEMINI_MODEL=gemini-2.0-flash-expSee .env.example for all available options.
GitHub Actions automatically:
- β Lints Python code with Flake8
- β Validates code structure
- β Runs on every push and PR
cd backend
pip install flake8
flake8 . --count --select=E9,F63,F7,F82 --show-source --statistics# Build and start in detached mode
docker-compose up -d --build
# View logs
docker-compose logs -f backend
# Stop services
docker-compose downFor production, update:
- CORS origins in
backend/main.py - Set
ENV=productionin.env - Use proper secrets management
- Enable HTTPS/SSL
- Frontend web application
- Real-time transcript processing
- Multi-language support
- Integration with calendar apps
- Export to PDF/Word
- Team collaboration features
- Fork the repository
- Create a feature branch (
git checkout -b feature/amazing-feature) - Commit your changes (
git commit -m 'Add amazing feature') - Push to the branch (
git push origin feature/amazing-feature) - Open a Pull Request
- Follow PEP 8 for Python code
- Add tests for new features
- Update documentation
- Ensure CI passes
Docker Issues
# Reset everything
docker-compose down -v
docker-compose up --buildAPI Key Issues
- Verify your Gemini API key is valid
- Check
.envfile exists and is loaded - Ensure no extra spaces in environment variables
Port Conflicts
# Change port in docker-compose.yml
ports:
- "8001:8000" # Use 8001 insteadThis project is licensed under the MIT License - see the LICENSE file for details.
- Google Gemini AI for powerful language models
- FastAPI for the excellent web framework
- The open-source community
For issues and questions:
- Open an issue on GitHub
- Check existing documentation
- Review API docs at
/docs
Built with β€οΈ using FastAPI and Gemini AI