Skip to content

virginprogrammer/chat-project-management

Repository files navigation

Teams/Slack Project Management System

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.

Features

  • πŸ”— 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

Architecture

See ARCHITECTURE.md for detailed system architecture and design.

System Components

  • 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

Tech Stack

Backend

  • Node.js 18+ with NestJS
  • PostgreSQL 15+
  • Redis 7+
  • TypeScript

Frontend

  • React 18+
  • TypeScript
  • Material-UI
  • Redux Toolkit

AI/ML

  • Azure Speech Services (speech-to-text)
  • OpenAI GPT-4 API (NLP)

Prerequisites

  • 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

Quick Start

1. Clone and Install

git clone <repository-url>
cd chat-project-management
npm run install:all

2. Environment Configuration

Create .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

3. Start Services with Docker

# Start PostgreSQL and Redis
docker-compose up -d

# Run database migrations
npm run db:migrate

4. Start Development Servers

# Start both backend and frontend
npm run dev

Development

Project Structure

.
β”œβ”€β”€ 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

Available Scripts

# 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

Integration Setup

Microsoft Teams

  1. Register app in Azure Active Directory
  2. Configure API permissions:
    • Chat.Read.All
    • OnlineMeetings.Read.All
    • CallRecords.Read.All
  3. Add redirect URI: http://localhost:3000/api/auth/teams/callback
  4. Copy Client ID, Secret, and Tenant ID to .env

Slack

  1. Create a Slack app at https://api.slack.com/apps
  2. Configure OAuth & Permissions:
    • channels:history
    • channels:read
    • files:read
    • groups:history
  3. Enable Events API and subscribe to message events
  4. Add redirect URI: http://localhost:3000/api/auth/slack/callback
  5. Copy credentials to .env

Deployment

See docs/deployment.md for production deployment instructions.

Testing

# Run all tests
npm run test

# Run tests with coverage
npm run test:coverage

# Run specific test suite
npm run test --workspace=backend -- auth

Documentation

Security

  • OAuth 2.0 for platform integrations
  • JWT for API authentication
  • Encryption at rest and in transit
  • Regular security audits
  • GDPR compliant

Roadmap

  • 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

Contributing

Contributions are welcome! Please read CONTRIBUTING.md for details.

License

MIT

Support

For issues and questions:

  • Create an issue in the GitHub repository
  • Check the documentation in the docs/ directory

About

Collect chats, meeting audio to drive and get insight into projects

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Contributors 2

  •  
  •  

Languages