An intelligent web application that automatically processes meeting transcripts and creates Jira tickets from extracted action items using Azure OpenAI.
- 🤖 AI-Powered Extraction - Uses Azure OpenAI with advanced validation (hallucination detection, consistency management)
- 🎫 Jira Integration - Automatically creates tickets from action items
- � Modern Web UI - React frontend with folder management, filtering, and batch upload
- � Multi-format Support - Processes .txt, .md, .json, .xml, .docx, .pdf, and .vtt files
- � Fallback Mode - Works without AI credentials using rule-based extraction
- 🎯 Context-Aware - Adapts to meeting types (standup, sprint, incident, etc.) and languages (EN/FR/NL)
See the Meeting Transcript Processor in action:
MTP_V4.mp4
Watch how the application automatically processes meeting transcripts, extracts action items using Azure OpenAI, and creates Jira tickets seamlessly.
New.Features.October.28th.2025.mp4
Main Features Showcased:
- Train AI - Advanced AI model training and validation
- Support for Dutch as an input language - Multi-language processing capabilities
- Token usage and Cost present within a meetings card - Real-time AI cost tracking
- Support for VTT files (native MS Teams transcripts) and DOCX files - Enhanced file format compatibility
- .NET 9.0 SDK
- Node.js 18+ and npm
- Azure OpenAI account (optional)
- Jira account with API access (optional)
-
Clone and restore dependencies:
git clone <repository-url> cd MeetingTranscriptProcessor dotnet restore
-
Configure environment (optional):
Copy-Item .env.example .env # Edit .env with your Azure OpenAI and Jira credentials
-
Run the application:
Backend:
dotnet run --webFrontend:
cd frontend/meeting-transcript-ui npm install npm run dev
-
Access the application:
- Frontend: http://localhost:5175
- Backend API: http://localhost:5555
📤 Upload → � Processing → 🤖 AI Analysis → 🎫 Jira Tickets → 📦 Archive
- Upload transcript files via web interface
- Files automatically move through Incoming → Processing → Archive
- AI extracts action items with validation
- Jira tickets created automatically
- View results in the Archive folder with filtering
All settings are optional - the app works in simulation mode without credentials.
The application uses the following default ports:
- Frontend (React + Vite): Port
5175(configured invite.config.ts) - Backend (.NET API): Port
5555(configured inProperties/launchSettings.json)
To use different ports:
- Frontend: Set
VITE_API_URLinfrontend/meeting-transcript-ui/.env - Backend: Modify the
applicationUrlinProperties/launchSettings.json
# Azure OpenAI (Optional - enables AI extraction)
AOAI_ENDPOINT=https://your-resource.openai.azure.com/
AOAI_APIKEY=your-api-key
CHATCOMPLETION_DEPLOYMENTNAME=gpt-35-turbo
# Jira (Optional - enables actual ticket creation)
JIRA_URL=https://your-domain.atlassian.net
JIRA_API_TOKEN=your-api-token
JIRA_EMAIL=your-email@company.com
JIRA_PROJECT_KEY=TASK
# AI Validation (Optional)
ENABLE_VALIDATION=true
ENABLE_HALLUCINATION_DETECTION=true
ENABLE_CONSISTENCY_MANAGEMENT=true- 🤖 Full AI Mode: Azure OpenAI + Jira (recommended)
- 🔧 Hybrid Mode: Either Azure OpenAI OR Jira
- ⚙️ Offline Mode: No credentials needed, rule-based extraction
- Modern React 18 with TypeScript
- Vite for fast development
- CSS Modules for styling
- Responsive design with mobile support
- ASP.NET Core Web API
- Background file processing services
- Advanced AI validation pipeline
- RESTful API endpoints
- HallucinationDetector: 6-step validation preventing false positives
- ConsistencyManager: Context-aware extraction for 8 meeting types + 3 languages
- ActionItemValidator: 4-technique validation with weighted scoring
- Text files (.txt, .md)
- JSON/XML (.json, .xml)
- Documents (.docx, .pdf)
- WebVTT (.vtt) - MS Teams recording transcripts
Meeting: Sprint Planning - Q1 2025
Date: 2025-01-15
Participants: Alice, Bob, Carol
Alice: We need to implement user authentication by Friday.
Bob: I'll fix the login bug and create API documentation.
Carol: Let's schedule the UI review meeting.
Action Items:
- Alice: Implement authentication (Due: Friday)
- Bob: Fix login bug, create docs (Due: This week)
- Carol: Schedule UI review meeting
# Backend
dotnet build
dotnet test
dotnet watch run --web
# Frontend
cd frontend/meeting-transcript-ui
npm install
npm run build
npm run devMeetingTranscriptProcessor/
├── Controllers/ # Web API
├── Services/ # Business logic & AI validation
├── Models/ # Data contracts
├── frontend/ # React application
├── data/ # File storage
└── .env.example # Configuration template
- GET
/api/meetings/folders- Get folders with meeting counts - GET
/api/meetings/folders/{type}/meetings- Get meetings with filtering - POST
/api/meetings/upload- Upload transcript files - GET
/api/configuration- Get current settings - PUT
/api/configuration/azure-openai- Update AI settings - PUT
/api/configuration/jira- Update Jira settings - GET
/api/status- System health and metrics
- Fork the repository
- Create a feature branch
- Make your changes
- Add tests if applicable
- Submit a pull request
This project is licensed under the MIT License.
Perfect for: Teams wanting to automate action item tracking from meeting transcripts with enterprise-grade AI validation and Jira integration.
This project was developed independently on personal equipment and in personal time. It is not affiliated with, endorsed by, or derived from the intellectual property of EPAM Systems or any of its clients. All examples, configurations, and data are generic and intended solely for demonstration and educational purposes.