Skip to content
Shalin-Shah-2002Public

About

No description, website, or topics provided.

Resources

Code of conduct

Contributing

Stars

1 star

Watchers

0 watching

Forks

Repository files navigation

DevFlow - GitHub Project Dashboard

Version Status API Progress License

๐Ÿ“‹ Table of Contents


๐ŸŽฏ Overview

DevFlow is a comprehensive SaaS platform that provides a unified dashboard for managing GitHub issues across multiple repositories. It enhances GitHub's native interface with advanced project management features, custom workflows, analytics, and cross-platform accessibility.

What Problem Does It Solve?

  • Multi-Repository Management: Developers working on multiple projects struggle to track issues across different repositories
  • Custom Workflows: GitHub's native interface lacks flexibility for custom categorization and workflows
  • Unified Dashboard: No single view to see all your issues and tasks in one place
  • Team Collaboration: Limited project management features for teams
  • Analytics: Minimal insights into project progress and team productivity

Target Users

  • ๐Ÿ‘จโ€๐Ÿ’ป Individual Developers - Managing personal projects
  • ๐Ÿ‘ฅ Development Teams - Collaborative project management
  • ๐Ÿ“Š Project Managers - Oversight and analytics
  • ๐ŸŽฏ Team Leads - Task assignment and tracking

โœ… What's Implemented

DevFlow is currently in active development with core functionality ready!

๐ŸŽ‰ Completed Features

โœ… Authentication System (100%)

  • GitHub OAuth 2.0 integration
  • JWT token-based authentication
  • Secure user session management
  • Access token refresh mechanism

โœ… Repository Management (100%)

  • Add/remove repositories from GitHub
  • Multi-repository dashboard
  • Sync repositories with GitHub
  • Webhook configuration
  • Custom grouping and metadata

โœ… Issue Management (100%)

  • Create, read, update, and close issues
  • Advanced filtering (by status, priority, labels, assignees, repository)
  • Bulk operations on multiple issues
  • Assign/unassign team members
  • Label management
  • Comment system (CRUD operations)
  • Direct GitHub synchronization
  • Pagination support

โœ… Labels Management (100%)

  • Create, update and delete labels per repository
  • Sync labels directly from GitHub
  • Full label metadata (name, color, description)

โœ… Custom Categories (100%)

  • Create and manage custom issue categories per user
  • Assign/remove categories on any issue
  • Conflict detection (duplicate names)
  • Issue count per category

โœ… Saved Views & Filters (100%)

  • Save custom filter combinations as named views
  • Mark a view as default
  • Apply a view to instantly retrieve matching issues
  • Full CRUD (create, update, delete views)

โœ… Analytics Dashboard (100%)

  • Dashboard overview: totals, priority breakdown, close rate
  • Issues grouped by state and custom workflow status
  • Issues grouped by repository
  • Daily timeline of created vs closed issues (7d / 30d / 90d / 1y)
  • Assignee workload distribution
  • Completion rate overall and per repository

โœ… Notifications System (100%)

  • List notifications with filters (type, read status, pagination)
  • Get single notification details
  • Get unread notification count
  • Mark individual notification as read
  • Mark all notifications as read
  • Delete individual notification
  • Delete all read notifications (bulk cleanup)

โœ… Additional Features (100%)

  • Milestones: create and list milestones per repository
  • Settings: view and update user profile settings
  • Activity Log: paginated timeline of user actions
  • Global Search: full-text search across issues and repositories
  • Data Export: download issues, repositories, or milestones as CSV or JSON
  • Bulk Actions: close, reopen, label, milestone or prioritize multiple issues at once
  • Teams: create teams and list members
  • Webhooks: register GitHub webhooks per repository
  • Health Check: live database connectivity and uptime report

