Kanflow is a modern, intuitive Kanban-style task management application built with the MERN stack, enhanced by a full DevOps CI/CD pipeline using Jenkins, Docker, Kubernetes, Terraform, and Ansible. It offers drag-and-drop task management, filtering, and real-time collaboration, making it ideal for teams who want both productivity and scalable deployment.
- Drag & Drop Interface - Seamlessly move tasks between columns (To Do, In Progress, Done)
- Task Management - Create, edit, delete, and organize tasks with ease
- Priority System - Assign High, Medium, or Low priority levels
- Due Date Tracking - Set and monitor task deadlines
- Task Assignment - Assign tasks to team members
- Smart Filtering - Filter tasks by priority, assignee, and due date
- Persistent Storage - Persistent storage via MongoDB with real-time backend synchronization
- Responsive Design - Works flawlessly on desktop, tablet, and mobile
- Toast Notifications - Real-time feedback for user actions
- Modern UI/UX - Clean, professional interface with smooth animations
kanflow/
โโโ client/ # Frontend React application
โ โโโ public/ # Static assets
โ โโโ src/
โ โ โโโ components/ # Reusable UI components
โ โ โ โโโ Board.jsx # Main kanban board
โ โ โ โโโ Column.jsx # Task columns (To Do, In Progress, Done)
โ โ โ โโโ TaskCard.jsx # Individual task cards
โ โ โ โโโ AddTaskModal.jsx # Task creation modal
โ โ โ โโโ EditTaskModal.jsx # Task editing modal
โ โ โ โโโ Footer.jsx # Application footer
โ โ โโโ services/ # API integration services
โ โ โ โโโ api.js # Base API configuration
โ โ โ โโโ taskService.js # Task CRUD operations
โ โ โ โโโ boardService.js # Board management
โ โ โโโ styles/ # Component-specific CSS
โ โ โโโ App.jsx # Main application component
โ โโโ package.json # Frontend dependencies
โโโ server/ # Backend Node.js application
โ โโโ models/ # MongoDB data models
โ โโโ routes/ # API route handlers
โ โโโ middleware/ # Custom middleware
โ โโโ server.js # Express server configuration
โโโ ansible/ # Ansible configuration for provisioning
โ โโโ inventory.ini # Inventory of servers
โ โโโ playbook.yml # Main Ansible playbook
โ โโโ roles/ # Ansible roles
โ โโโ common/ # Common setup tasks
โ โ โโโ tasks/
โ โ โ โโโ main.yml # Common tasks
โ โ โโโ vars/
โ โ โโโ main.yml # Common variables
โ โโโ docker/ # Docker installation & setup
โ โ โโโ tasks/
โ โ โ โโโ main.yml # Docker tasks
โ โ โโโ vars/
โ โ โโโ main.yml # Docker variables
โ โโโ helm/ # Helm installation & charts
โ โ โโโ tasks/
โ โ โ โโโ main.yml # Helm tasks
โ โ โโโ vars/
โ โ โโโ main.yml # Helm variables
โ โโโ jenkins/ # Jenkins server setup
โ โ โโโ tasks/
โ โ โ โโโ main.yml # Jenkins tasks
โ โ โโโ vars/
โ โ โโโ main.yml # Jenkins variables
โ โโโ kubectl/ # kubectl installation & setup
โ โโโ tasks/
โ โ โโโ main.yml # Kubectl tasks
โ โโโ vars/
โ โโโ main.yml # Kubectl variables
โโโ jenkins/ # Jenkins automation
โ โโโ Jenkinsfile # CI/CD pipeline definition
k8s/
โโโ base/ # Base k8s manifests for different components
โ โโโ backend/ # Backend service k8s configs
โ โ โโโ configmap.yaml
โ โ โโโ deployment.yaml
โ โ โโโ kanflow-secrets.yaml
โ โ โโโ service.yaml
โ โ
โ โโโ frontend/ # Frontend service k8s configs
โ โ โโโ configmap.yaml
โ โ โโโ deployment.yaml
โ โ โโโ service.yaml
โ โ
โ โโโ ingress/ # Ingress configs
โ โ โโโ ingress.yaml
โ โ
โ โโโ mongo/ # MongoDB configs
โ โ โโโ mongodb-deployment.yaml
โ โ โโโ mongodb-service.yaml
โ โ
โ โโโ namespace.yaml # Namespace definition
โโโ secrets.yaml # Additional secrets file (possibly Kubernetes Secret manifest)
โโโ terraform/ # Terraform IaC scripts
โ โโโ main.tf # Main Terraform configuration
โ โโโ variables.tf # Variable definitions
โ โโโ outputs.tf # Output values
โโโ scripts/ # Utility scripts
โ โโโ check.ps1 # Build script
โ โโโ diagnose.ps1 # Deployment helper
โ โโโ start.ps1
โโโ .gitignore # Files and directories to ignore in Git
โโโ README.md # Main project README
โโโ SETUP_INSTRUCTIONS.md # Step-by-step setup guide
โโโ docker-compose.yml # Docker Compose configuration
- Node.js (v16 or higher)
- npm or yarn
- MongoDB (local or cloud instance)
-
Clone the repository
git clone https://github.com/Aamir017/kanflow.git cd kanflow -
Install frontend dependencies
cd client npm install -
Install backend dependencies
cd ../server npm install -
Environment Configuration
Create a
.envfile in the server directory:PORT=5000 MONGODB_URI=mongodb://localhost:27017/kanflow JWT_SECRET=your_jwt_secret_key NODE_ENV=development
-
Start the development servers
Backend (Terminal 1):
cd server npm run devFrontend (Terminal 2):
cd client npm run dev -
Access the application
- Frontend:
http://localhost:5173 - Backend API:
http://localhost:5000
- Frontend:
- Click the "+ Add Task" button
- Fill in task details (title, description, priority, assignee, due date)
- Click "Create Task" to add it to the "To Do" column
- Edit: Click the edit icon on any task card
- Delete: Click the delete icon and confirm
- Move: Drag and drop tasks between columns
- Filter: Use the filter button to narrow down tasks
- By Priority: Show only High, Medium, or Low priority tasks
- By Assignee: Filter tasks assigned to specific team members
- By Due Date: View tasks due within specific timeframes
Customize the application's appearance by modifying CSS files in src/styles/. The project uses CSS custom properties for easy theming.
- Create new components in
src/components/ - Add corresponding CSS files
- Update the main
Board.jsxorApp.jsxas needed - Implement backend endpoints if data persistence is required
cd client
npm run build
# Deploy the 'dist' foldercd server
# Configure environment variables on your hosting platform
# Deploy the server directoryKanflow is equipped with a production-ready DevOps pipeline to automate the full application lifecycle โ from code to deployment.
| ๐ ๏ธ Tool | ๐ Role |
|---|---|
| ๐งช Jenkins | Continuous Integration / Deployment (CI/CD) |
| ๐งฐ Ansible | Configuration management and provisioning |
| ๐ณ Docker | Containerization of frontend/backend apps |
| โธ๏ธ Kubernetes | Container orchestration and scaling |
| ๐ Terraform | Infrastructure provisioning (Infrastructure as Code - IaC) |
-
Code Push (GitHub)
- Triggers Jenkins CI pipeline via webhook.
-
Jenkins Pipeline
-
Installs dependencies
-
Runs linting & tests
-
Builds Docker images for frontend/backend
-
Pushes images to Docker Hub
-
-
Provisioning
-
Terraform spins up infrastructure on cloud (e.g., AWS)
-
Ansible configures servers with Docker, Kubernetes, Helm, and Jenkins
-
-
Deployment
- Ingress and Secrets configured for service exposure
- Fork the repository
- Create a feature branch (
git checkout -b feature/amazing-feature) - Commit your changes (
git commit -m 'Add amazing feature') - Push to the branch (
git push origin feature/amazing-feature) - Open a Pull Request
Sk Aamir
๐ง aamir.sk.dev@gmail.com
๐ LinkedIn
- React Beautiful DnD for the excellent drag-and-drop library
- The React and Node.js communities for comprehensive documentation
- Contributors and testers who helped improve Kanflow
โญ Star this repository if you found it helpful!
๐ Found a bug? Report it here
๐ก Have a feature request? Let us know!