AI-Powered Intelligence for Open Source Communities
Features • Tech Stack • Architecture • Getting Started • Contributing
OpenTriage is a next-generation platform that transforms how open source communities collaborate. By leveraging advanced AI and real-time analytics, it bridges the gap between maintainers and contributors, making open source development more efficient, rewarding, and inclusive.
|
Smart Triage Automatically classifies issues/PRs (Bug, Feature, Documentation), generates summaries, and analyzes sentiment to prioritize critical items. |
Maintainer Copilot AI assistant that drafts replies, suggests labels, analyzes PRs for quality and security, and provides context-aware code insights. |
|
Contributor Mentor Guides new contributors through contribution workflows, helps identify suitable issues based on skills, and provides constructive feedback. |
RAG-Powered Chat Repository-aware chatbot that understands your project's documentation, README, and codebase to provide accurate answers. |
|
Invisible Labor Dashboard Quantifies often-overlooked contributions: code reviews, mentorship, triage work, and community support. |
Sentiment Analysis Real-time monitoring of community health through issue/PR comment sentiment analysis. |
|
Contribution Streaks GitHub-style impact calendar with streak tracking and activity heatmaps. |
Gamification Engine XP system, badges, trophies, and leaderboards to recognize and reward contributors. |
|
Cookie-Licking Detection Automatically monitors claimed issues and releases them if no progress is detected—ensuring issues don't get stuck. |
Mentor Matching AI-powered matching system that connects new contributors with experienced mentors based on skills and interests. |
|
Hype Generator Creates engaging social media posts and release notes to boost project visibility. |
Resource Vault Curated learning resources tailored to your tech stack and contribution areas. |
| Feature | Description |
|---|---|
| Dynamic Badges | LeetCode-style achievement system with tiered badges (Bronze, Silver, Gold, Diamond) |
| Trophy Cabinet | Showcase your open source achievements with collectible trophies |
| Contribution Calendar | Visual representation of your impact over time |
| Leaderboards | Community rankings based on various contribution metrics |
| Layer | Technologies |
|---|---|
| Frontend | React 18, Vite, Tailwind CSS, Radix UI, Zustand, Recharts, React Router |
| Backend | FastAPI, Python 3.10+, Motor (async MongoDB), Pydantic, JWT Auth |
| AI/ML | OpenAI GPT-4, Llama 3.3, Gemini 2.0, Custom RAG Pipeline |
| Analytics | Apache Spark, PySpark SQL, Spark Streaming |
| Infrastructure | MongoDB Atlas, Vercel (Frontend), Render (Backend) |
View Text Diagram
┌─────────────────────────────────────────────────────────────────────────────┐
│ OPENTRIAGE PLATFORM │
├─────────────────────────────────────────────────────────────────────────────┤
│ │
│ ┌──────────────────────────────────────────────────────────────────────┐ │
│ │ FRONTEND (React + Vite) │ │
│ │ ┌─────────────────┐ ┌─────────────────┐ ┌─────────────────────┐ │ │
│ │ │ Maintainer │ │ Contributor │ │ Authentication │ │ │
│ │ │ Portal │ │ Dashboard │ │ (OAuth) │ │ │
│ │ └─────────────────┘ └─────────────────┘ └─────────────────────┘ │ │
│ └──────────────────────────────────────────────────────────────────────┘ │
│ │ │
│ ▼ │
│ ┌──────────────────────────────────────────────────────────────────────┐ │
│ │ BACKEND (FastAPI) │ │
│ │ ┌──────────────┐ ┌────────────────┐ ┌─────────────────────────┐ │ │
│ │ │ AI Chat │ │ GitHub Sync │ │ Profile & Auth │ │ │
│ │ │ Service │ │ Service │ │ Service │ │ │
│ │ └──────────────┘ └────────────────┘ └─────────────────────────┘ │ │
│ │ ┌──────────────┐ ┌────────────────┐ ┌─────────────────────────┐ │ │
│ │ │ Gamification │ │ Cookie-Licking │ │ Invisible Labor │ │ │
│ │ │ Engine │ │ Monitor │ │ Analytics │ │ │
│ │ └──────────────┘ └────────────────┘ └─────────────────────────┘ │ │
│ └──────────────────────────────────────────────────────────────────────┘ │
│ │ │ │
│ ┌───────────┴────────┐ ┌──────┴───────┐ │
│ ▼ ▼ ▼ ▼ │
│ ┌────────────────────┐ ┌────────────────┐ ┌──────────────────────┐ │
│ │ MongoDB │ │ Apache Spark │ │ LLM Providers │ │
│ │ (Data Store) │ │ (Analytics) │ │ (OpenAI/Gemini/Llama)│ │
│ └────────────────────┘ └────────────────┘ └──────────────────────┘ │
│ │
└─────────────────────────────────────────────────────────────────────────────┘
opentriage/
├── backend/
│ ├── config/ # Application settings, database configuration
│ ├── models/ # Pydantic models and data schemas
│ ├── routes/ # FastAPI router definitions
│ │ ├── auth.py # GitHub OAuth authentication
│ │ ├── contributor.py # Contributor dashboard APIs
│ │ ├── maintainer.py # Maintainer portal APIs
│ │ ├── mentor.py # Mentorship endpoints
│ │ ├── profile.py # User profile management
│ │ ├── spark.py # Analytics endpoints
│ │ └── ...
│ ├── services/ # Core business logic
│ │ ├── ai_service.py # LLM integration
│ │ ├── badges_service.py # Badge system
│ │ ├── cookie_licking_service.py # Claim monitoring
│ │ ├── gamification_engine.py # XP & streaks
│ │ ├── github_service.py # GitHub API wrapper
│ │ ├── invisible_labor_analytics.py # Hidden contribution metrics
│ │ ├── mentor_matching_service.py # Mentor-mentee matching
│ │ ├── rag_chatbot_service.py # RAG-powered chat
│ │ ├── spark_sentiment_pipeline.py # Sentiment analysis
│ │ └── ...
│ ├── spark_manager.py # Apache Spark session management
│ └── server.py # Application entry point
│
├── frontend/
│ ├── src/
│ │ ├── components/
│ │ │ ├── contributor/ # Contributor dashboard components
│ │ │ ├── maintainer/ # Maintainer portal components
│ │ │ └── ui/ # Shared UI components
│ │ ├── services/ # API client and service functions
│ │ ├── stores/ # Zustand state management
│ │ └── hooks/ # Custom React hooks
│ └── index.html
│
└── tests/ # Test suites
git clone https://github.com/CosmicMagnetar/openTriage.git
cd opentriagecd backend
python -m venv venv
source venv/bin/activate # Windows: venv\Scripts\activate
pip install -r requirements.txtCreate a .env file in the backend directory:
# Database
MONGO_URL=mongodb://localhost:27017
DB_NAME=opentriage
# GitHub OAuth
GITHUB_CLIENT_ID=your_github_client_id
GITHUB_CLIENT_SECRET=your_github_client_secret
# Security
JWT_SECRET=your_jwt_secret
# AI Services
OPENROUTER_API_KEY=your_openrouter_api_keyStart the server:
uvicorn server:app --reload --port 8000cd frontend
npm installCreate a .env file in the frontend directory:
VITE_BACKEND_URL=http://localhost:8000Start the development server:
npm run devThe app will be available at http://localhost:5173
OpenTriage uses Apache Spark for high-performance analytics. Add these optional environment variables to your backend .env:
SPARK_APP_NAME=OpenTriage
SPARK_MASTER=local[*]
SPARK_DRIVER_MEMORY=4g
SPARK_EXECUTOR_MEMORY=2g
SPARK_LOG_LEVEL=WARN| Setting | Low Memory (8GB) | Standard (16GB) | High Performance (32GB+) |
|---|---|---|---|
SPARK_DRIVER_MEMORY |
2g | 4g | 8g |
SPARK_EXECUTOR_MEMORY |
1g | 2g | 4g |
Auto-configured optimizations:
- Adaptive query execution for dynamic optimization
- Kryo serialization for faster data transfer
- Off-heap memory for improved GC performance
- Arrow optimization for Pandas integration
- Find an Issue — Look for
good first issueorhelp wantedlabels - Fork & Branch — Create a feature branch from
main - Code — Follow existing patterns and conventions
- Test — Ensure your changes don't break existing functionality
- Submit PR — Write a clear description of your changes
| Type | Location |
|---|---|
| New API endpoints | backend/routes/ (register in routes/__init__.py) |
| Business logic | backend/services/ |
| Data models | backend/models/ |
| React components | frontend/src/components/ |
| API client functions | frontend/src/services/api.js |
| State management | frontend/src/stores/ |
- Use meaningful commit messages
- Keep PRs focused and reasonably sized
- Add comments for complex logic
- Update documentation as needed
This project is licensed under the MIT License — see the LICENSE file for details.
Built for the Open Source Community