โœ… Developer Experience

  • ๐Ÿ”ฅ Interactive Swagger UI at /api-docs
  • ๐Ÿ“‹ Complete OpenAPI 3.0 specification
  • ๐Ÿ“ฆ Postman collection with 72 endpoints
  • ๐Ÿ“– Comprehensive documentation
  • ๐Ÿ›ก๏ธ Input validation and error handling
  • ๐Ÿ”’ Security best practices (Helmet, CORS, Rate Limiting)

๐Ÿ“Š Current Status

  • 72 API endpoints implemented and fully functional
  • 18 database tables with complete relationships
  • 9 major API categories completed (Auth, Repos, Issues, Labels, Categories, Views, Analytics, Notifications, Additional Features)
  • Swagger documentation for all endpoints
  • Production-ready backend infrastructure

๐Ÿšง Coming Next

  • React Web Frontend
  • Flutter Mobile App
  • Real-time updates (WebSockets)
  • Unit & integration test suite

โœจ Key Features

Core Features

  • โœ… GitHub OAuth Authentication - Secure login via GitHub
  • ๐Ÿ“ฆ Multi-Repository Integration - Connect and manage multiple repos
  • ๐ŸŽฏ Unified Issue Dashboard - All issues in one place
  • ๐Ÿท๏ธ Custom Labels & Categories - Organize issues your way
  • ๐Ÿ’ฌ Comment Management - Threaded discussions
  • ๐Ÿ” Advanced Filtering & Saved Views - Find and save issue filters
  • ๐Ÿ“Š Analytics & Insights - Track progress and productivity
  • ๐Ÿ”” Smart Notifications - Stay updated on important changes
  • ๐Ÿ Milestones - Group issues into release milestones
  • ๐Ÿ”Ž Global Search - Search issues and repositories instantly
  • ๐Ÿ“ค Data Export - Download data as CSV or JSON
  • โšก Bulk Actions - Close, label, or prioritize many issues at once
  • ๐Ÿ‘ฅ Teams - Create teams and manage members
  • ๐ŸŒ“ Dark/Light Mode - Comfortable viewing experience

Platform Support

  • ๐ŸŒ Web Application - React-based responsive UI
  • ๐Ÿ“ฑ Mobile Apps - Flutter for iOS & Android
  • ๐Ÿ”Œ RESTful API - Node.js backend with Express

๐Ÿ› ๏ธ Technology Stack

Backend

  • Runtime: Node.js 20+
  • Framework: Express.js 5.x
  • Language: TypeScript 5.x
  • Database: PostgreSQL 18
  • ORM: Prisma 5.22+
  • Authentication: Passport.js + JWT + GitHub OAuth 2.0
  • Security: Helmet, CORS, Rate Limiting, Express Validator
  • API Documentation: Swagger/OpenAPI 3.0 (swagger-jsdoc, swagger-ui-express)
  • HTTP Client: Axios 1.13+ for GitHub API integration

Frontend (Planned)

  • Web: React 18+ with TypeScript
  • Mobile: Flutter 3.x with Dart
  • State Management: Redux Toolkit / Riverpod
  • UI Framework: Material-UI / Tailwind CSS

DevOps & Infrastructure

  • CI/CD: GitHub Actions (3-job pipeline: test โ†’ build โ†’ deploy)
  • Containerization: Docker + Docker Compose
  • Container Registry: GitHub Container Registry (GHCR)
  • Backend Hosting: AWS EC2 (t3.micro, eu-north-1)
  • Database Hosting: AWS RDS PostgreSQL 17 (eu-north-1)
  • Frontend Hosting: Cloudflare Pages (coming soon)
  • Package Manager: npm
  • Development: Nodemon, ts-node
  • API Testing: Swagger UI, Postman

๐Ÿ“ Project Structure

