A modular application for extracting actionable tasks and Q&A items from meeting transcripts and generating JIRA-compatible CSV files using local AI processing.
- Meeting Transcript Analysis: Extract actionable tasks and questions from meeting transcripts
- Local AI Processing: Uses Ollama for private, local AI processing (no data sent to cloud services)
- JIRA CSV Export: Generate JIRA-compatible CSV files for easy import
- Web Interface: User-friendly web interface with progress tracking
- Modular Architecture: Clean, testable code following best practices
- Python 3.8+
- Ollama installed and running locally
- Llama 3.1 model downloaded in Ollama
- Clone the repository:
git clone <repository-url>
cd jira_project- Install dependencies:
pip install -r requirements.txt- Start Ollama and ensure the model is available:
ollama pull llama3.1:latest
ollama serve- Run the application:
python app.py- Open your browser and navigate to
http://localhost:5000
jira_project/
├── src/
│ ├── api/ # API routes and handlers
│ ├── config/ # Configuration management
│ ├── models/ # Data models (JiraTask, QAItem)
│ ├── services/ # Business logic services
│ ├── utils/ # Utility functions and classes
│ └── exceptions.py # Custom exception classes
├── tests/
│ ├── unit/ # Unit tests
│ ├── integration/ # Integration tests
│ └── conftest.py # Pytest configuration
├── templates/ # Web interface templates
├── static/ # Static assets (CSS, JS)
└── docs/ # Documentation
- TranscriptAnalysisService: Orchestrates transcript processing
- OllamaService: Handles AI communication with Ollama
- CSVGenerationService: Generates JIRA-compatible CSV files
- JiraTask: Represents a JIRA task with validation
- QAItem: Represents a question-answer pair with context
- Environment-based configuration management
- Configurable AI service parameters
- Processing limits and validation rules
GET /api/health- Service health status
POST /api/parse-transcript- Extract tasks onlyPOST /api/extract-qa- Extract Q&A onlyPOST /api/process-enhanced- Extract both tasks and Q&A
POST /api/generate-csv- Generate CSV file from tasks
GET /api/status- Get service status and configuration
Configuration can be set via environment variables:
# Application settings
DEBUG=false
HOST=127.0.0.1
PORT=5000
SECRET_KEY=your-secret-key
# Ollama settings
OLLAMA_MODEL=llama3.1:latest
OLLAMA_URL=http://localhost:11434
OLLAMA_TIMEOUT=60
# Processing limits
MAX_TASKS=10
MAX_QUESTIONS=8
MAX_TRANSCRIPT_LENGTH=50000
# JIRA settings
DEFAULT_REPORTER=meeting@example.comRun the test suite:
# Run all tests
pytest
# Run unit tests only
pytest tests/unit/
# Run with coverage
pytest --cov=src
# Run specific service tests
pytest tests/unit/test_mcp_jira_service.py -v
pytest tests/unit/test_context_aware_ai_service.py -v
pytest tests/unit/test_smart_duplicate_service.py -v- 157+ total tests covering all services
- Model Validation: 22 tests
- CSV Generation: 12 tests
- Context Service: 11 tests
- Export Service: 14 tests
- Cache Service: 12 tests
- Document Service: 19 tests
- MCP JIRA Service: 21 tests ⭐ NEW
- Context-Aware AI: 22 tests ⭐ NEW
- Smart Duplicate Detection: 31 tests ⭐ NEW
See TEST_COVERAGE_SUMMARY.md for detailed test documentation.
- Install development dependencies:
pip install -r requirements-dev.txt- Run tests before committing:
pytest- Format code:
black src/ tests/- Create tests first (TDD approach)
- Implement the feature following the existing patterns
- Update documentation as needed
- Ensure all tests pass
- All AI processing is done locally using Ollama
- No transcript data is sent to external services
- Input validation prevents malicious data processing
- Configurable processing limits prevent resource exhaustion
-
Ollama connection failed
- Ensure Ollama is running:
ollama serve - Check if the model is available:
ollama list - Verify the OLLAMA_URL configuration
- Ensure Ollama is running:
-
No tasks extracted
- Check transcript content (minimum 10 words)
- Ensure transcript contains actionable items
- Try the iterative extraction mode
-
CSV generation fails
- Verify task data has required fields (summary)
- Check for validation errors in logs
- Ensure proper email format for reporter field
Application logs provide detailed information about:
- AI service communication
- Task extraction process
- Validation errors
- Performance metrics
- Fork the repository
- Create a feature branch
- Add tests for new functionality
- Ensure all tests pass
- Submit a pull request
This project is licensed under the MIT License - see the LICENSE file for details.