AI-powered project management system that aggregates chat messages and meeting recordings from Microsoft Teams and Slack, processes them using NLP, and provides a web-based dashboard for tracking project progress.
- π Multi-Platform Integration: Connect to both Microsoft Teams and Slack
- π€ Audio Transcription: Automatic conversion of meeting recordings to text with speaker identification
- π€ AI-Powered Analysis: Extract projects, tasks, deadlines, and requirements from conversations
- π Real-time Dashboard: Track project progress, status, and deadlines
- π Timeline Visualization: See project evolution through conversations
- π Advanced Search: Full-text search across all messages and transcriptions
- π Secure: OAuth 2.0 authentication, encryption at rest and in transit
See ARCHITECTURE.md for detailed system architecture and design.
- Data Collection Layer: Teams & Slack connectors
- Processing Layer: Audio transcription and NLP entity extraction
- Storage Layer: PostgreSQL, Redis, S3/Blob storage
- API Layer: REST/GraphQL backend
- Frontend Layer: React web application
- Node.js 18+ with NestJS
- PostgreSQL 15+
- Redis 7+
- TypeScript
- React 18+
- TypeScript
- Material-UI
- Redux Toolkit
- Azure Speech Services (speech-to-text)
- OpenAI GPT-4 API (NLP)
- Node.js 18.0.0 or higher
- Docker and Docker Compose
- PostgreSQL 15+
- Redis 7+
- Microsoft Azure account (for Teams integration)
- Slack workspace admin access
- OpenAI API key
git clone <repository-url>
cd chat-project-management
npm run install:allCreate .env files in both backend and frontend directories. See .env.example files for required variables.
Backend (.env):
# Database
DATABASE_URL=postgresql://user:password@localhost:5432/teams_slack_pm
REDIS_URL=redis://localhost:6379
# Microsoft Teams
TEAMS_CLIENT_ID=your_client_id
TEAMS_CLIENT_SECRET=your_client_secret
TEAMS_TENANT_ID=your_tenant_id
# Slack
SLACK_CLIENT_ID=your_client_id
SLACK_CLIENT_SECRET=your_client_secret
SLACK_SIGNING_SECRET=your_signing_secret
# AI Services
AZURE_SPEECH_KEY=your_key
AZURE_SPEECH_REGION=your_region
OPENAI_API_KEY=your_key
# Storage
AWS_ACCESS_KEY_ID=your_key
AWS_SECRET_ACCESS_KEY=your_secret
AWS_S3_BUCKET=your_bucket
# JWT
JWT_SECRET=your_jwt_secret# Start PostgreSQL and Redis
docker-compose up -d
# Run database migrations
npm run db:migrate# Start both backend and frontend
npm run dev- Backend API: http://localhost:3000
- Frontend: http://localhost:5173
.
βββ backend/ # NestJS backend application
β βββ src/
β β βββ modules/ # Feature modules
β β β βββ auth/ # Authentication
β β β βββ teams/ # Microsoft Teams integration
β β β βββ slack/ # Slack integration
β β β βββ transcription/ # Audio processing
β β β βββ nlp/ # Natural language processing
β β β βββ projects/ # Project management
β β β βββ messages/ # Message handling
β β βββ database/ # Database configuration
β β βββ common/ # Shared utilities
β βββ test/
βββ frontend/ # React frontend application
β βββ src/
β β βββ components/ # Reusable components
β β βββ pages/ # Page components
β β βββ store/ # Redux store
β β βββ services/ # API services
β β βββ utils/ # Utilities
β βββ public/
βββ docker/ # Docker configurations
βββ docs/ # Additional documentation
βββ .github/ # GitHub Actions workflows
# Development
npm run dev # Start both backend and frontend
npm run dev --workspace=backend # Start only backend
npm run dev --workspace=frontend # Start only frontend
# Building
npm run build # Build both applications
# Testing
npm run test # Run all tests
npm run test:coverage # Run tests with coverage
# Linting
npm run lint # Lint all code
npm run lint:fix # Fix linting issues
# Database
npm run db:migrate # Run migrations
npm run db:seed # Seed database
# Docker
npm run docker:up # Start Docker services
npm run docker:down # Stop Docker services- Register app in Azure Active Directory
- Configure API permissions:
Chat.Read.AllOnlineMeetings.Read.AllCallRecords.Read.All
- Add redirect URI:
http://localhost:3000/api/auth/teams/callback - Copy Client ID, Secret, and Tenant ID to
.env
- Create a Slack app at https://api.slack.com/apps
- Configure OAuth & Permissions:
channels:historychannels:readfiles:readgroups:history
- Enable Events API and subscribe to
messageevents - Add redirect URI:
http://localhost:3000/api/auth/slack/callback - Copy credentials to
.env
See docs/deployment.md for production deployment instructions.
# Run all tests
npm run test
# Run tests with coverage
npm run test:coverage
# Run specific test suite
npm run test --workspace=backend -- auth- Architecture - System architecture and design
- API Documentation - API endpoints and usage
- Database Schema - Database structure
- Deployment Guide - Production deployment
- Contributing - Contribution guidelines
- OAuth 2.0 for platform integrations
- JWT for API authentication
- Encryption at rest and in transit
- Regular security audits
- GDPR compliant
- Phase 1: Foundation setup
- Phase 2: Data collection (Teams/Slack)
- Phase 3: Audio transcription
- Phase 4: NLP processing
- Phase 5: Backend API
- Phase 6: Frontend dashboard
- Phase 7: Testing & optimization
- Phase 8: Production deployment
Contributions are welcome! Please read CONTRIBUTING.md for details.
MIT
For issues and questions:
- Create an issue in the GitHub repository
- Check the documentation in the
docs/directory