DevFlow/
โ”œโ”€โ”€ backend/                    # Backend API server
โ”‚   โ”œโ”€โ”€ src/
โ”‚   โ”‚   โ”œโ”€โ”€ index.ts                    # Entry point
โ”‚   โ”‚   โ”œโ”€โ”€ controllers/               # Request handlers (9 files)
โ”‚   โ”‚   โ”‚   โ””โ”€โ”€ additional.controller.ts
โ”‚   โ”‚   โ”œโ”€โ”€ services/                  # Business logic (9 files)
โ”‚   โ”‚   โ”‚   โ””โ”€โ”€ additional.service.ts
โ”‚   โ”‚   โ”œโ”€โ”€ models/                    # TypeScript type definitions (9 files)
โ”‚   โ”‚   โ”‚   โ””โ”€โ”€ additional.model.ts
โ”‚   โ”‚   โ”œโ”€โ”€ routes/                    # API route definitions (9 files)
โ”‚   โ”‚   โ”‚   โ””โ”€โ”€ additional.routes.ts
โ”‚   โ”‚   โ””โ”€โ”€ middleware/                # Auth, validation, error handling
โ”‚   โ”œโ”€โ”€ prisma/
โ”‚   โ”‚   โ””โ”€โ”€ schema.prisma              # Database schema (18 tables)
โ”‚   โ”œโ”€โ”€ package.json
โ”‚   โ””โ”€โ”€ tsconfig.json
โ”œโ”€โ”€ docs/                       # Documentation files
โ”‚   โ”œโ”€โ”€ SRS_GitHub_Dashboard.md
โ”‚   โ”œโ”€โ”€ QUICK_START.md
โ”‚   โ”œโ”€โ”€ ROADMAP.md
โ”‚   โ””โ”€โ”€ SETUP_GUIDE.md
โ””โ”€โ”€ README.md                   # This file

๐Ÿš€ Getting Started

Prerequisites

  • Node.js 18+ and npm
  • PostgreSQL 14+
  • GitHub Account (for OAuth setup)
  • Git for version control

Quick Setup

  1. Clone the repository

    git clone <repository-url>
    cd DevFlow
  2. Install dependencies

    cd backend
    npm install
  3. Configure environment

    cp .env.example .env
    # Edit .env with your credentials
  4. Setup database

    # Create PostgreSQL database
    createdb -U postgres devflow_db
    
    # Run migrations
    npm run prisma:migrate
  5. Start development server

    npm run dev
  6. Access the application

๐Ÿ“– For detailed setup instructions, see QUICK_START.md


๐Ÿšข Deployment

โœ… Backend โ€” Live on AWS EC2

Production URL: http://16.16.218.19:3001

Resource Details
Server AWS EC2 t3.micro (eu-north-1)
Database AWS RDS PostgreSQL 17 (eu-north-1)
Container Docker via GHCR (ghcr.io/shalin-shah-2002/devflow-backend:latest)
Swagger UI http://16.16.218.19:3001/api-docs
API Spec http://16.16.218.19:3001/api-docs.json

CI/CD Pipeline (GitHub Actions)

Every push to main that touches backend/ triggers a 3-job pipeline:

Job 1: api-tests  (~2 min)
โ”œโ”€โ”€ Spins up a real PostgreSQL container
โ”œโ”€โ”€ Runs Prisma migrations
โ”œโ”€โ”€ Builds and starts the backend
โ”œโ”€โ”€ Seeds test data
โ””โ”€โ”€ Hits all 66 Swagger endpoints โ€” must pass before proceeding

Job 2: build-and-push-image  (~3 min)
โ”œโ”€โ”€ Builds multi-stage Docker image (node:20-slim)
โ”‚   โ”œโ”€โ”€ Stage 1: compile TypeScript, generate Prisma client, pre-build swagger.json
โ”‚   โ””โ”€โ”€ Stage 2: production-only deps, ~200MB lean image
โ””โ”€โ”€ Pushes to GHCR with :latest and :sha tags

Job 3: deploy-ec2  (~1 min)
โ”œโ”€โ”€ SCP docker-compose.yml to EC2
โ”œโ”€โ”€ SSH: write .env from GitHub secret
โ”œโ”€โ”€ docker compose pull โ†’ docker compose up -d
โ””โ”€โ”€ Container runs: prisma migrate deploy && node dist/index.js

