DevFlow is a full-stack, enterprise-grade project and issue management platform designed for agile engineering teams. It combines the responsiveness of a modern React SPA with a serverless Node.js REST API, featuring multi-tenant organization workspaces, granular Role-Based Access Control (RBAC), interactive Kanban boards, and real-time Slack notifications.
- Multi-Organization Architecture: Users can create, switch between, and manage multiple independent organization workspaces.
- Granular Role-Based Permissions:
OWNER: Full administrative power, workspace settings, member management, project deletion.ADMIN: Project management, member invitation, role changes, issue deletion.MEMBER: Create and update issues, move cards on Kanban board, post comments.VIEWER: Read-only access to boards, backlogs, and audit logs.
- Visual Kanban Board: Drag-and-drop / click-to-move issue progression (
TODO,IN_PROGRESS,IN_REVIEW,DONE). - Priority & Categorization: Tags for
URGENT,HIGH,MEDIUM,LOWpriority levels and issue types (BUG,FEATURE,TASK,IMPROVEMENT). - Issue Details & Discussions: Markdown-enabled descriptions, threaded comment lists, assignee selectors, and due-date tracking.
-
Incoming Webhooks: Instant Slack channel notifications with rich Block Kit formatting when:
- New tickets are created.
- Ticket statuses change (e.g.
IN_PROGRESS$\rightarrow$ DONE). - Team members post comments on issues.
-
Interactive Slash Commands: Run
/devflow create <title>and/devflow liststraight from Slack. - One-Click Testing: Test Slack webhook configuration directly from the Workspace Integrations settings page.
- Dual Authentication: JWT-based email/password authentication + Google OAuth 2.0 Single Sign-On (SSO).
- Password Protection: Salted password hashing with
bcryptjs. - API Security:
helmetheaders, strictly configured CORS policies, and token validation interceptors.
flowchart TD
subgraph Client ["Client (React + Vite SPA)"]
UI["React 18 + Tailwind UI"]
Router["React Router v6"]
Axios["Axios Interceptors + JWT"]
end
subgraph Hosting ["Cloud Infrastructure"]
Vercel["Vercel (Frontend CDN)"]
Netlify["Netlify Functions (AWS Lambda)"]
end
subgraph Backend ["Backend API (Express + TypeScript)"]
App["Express 4 Application"]
Serverless["serverless-http Adapter"]
AuthMid["JWT & RBAC Middleware"]
Controllers["Controllers & Services"]
Slack["Slack Service (Block Kit)"]
end
subgraph Database ["Data & Third-Party"]
MongoAtlas[("MongoDB Atlas Database")]
SlackAPI["Slack Incoming Webhooks"]
end
UI --> Router
Router --> Axios
Axios -->|HTTPS REST| Netlify
Netlify --> Serverless
Serverless --> App
App --> AuthMid
AuthMid --> Controllers
Controllers --> MongoAtlas
Controllers --> Slack
Slack -->|Webhooks| SlackAPI
- Framework: React 18 + Vite + TypeScript
- Styling: Tailwind CSS
- Routing: React Router v6
- Icons: Lucide React
- Auth: @react-oauth/google
- HTTP Client: Axios
- Runtime: Node.js with TypeScript
- Framework: Express.js
- Database ORM: Mongoose + MongoDB Atlas
- Serverless Adapter: serverless-http
- Integrations: Slack Incoming Webhooks
- Security: Helmet, CORS, jsonwebtoken, bcryptjs
git clone https://github.com/bhaskar2006-hub/DevFlow.git
cd DevFlowcd server
npm installCreate a .env file in server/:
PORT=5000
NODE_ENV=development
MONGODB_URI=mongodb://localhost:27017/devflow
JWT_SECRET=your_super_secret_jwt_key_here
CORS_ORIGIN=http://localhost:5173Run database seed script (optional, creates sample team & tickets):
npm run seedStart the backend development server:
npm run devcd ../client
npm installCreate a .env file in client/:
VITE_API_URL=http://localhost:5000/api
VITE_GOOGLE_CLIENT_ID=your_google_oauth_client_id.apps.googleusercontent.comStart the Vite development server:
npm run devOpen http://localhost:5173 in your browser.
If you ran npm run seed, you can test with these pre-configured team accounts (Password: password123):
| Role | Permissions | |
|---|---|---|
| Owner | bhaskar@devflow.io |
Full Workspace Control & Settings |
| Admin | sarah.connor@devflow.io |
Manage Projects & Members |
| Member | david.miller@devflow.io |
Create, Edit & Move Issues |
| Viewer | elena.rostova@devflow.io |
Read-Only Access |
POST /api/auth/registerβ Register a new user accountPOST /api/auth/loginβ Log in with email & passwordPOST /api/auth/googleβ Google OAuth 2.0 Single Sign-OnGET /api/auth/meβ Get current authenticated user profilePATCH /api/auth/meβ Update user profile details
GET /api/organizationsβ List all organizations for current userPOST /api/organizationsβ Create a new workspaceGET /api/organizations/:idβ Get workspace detailsPATCH /api/organizations/:idβ Update workspace settings (including Slack Webhook)POST /api/organizations/:id/test-slackβ Test Slack Webhook notificationGET /api/organizations/:id/membersβ List organization team membersPOST /api/organizations/:id/membersβ Invite a new member by emailPATCH /api/organizations/:id/members/:memberIdβ Change member role (ADMIN,MEMBER,VIEWER)DELETE /api/organizations/:id/members/:memberIdβ Remove member from organization
GET /api/projects/organization/:orgIdβ List all projects in an organizationPOST /api/projectsβ Create a new projectGET /api/projects/:idβ Get project detailsPATCH /api/projects/:idβ Update project metadataDELETE /api/projects/:idβ Archive / delete project
GET /api/issuesβ Query & filter issues (by project, status, priority, assignee, search)POST /api/issuesβ Create a new issue (triggers Slack notification)GET /api/issues/:idβ Get detailed issue view with commentsPATCH /api/issues/:idβ Update issue status, priority, or assigneeDELETE /api/issues/:idβ Delete issue
GET /api/comments/issue/:issueIdβ Get comments for an issuePOST /api/commentsβ Add a new comment (triggers Slack notification)GET /api/activitiesβ Organization audit history timeline
- Connect repository to Netlify.
- Netlify auto-detects
netlify.tomlwith base directoryserver. - Set environment variables on Netlify:
MONGODB_URI:mongodb+srv://...JWT_SECRET:your_random_secretNODE_ENV:productionCORS_ORIGIN:https://devflow123.vercel.app
- Import repository on Vercel.
- Set Root Directory to
client. - Set environment variables:
VITE_API_URL:https://devflow-backend.netlify.app/api
This project is licensed under the MIT License.
