{"id":32772796,"url":"https://github.com/asepindrak/commitflow","last_synced_at":"2026-03-05T00:09:13.106Z","repository":{"id":322202069,"uuid":"1088540805","full_name":"asepindrak/commitflow","owner":"asepindrak","description":"🚀 AI-powered GitHub Insight \u0026 Project Management tool — track commits, manage tasks, and visualize team productivity effortlessly.","archived":false,"fork":false,"pushed_at":"2025-11-03T06:54:10.000Z","size":531,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":0,"default_branch":"main","last_synced_at":"2025-11-03T07:16:47.487Z","etag":null,"topics":["ai","docker","github-insights","nestjs","nodejs","open-source","prisma","project-management","react","typescript"],"latest_commit_sha":null,"homepage":"","language":"TypeScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/asepindrak.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":"CONTRIBUTING.md","funding":null,"license":"LICENSE","code_of_conduct":"CODE_OF_CONDUCT.md","threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2025-11-03T05:32:09.000Z","updated_at":"2025-11-03T06:49:25.000Z","dependencies_parsed_at":null,"dependency_job_id":null,"html_url":"https://github.com/asepindrak/commitflow","commit_stats":null,"previous_names":["asepindrak/commitflow"],"tags_count":1,"template":false,"template_full_name":null,"purl":"pkg:github/asepindrak/commitflow","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/asepindrak%2Fcommitflow","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/asepindrak%2Fcommitflow/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/asepindrak%2Fcommitflow/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/asepindrak%2Fcommitflow/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/asepindrak","download_url":"https://codeload.github.com/asepindrak/commitflow/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/asepindrak%2Fcommitflow/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":282615963,"owners_count":26698634,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","status":"online","status_checked_at":"2025-11-04T02:00:05.887Z","response_time":62,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["ai","docker","github-insights","nestjs","nodejs","open-source","prisma","project-management","react","typescript"],"created_at":"2025-11-04T10:00:40.221Z","updated_at":"2026-01-06T01:12:00.347Z","avatar_url":"https://github.com/asepindrak.png","language":"TypeScript","readme":"# 🧠 CommitFlow - Smart Project Insights\n\n[![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](./LICENSE)\n![Docker](https://img.shields.io/badge/Docker-ready-blue)\n![OpenAI](https://img.shields.io/badge/AI-OpenAI-green)\n![TypeScript](https://img.shields.io/badge/TypeScript-4.0%2B-blue)\n![Node.js](https://img.shields.io/badge/Node.js-22.x-brightgreen)\n![Contributions Welcome](https://img.shields.io/badge/contributions-welcome-orange)\n\n**CommitFlow** is an **AI-powered project management and analytics platform** designed for modern development teams.  \nIt connects with your **GitHub repositories** to automatically analyze commits, visualize contributor activity, and provide **smart project insights** — while also helping teams manage tasks via an integrated **Kanban board**.\n\nWith CommitFlow, you can **plan, track, and analyze your projects** — all in one place.\n\n---\n\n## ![CommitFlow Preview](./images/commitflow.jpg)\n\n| Chat 1                             | Chat 2                             |\n| ---------------------------------- | ---------------------------------- |\n| ![](./images/commitflow-chat1.jpg) | ![](./images/commitflow-chat2.jpg) |\n\n---\n\n## 📁 Folder Structure\n\n```\n.\n├── backend/               # Backend API (NestJS)\n├── frontend/              # Frontend web app (React + Vite)\n├── scripts/               # Helper shell scripts\n├── .env.sample            # Environment variable example\n├── docker-compose.dev.yml # Docker setup for development (with hot reload)\n├── docker-compose.yml     # Docker setup for production\n└── README.md              # Project documentation\n```\n\n---\n\n## ✨ Features\n\n### 🤖 AI-Powered Insights\n\n- 💡 **AI Recommendations** – Get automatic suggestions for prioritization and sprint planning.\n- 🧠 **Smart Summaries** – Let AI summarize repository activity and project status.\n- 🗣️ **Insight Chatbot** – Ask questions like “which tasks are in progress??” or “who contributed the most to the commitflow repo?”\n\n---\n\n### 🧭 Project Management\n\nA beautiful, AI-assisted workspace for managing your projects and tasks:\n\n- 🗂 **Kanban Board** – Organize tasks visually using drag-and-drop.  \n  Each task card shows **priority color accents**, **assignee avatars**, and **due dates**.\n- 📋 **List View** – See all tasks in a clean table layout; click any row to open task details.\n- 📆 **Timeline View** – A Gantt-style horizontal timeline to visualize progress and overlaps between tasks.\n- 💬 **Task Details Modal** –\n  - **Rich text editor** (React Quill) for descriptions\n  - **File attachments** (via AWS S3 integration)\n  - **Inline comments** with author, timestamp, and preview links\n- 🎨 **Smart Selectors** –\n  - Assignee and Priority fields powered by **React Select**, dynamically colored per user or priority level\n- 🗃️ **Workspace Management** –  \n  Add workspace.\n- 🧱 **Project Management Sidebar** –\n  - Create or delete projects easily\n  - Integrated **SweetAlert2** confirmations for safe deletions\n- 🧍 **Team Management** –  \n  Add or remove team members using modern UI components, with color-coded avatars automatically generated.\n  - **Toast notifications** (`react-toastify`) for success actions (e.g., project or member added)\n- 🌙 **Dark/Light Mode Aware** –  \n  Smooth color transitions and well-tuned contrast for both themes.\n- Due date labels: **Due Today** \u0026 **Overdue**\n- Filter **Assigned to Me**\n\n---\n\n### 💬 Team Coordination\n\n- **Follow up tasks via WhatsApp**\n  - Generates dynamic `wa.me` link (manual click — no API yet)\n  - Pre-filled message with task title \u0026 status\n- Real-time collaboration coming soon\n- **Follow up tasks via WhatsApp**\n- **Automatic email notifications** sent to team members when tasks are updated\n- **Invite team members via email** with secure join links\n\n---\n\n### 🔄 Offline‑First Sync\n\n- Works seamlessly **without internet**\n- Local storage caching (offline‑first approach)\n- Auto‑synchronization when back online\n\n---\n\n### 📊 Developer Insights\n\n- 📈 **GitHub Analytics** – Fetch organization repositories, commits, and contributor stats.\n- 🔍 **Contribution Breakdown** – Understand who contributes what and when.\n- 📆 **Activity Timeline** – Visualize commit frequency and collaboration trends.\n\n---\n\n### 🎨 Interactive UI\n\n- Smooth animations\n- Responsive layout\n- Clean, minimalist UX with focus on productivity\n\n---\n\n## 🛠️ Tech Stack\n\n### Frontend\n\n- React + Vite\n- TypeScript\n- TailwindCSS\n- Zustand (State Management)\n- LocalStorage / IndexedDB (Offline Sync)\n- React Query (Data Fetching \u0026 Sync Management)\n- Socket.IO Client (Real-time updates)\n- React Quill (Rich Text Editor)\n- SweetAlert2 (Dialogs)\n- React Toastify (Notifications)\n- Framer Motion / GSAP (Animations \u0026 interactive UI)\n- XLSX (Export Excel)\n\n### Backend\n\n- Nest.js\n- TypeScript\n- Prisma ORM\n- PostgreSQL\n- Socket.IO Gateway (Real-time events)\n- Nodemailer (Email Delivery via SMTP)\n- Multer (File upload middleware)\n- Class Validator / Class Transformer\n- Swagger (API documentation)\n- Google TTS API\n- AWS SDK for S3 Storage\n- JWT Authentication (Access \u0026 Refresh Tokens)\n- OpenAI API Integration (AI features / content generation)\n\n---\n\n## 🐳 Infrastructure \u0026 Security\n\n- 🗄️ **PostgreSQL Database** – Structured project and task data.\n- ☁️ **AWS S3 Storage** – Media \u0026 attachments.\n- ✉️ **SMTP Email (Nodemailer)** – Invitations \u0026 notifications.\n- 🔐 **Environment Variables (.env)** – Secure credential management.\n- 📡 **WebSocket Gateway** – Realtime updates via Socket.IO.\n- 🔑 **JWT Authentication** – Secure login, workspace access, and API protection.\n- 🤖 **OpenAI Integration** – AI-driven generation (text, automation, suggestions).\n- 📁 **LocalStorage + IndexedDB** – Offline-first data with auto-sync.\n- 📘 **Swagger UI** – API documentation.\n\n---\n\n## ⚙️ Requirements\n\n- [Docker](https://www.docker.com/get-started) and Docker Compose\n- A **GitHub Personal Access Token** (with `repo` scope)\n- An **OpenAI API Key** (for AI Insights \u0026 Automation)\n- **AWS S3 Credentials** (for document and image storage)\n\n---\n\n## 🚀 Setup with Docker\n\n### 1. Copy the environment file\n\n```bash\ncp .env.sample .env\n```\n\nThen fill in your configuration values:\n\n```env\n# Environment\nNODE_ENV=\"development\"\n\n# Logger\nDISCORD_WEBHOOK_URL=\nLOG_LEVEL=info\n\n# PostgreSQL\nPOSTGRES_USER=postgres\nPOSTGRES_PASSWORD=password\nPOSTGRES_DB=commitflow\nDB_PORT=5432\n\n# pgAdmin\nPGADMIN_EMAIL=admin@example.com\nPGADMIN_PASSWORD=admin123\nADMIN_PORT=8080\n\n# Prisma\nDATABASE_URL=postgresql://postgres:password@db:5432/commitflow\n\n# Backend\nBE_PORT=8000\nOPENAI_API_KEY=\nBASE_URL=http://localhost:8000\nAPI_KEY=\"\"\nJWT_SECRET=\"\"\n\n# GitHub Integration\nGITHUB_OWNER=\nGITHUB_TOKEN=\n\n# Frontend\nFE_PORT=3000\nVITE_API_URL=\"http://localhost:8000\"\n\n# S3 Storage\nS3_BUCKET_NAME=\nS3_REGION=\nS3_ACCESS_KEY=\nS3_SECRET_KEY=\n# S3 COMPATIBLE STORAGE\nS3_ENDPOINT_URL=\n\n# Mail Server\nSMTP_HOST=host.docker.internal\nSMTP_PORT=587\nSMTP_USER=task@commitflow.space\nSMTP_PASS=\nSMTP_SECURE=false    # true for SMTPS(465), false for STARTTLS (587)\nFROM_NAME=CommitFlow\nFROM_ADDRESS=task@commitflow.space\n```\n\n\u003e **Note:** Use `db` as the PostgreSQL host inside Docker (not `localhost`).\n\n---\n\n### 2. Build and start all containers\n\nFor production:\n\n```bash\n./scripts/build.sh\n```\n\nFor development (with hot reload and live updates):\n\n```bash\n./scripts/build.dev.sh\n```\n\n---\n\n### 3. Verify running containers\n\n```bash\ndocker ps\n```\n\n| Service  | URL                   |\n| -------- | --------------------- |\n| Frontend | http://localhost:3000 |\n| Backend  | http://localhost:8000 |\n| pgAdmin  | http://localhost:8080 |\n\n---\n\n### 4. Access pgAdmin\n\n- Email: `admin@example.com`\n- Password: `admin123`\n\nThen add a new PostgreSQL server:\n\n| Field    | Value      |\n| -------- | ---------- |\n| Host     | db         |\n| Database | commitflow |\n| User     | postgres   |\n| Password | password   |\n\n---\n\n## 🧩 Prisma\n\nIf this is your first time running CommitFlow, run a Prisma database sync:\n\n```bash\ndocker exec -it commitflow-api npx prisma db push\n```\n\n\u003e The `scripts/build.sh` script automatically handles Prisma setup on first run.\n\n---\n\n## 🧠 Running the Application\n\n**Development (hot reload):**\n\n```bash\nNODE_ENV=\"development\"\n```\n\n**Production:**\n\n```bash\nNODE_ENV=\"production\"\n```\n\nYou can switch between development and production using different Docker Compose files.\n\n---\n\n## Swagger Openapi\n\n```\nhttp://localhost:8000/docs\n```\n\n---\n\n## 🤝 Contributing\n\nCommitFlow is open source and welcomes contributions!  \nIf you’d like to improve the Kanban UI, enhance the AI insights, or build integrations for new project tools — feel free to fork and open a pull request.\n\n---\n\n## 🧾 License\n\nThis project is licensed under the **MIT License**.  \nFeel free to use, modify, and distribute it for both personal and commercial projects.\n\n---\n\n### 💬 Credits\n\nCreated with ❤️ by developers who love open source, AI, and productivity.\n","funding_links":[],"categories":[],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fasepindrak%2Fcommitflow","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fasepindrak%2Fcommitflow","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fasepindrak%2Fcommitflow/lists"}