Required GitHub Secrets

Secret Value
EC2_HOST 16.16.218.19
EC2_USER ec2-user
EC2_SSH_KEY EC2 private key (PEM format)
BACKEND_ENV_FILE Full .env contents (DB URL, JWT secret, GitHub OAuth, etc.)

Re-deploy manually

Go to GitHub โ†’ Actions โ†’ Backend CI/CD โ†’ Run workflow to trigger without a push.


๐Ÿ”œ Frontend โ€” Cloudflare Pages (coming soon)

Frontend (React + Vite) will be deployed to Cloudflare Pages. Once live, update the FRONTEND_URL in the BACKEND_ENV_FILE GitHub secret and update the GitHub OAuth app callback URL.


๐Ÿงช Testing the API

Option 1: Swagger UI (Recommended)

  1. Start the server: npm run dev
  2. Open http://localhost:3001/api-docs in your browser
  3. Click "Authorize" and enter your JWT token
  4. Try out any endpoint with the "Try it out" button

Option 2: Postman

  1. Import the collection: backend/Docs/Postman_Collection.json
  2. Set up environment variables (base_url, access_token)
  3. Test all 72 endpoints with pre-configured requests

Option 3: cURL

# Health check
curl http://localhost:3001/api/health

# Get current user (requires auth)
curl -H "Authorization: Bearer YOUR_JWT_TOKEN" \
  http://localhost:3001/api/auth/me

# List issues
curl -H "Authorization: Bearer YOUR_JWT_TOKEN" \
  http://localhost:3001/api/issues?state=open&page=1&limit=20

๐Ÿ”„ API Development Status

Track the implementation progress of all API endpoints across 10 categories.

API Categories Checklist

๐Ÿ” 1. Authentication APIs (5 endpoints)

  • POST /api/auth/github - Initiate GitHub OAuth
  • GET /api/auth/github/callback - OAuth callback handler
  • GET /api/auth/me - Get current user profile
  • POST /api/auth/refresh - Refresh access token
  • POST /api/auth/logout - Logout user

๐Ÿ“ฆ 2. Repository APIs (7 endpoints)

  • GET /api/repositories - List all repositories
  • POST /api/repositories - Add repository
  • GET /api/repositories/:id - Get repository details
  • PATCH /api/repositories/:id - Update repository
  • DELETE /api/repositories/:id - Remove repository
  • POST /api/repositories/:id/sync - Sync with GitHub
  • POST /api/repositories/:id/webhook - Setup GitHub webhook

๐ŸŽฏ 3. Issue APIs (12 endpoints)

  • GET /api/issues - List all issues (with filters)
  • GET /api/issues/:id - Get issue details
  • POST /api/issues - Create new issue
  • PATCH /api/issues/:id - Update issue
  • DELETE /api/issues/:id - Close issue
  • POST /api/issues/bulk - Bulk operations
  • POST /api/issues/:id/assign - Assign/unassign users
  • POST /api/issues/:id/labels - Add/remove labels
  • GET /api/issues/:id/comments - Get issue comments
  • POST /api/issues/:id/comments - Add comment
  • PATCH /api/issues/:id/comments/:commentId - Edit comment
  • DELETE /api/issues/:id/comments/:commentId - Delete comment

๐Ÿท๏ธ 4. Label APIs (6 endpoints)

  • GET /api/labels - List all labels
  • POST /api/labels - Create label
  • GET /api/labels/:id - Get label details
  • PUT /api/labels/:id - Update label
  • DELETE /api/labels/:id - Delete label
  • POST /api/labels/sync/:repoId - Sync labels from GitHub

๐Ÿ’ฌ 5. Comment APIs (6 endpoints) โ€” โœ… Integrated into Issue APIs

  • GET /api/issues/:id/comments - List all comments for an issue
  • POST /api/issues/:id/comments - Add comment (syncs to GitHub)
  • PATCH /api/issues/:id/comments/:commentId - Edit comment (syncs to GitHub)
  • DELETE /api/issues/:id/comments/:commentId - Delete comment (syncs to GitHub)
  • POST /api/issues/:id/assign - Assign/unassign users (syncs to GitHub)
  • POST /api/issues/:id/labels - Add/remove labels (syncs to GitHub)

