A comprehensive real-time CI/CD pipeline monitoring and visualization system designed to provide unified visibility into build and deployment processes across multiple platforms.
- Webhook Integration Module - Receives events from GitHub Actions, Jenkins, GitLab CI, and custom CI/CD tools
- Backend API Module - RESTful APIs for data access and management
- Database and Persistence Module - MongoDB-based data storage
- Real-Time Communication Module - Socket.IO for live updates + 2s polling fallback
- Frontend Dashboard Module - React-based responsive interface with search & tool badges
- Data Visualization Module - Recharts-based dynamic HistoryChart + pipeline analytics
- Notification Module - Real-time alerts, audio notifications (Web Audio API), browser desktop notifications, tab title badges
- Demo and Integration Support Module - Testing and demonstration tools
- Authentication and User Management Module - JWT-based secure authentication
- Advanced Analytics and Reporting Module - Performance insights and reports
- Tool-Specific CI/CD Adapters Module - GitHub Actions, Jenkins, GitLab CI, and auto-detection
- Error Handling and Retry Mechanism Module - Fault-tolerant operations
- Notification Enhancement Module - Multi-channel notification support
- Security and Configuration Module - Security headers, rate limiting, sanitization
- Scalability and Performance Optimization Module - Caching and optimization
- Code Analysis Module - Interactive interface for static code analysis
- AI-Powered Assistant Module - Chatbot for CI/CD pipeline insights and user assistance
- Frontend: React.js, Socket.IO Client, Recharts, React Router
- Backend: Node.js, Express.js, Socket.IO
- Database: MongoDB
- Authentication: JWT (JSON Web Tokens)
- Real-time: WebSocket / Socket.IO
- Version Control: Git
- Node.js (v16 or higher)
- MongoDB (v5 or higher) - Running locally or MongoDB Atlas
- npm or yarn
cd testcd backend
npm installCreate or verify .env file in backend directory:
PORT=5000
MONGODB_URI=mongodb://localhost:27017/trackflow
JWT_SECRET=your-super-secret-jwt-key-change-this-in-production
JWT_EXPIRE=7d
FRONTEND_URL=http://localhost:3000
GITHUB_WEBHOOK_SECRET=
JENKINS_WEBHOOK_SECRET=
GITLAB_WEBHOOK_SECRET=cd ../frontend
npm installCreate .env file in frontend directory (optional):
REACT_APP_API_URL=http://localhost:5000/api
REACT_APP_SOCKET_URL=http://localhost:5000Make sure MongoDB is running:
# Windows
net start MongoDB
# Linux/Mac
sudo systemctl start mongodcd backend
npm run devBackend will start on http://localhost:5000
cd frontend
npm startFrontend will start on http://localhost:3000
- Navigate to
http://localhost:3000 - Register a new account or use demo credentials:
- Email:
demo@trackflow.com - Password:
demo123
- Email:
Use the demo scripts to populate with sample pipelines:
# Seed realistic pipelines from GitHub/Jenkins/GitLab
node backend/scripts/seed_pipelines.js
# Or use the demo API endpoint
curl -X POST http://localhost:5000/api/demo/seed# Test all webhook endpoints (GitHub, Jenkins, GitLab, auto-detect)
node backend/scripts/test_integrations.jsGitHub Actions Webhook:
curl -X POST http://localhost:5000/api/webhooks/github \
-H "Content-Type: application/json" \
-d '{"workflow_run": {"id": 123, "name": "CI", "status": "completed", "conclusion": "success"}, "repository": {"full_name": "user/repo"}}'Jenkins Webhook:
curl -X POST http://localhost:5000/api/webhooks/jenkins \
-H "Content-Type: application/json" \
-d '{"name": "My Job", "build": {"number": 42, "phase": "COMPLETED", "status": "SUCCESS"}}'GitLab CI Webhook:
curl -X POST http://localhost:5000/api/webhooks/gitlab \
-H "Content-Type: application/json" \
-d '{"object_kind": "pipeline", "object_attributes": {"id": 1, "status": "success"}, "project": {"name": "my-app"}}'Auto-Detect (sends to any platform):
curl -X POST http://localhost:5000/api/webhooks/auto \
-H "Content-Type: application/json" \
-d '{...any CI/CD payload...}'- View real-time pipeline updates on the dashboard
- Search pipelines by name, repository, branch, or tool
- Filter by status (All, Success, Failure, Running)
- View tool badges (π GitHub, π€ Jenkins, π¦ GitLab, βοΈ Generic)
- Click on pipelines for detailed information
- View historical trends with the Recharts-based HistoryChart
- Receive audio alerts on pipeline failures (double-beep) and successes (chime)
- Tab title shows failure count:
(N FAILED) TrackFlow
POST /api/auth/register- Register new userPOST /api/auth/login- Login userGET /api/auth/profile- Get user profile (protected)
POST /api/webhooks/github- GitHub Actions webhookPOST /api/webhooks/jenkins- Jenkins webhookPOST /api/webhooks/gitlab- GitLab CI webhook (NEW)POST /api/webhooks/auto- Auto-detect tool from payload (NEW)POST /api/webhooks/generic- Generic webhook
GET /api/pipelines- Get all pipelines (with pagination)GET /api/pipelines/:id- Get single pipeline with eventsGET /api/pipelines/:id/events- Get pipeline events/stages (NEW)GET /api/pipelines/stats/overview- Get statisticsGET /api/pipelines/history/:name- Get pipeline history by name (NEW)GET /api/pipelines/recent/:count- Get recent pipelines
GET /api/analytics/overview- Overall metricsGET /api/analytics/trends- Success/failure trendsGET /api/analytics/performance- Performance insights
GET /api/notifications- Get user notificationsPUT /api/notifications/:id/read- Mark as readPOST /api/notifications/mark-all-read- Mark all as read
POST /api/demo/seed- Seed database with sample dataPOST /api/demo/trigger-github- Simulate GitHub webhookPOST /api/demo/trigger-jenkins- Simulate Jenkins webhookGET /api/demo/payloads- Get sample payloads
Add a notification step to your .github/workflows/*.yml:
on:
workflow_run:
types: [completed]
jobs:
notify-trackflow:
runs-on: ubuntu-latest
steps:
- name: Notify TRACKFLOW
run: |
curl -X POST http://your-trackflow-server/api/webhooks/github \
-H "Content-Type: application/json" \
-d "${{ toJSON(github) }}"Configure webhook in Jenkins job settings:
- URL:
http://your-trackflow-server/api/webhooks/jenkins - Method: POST
- Content-Type: application/json
Configure in GitLab β Settings β Webhooks:
- URL:
http://your-trackflow-server/api/webhooks/gitlab - Secret Token: (optional, set GITLAB_WEBHOOK_SECRET in .env)
- Trigger: Pipeline events
For any CI/CD tool, use the auto-detect endpoint:
- URL:
http://your-trackflow-server/api/webhooks/auto - TrackFlow will automatically detect GitHub, Jenkins, GitLab, or generic payloads
- Live pipeline status changes via Socket.IO
- 2-second polling fallback when WebSocket disconnects
- Smart deduplication prevents duplicate notifications
- Connection status indicator (Connected/Polling)
- π Failure double-beep alert (Web Audio API)
- π΅ Success rising chime (C5βE5βG5)
- π₯οΈ Browser desktop notifications on failure
- π Tab title badge:
(N FAILED) TrackFlow - Mute/test sound buttons in navbar
- Recharts-based dynamic line chart
- Pipeline selector dropdown
- Color-coded dots (green/red/blue by status)
- Duration tracking over time
- π GitHub Actions
- π€ Jenkins
- π¦ GitLab CI (NEW)
- βοΈ Generic/Custom
- π Auto-detect from payload (NEW)
- Success/failure trends
- Performance metrics
- Duration analysis
- Tool-specific insights
- Static code analysis
- Interactive chatbot interface
- Instant CI/CD insights
- Pipeline assistance and querying
- JWT authentication
- Rate limiting
- NoSQL injection protection
- Secure password hashing
- CORS configuration
- Webhook signature validation (HMAC for GitHub, token for GitLab)
- Clean, modern UI
- Dark theme design
- Responsive layout
- Real-time feedback
- Pipeline search (name, repo, branch, tool)
- Tool badge emojis
- Comprehensive error handling
test/
βββ backend/
β βββ adapters/ # CI/CD tool adapters
β β βββ adapterFactory.js # Factory + auto-detect
β β βββ githubAdapter.js # GitHub Actions parser
β β βββ jenkinsAdapter.js # Jenkins parser
β β βββ gitlabAdapter.js # GitLab CI parser (NEW)
β βββ config/ # Configuration
β βββ controllers/ # Route controllers
β βββ middleware/
β β βββ authMiddleware.js
β β βββ errorHandler.js
β β βββ securityMiddleware.js
β β βββ webhookLogger.js # Payload logger (NEW)
β βββ models/ # MongoDB models
β βββ routes/ # API routes
β βββ scripts/ # Demo & test scripts (NEW)
β β βββ test_integrations.js
β β βββ seed_pipelines.js
β βββ services/ # Business logic
β βββ sockets/ # Socket.IO handlers
β βββ .env # Environment variables
β βββ package.json
β βββ server.js # Entry point
β
βββ frontend/
β βββ public/
β βββ src/
β β βββ components/
β β β βββ Dashboard/
β β β β βββ Dashboard.jsx
β β β β βββ Dashboard.css
β β β β βββ HistoryChart.jsx # Recharts chart (NEW)
β β β β βββ StagePopup.jsx # Stage modal (NEW)
β β β βββ Layout/
β β β β βββ Navbar.jsx # + audio controls
β β β β βββ Navbar.css
β β β βββ ... # Analytics, Auth, etc.
β β βββ context/
β β β βββ LiveStatsContext.js # REAL data (REWRITTEN)
β β β βββ AuthContext.js
β β βββ services/
β β β βββ audioNotifications.js # Web Audio API (NEW)
β β βββ utils/
β β β βββ api.js
β β β βββ socket.js
β β βββ App.js
β β βββ index.css
β βββ package.json
β
βββ CHANGELOG.md # (NEW)
βββ MIGRATION_PLAN.md
βββ README.md
- Ensure MongoDB is running
- Check connection string in
.env - Verify MongoDB port (default: 27017)
- Change PORT in backend
.env - Update REACT_APP_API_URL in frontend
- Verify FRONTEND_URL in backend
.env - Check browser console for specific errors
- Change JWT_SECRET in production
- Use environment variables for sensitive data
- Enable webhook signature validation
- Configure proper CORS origins
- Use HTTPS in production
- Email notifications
- Slack/Discord integrations
- Bitbucket Pipelines adapter
- CircleCI adapter
- Custom dashboards per user
- Team collaboration features
- Audit logs
- Pipeline comparison view
This is a demonstration project. Feel free to fork and customize for your needs.
MIT License - feel free to use for personal and commercial projects.
Built with modern web technologies and best practices for real-time monitoring systems.
TRACKFLOW - Empowering teams with real-time CI/CD visibility π