๐Ÿ“‚ 6. Category APIs (6 endpoints)

  • GET /api/categories - List all categories (per user)
  • POST /api/categories - Create category
  • PATCH /api/categories/:id - Update category name/color
  • DELETE /api/categories/:id - Delete category
  • POST /api/issues/:id/categories - Assign categories to issue
  • DELETE /api/issues/:id/categories/:categoryId - Remove category from issue

๐Ÿ” 7. Filter & Views APIs (5 endpoints)

  • GET /api/views - List all saved views/filters
  • POST /api/views - Create custom view/filter
  • PATCH /api/views/:id - Update view/filter
  • DELETE /api/views/:id - Delete view/filter
  • POST /api/views/:id/apply - Apply view (get filtered issues)

๐Ÿ“Š 8. Analytics APIs (6 endpoints)

  • GET /api/analytics/dashboard - Dashboard overview (totals, priority breakdown, close rate)
  • GET /api/analytics/issues-by-status - Issues grouped by state & custom status
  • GET /api/analytics/issues-by-repo - Issues grouped by repository
  • GET /api/analytics/issues-over-time - Daily timeline of created vs closed (?period=7d|30d|90d|1y)
  • GET /api/analytics/assignee-workload - Open/closed counts per assignee
  • GET /api/analytics/completion-rate - Completion rate overall and per repository

๐Ÿ”” 9. Notification APIs (7 endpoints)

  • GET /api/notifications - List notifications (with filters: type, isRead, pagination)
  • GET /api/notifications/unread-count - Get unread notification count
  • GET /api/notifications/:id - Get notification details
  • PATCH /api/notifications/:id/read - Mark as read
  • PATCH /api/notifications/read-all - Mark all notifications as read
  • DELETE /api/notifications/:id - Delete notification
  • DELETE /api/notifications/read - Delete all read notifications (bulk cleanup)

๐ŸŽจ 10. Additional Features (12 endpoints)

  • GET /api/milestones - List milestones
  • POST /api/milestones - Create milestone
  • GET /api/activity-log - User activity log
  • POST /api/webhooks - Setup GitHub webhooks
  • GET /api/settings - Get user settings
  • PUT /api/settings - Update user settings
  • POST /api/export - Export data (CSV/JSON)
  • GET /api/search - Global search
  • POST /api/bulk-actions - Bulk operations
  • GET /api/teams - List teams
  • POST /api/teams - Create team
  • GET /api/health - API health check

๐Ÿ“ˆ Progress Summary

Category Total Completed Percentage
Authentication 5 5 100% โœ…
Repositories 7 7 100% โœ…
Issues 12 12 100% โœ…
Labels 6 6 100% โœ…
Comments 6 6 100% โœ…
Categories 6 6 100% โœ…
Filters & Views 5 5 100% โœ…
Analytics 6 6 100% โœ…
Notifications 7 7 100% โœ…
Additional 12 12 100% โœ…
TOTAL 72 72 100%

๐Ÿ“š Documentation


๐Ÿ—๏ธ Development Roadmap

โœ… Phase 0: Setup (COMPLETED)

  • Project structure
  • Dependencies installed
  • Database schema designed
  • TypeScript configuration
  • Basic Express server

โœ… Phase 1: Core Backend (COMPLETED)

  • Authentication system (GitHub OAuth + JWT)
  • Repository management (7 endpoints)
  • Issue CRUD operations (12 endpoints)
  • Comment management (integrated with issues)
  • GitHub API integration
  • Validation & error handling middleware
  • Swagger/OpenAPI documentation

โœ… Phase 2: Advanced Features (COMPLETED)

  • Comments & discussions (GitHub-synced)
  • Labels management (GitHub-synced)
  • Custom categories & issue tagging
  • Filters & saved views (5 endpoints)
  • Analytics dashboard (6 endpoints)
  • Notifications system (7 endpoints)
  • Milestones management (2 endpoints)
  • User settings & profile (2 endpoints)
  • Activity log (1 endpoint)
  • Global search (1 endpoint)
  • Data export โ€” CSV & JSON (1 endpoint)
  • Bulk actions (1 endpoint)
  • Teams management (2 endpoints)
  • Webhook registration (1 endpoint)
  • Health check with DB ping (1 endpoint)

๐Ÿšง Phase 3: Frontend Development (IN PROGRESS)

  • React web application (in progress)
  • Flutter mobile app
  • UI/UX implementation
  • State management

โœ… Phase 3: Backend Deployment (COMPLETED)

  • Dockerized backend with multi-stage build
  • AWS EC2 instance (t3.micro, eu-north-1)
  • AWS RDS PostgreSQL 17
  • GitHub Container Registry (GHCR) for Docker images
  • GitHub Actions CI/CD pipeline (test โ†’ build โ†’ deploy)
  • Automated API smoke tests (66 endpoints) on every push
  • Pre-generated Swagger spec (served from container)
  • Production Swagger UI live at http://16.16.218.19:3001/api-docs

๐Ÿšง Phase 4: Frontend Deployment (IN PROGRESS)

  • React + Vite frontend build
  • Deploy to Cloudflare Pages
  • Configure production API URL
  • Update GitHub OAuth callback URL
  • CI/CD for frontend (auto-deploy on push)

๐ŸŽฏ Phase 5: Production Polish (PLANNED)

  • Custom domain + SSL (HTTPS)
  • Performance optimization
  • Unit & integration tests
  • Security hardening
  • Documentation finalization

๐Ÿค Contributing

We welcome contributions from the community! Whether you're fixing bugs, adding features, or improving documentation, your help is appreciated.

๐Ÿš€ Quick Start for Contributors

  1. Read the Contributing Guide - CONTRIBUTING.md
  2. Check the Code of Conduct - CODE_OF_CONDUCT.md
  3. Look for Good First Issues - Tagged with good first issue label

๐Ÿ“ How to Contribute

  1. Fork the repository
  2. Clone your fork: git clone https://github.com/YOUR_USERNAME/devflow.git
  3. Create a feature branch: git checkout -b feature/AmazingFeature
  4. Make your changes
  5. Test thoroughly
  6. Commit with clear messages: git commit -m 'feat: add amazing feature'
  7. Push to your fork: git push origin feature/AmazingFeature
  8. Open a Pull Request

๐Ÿ’ฌ Get in Touch

Want to contribute or discuss ideas?

๐Ÿท๏ธ Ways to Contribute

  • Report Bugs - Found something broken? Let us know!
  • Suggest Features - Have ideas? We'd love to hear them!
  • Write Code - Pick up issues labeled help wanted or good first issue
  • Improve Docs - Help make our documentation better
  • Review PRs - Help review and test pull requests
  • Spread the Word - Star โญ the repo and share with others

โœ… Development Guidelines

  • Follow TypeScript best practices
  • Write clean, documented code
  • Add tests for new features
  • Update documentation as needed
  • Follow our commit message conventions
  • Ensure all tests pass before submitting PR

For detailed guidelines, see CONTRIBUTING.md


๐Ÿ“ License

This project is licensed under the ISC License.


๐Ÿ‘จโ€๐Ÿ’ป Author

DevFlow Team


๐Ÿ™ Acknowledgments

  • GitHub API for providing robust integration capabilities
  • Prisma for excellent ORM support
  • The open-source community for amazing tools and libraries

๐Ÿ“ž Support

For questions, issues, or suggestions:


โญ Star this project if you find it helpful!

Made with โค๏ธ for developers, by developers

About

No description, website, or topics provided.

Resources

Code of conduct

Contributing

Stars

1 star

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages