Skip to content

Aamir017/Kanflow

Folders and files

NameName
Last commit message
Last commit date

Latest commit

ย 

History

70 Commits
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 

Repository files navigation

๐Ÿš€ Kanflow - Task Management Board

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.

โœจ Features

๐ŸŽฏ Core Functionality

  • 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

๐Ÿ” Advanced Features

  • 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

๐Ÿ› ๏ธ Tech Stack

Frontend

React Vite DnD Toastify Tailwind

Backend

Node.js Express MongoDB

DevOps & Deployment

Docker Kubernetes Jenkins Ansible Terraform

๐Ÿ“ Project Structure

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


๐Ÿš€ Quick Start

Prerequisites

  • Node.js (v16 or higher)
  • npm or yarn
  • MongoDB (local or cloud instance)

Installation

  1. Clone the repository

    git clone https://github.com/Aamir017/kanflow.git
    cd kanflow
  2. Install frontend dependencies

    cd client
    npm install
  3. Install backend dependencies

    cd ../server
    npm install
  4. Environment Configuration

    Create a .env file in the server directory:

    PORT=5000
    MONGODB_URI=mongodb://localhost:27017/kanflow
    JWT_SECRET=your_jwt_secret_key
    NODE_ENV=development
  5. Start the development servers

    Backend (Terminal 1):

    cd server
    npm run dev

    Frontend (Terminal 2):

    cd client
    npm run dev
  6. Access the application

    • Frontend: http://localhost:5173
    • Backend API: http://localhost:5000

๐ŸŽฎ Usage Guide

Creating Tasks

  1. Click the "+ Add Task" button
  2. Fill in task details (title, description, priority, assignee, due date)
  3. Click "Create Task" to add it to the "To Do" column

Managing Tasks

  • 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

Filtering 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

๐ŸŽจ Customization

Styling

Customize the application's appearance by modifying CSS files in src/styles/. The project uses CSS custom properties for easy theming.

Adding Features

  1. Create new components in src/components/
  2. Add corresponding CSS files
  3. Update the main Board.jsx or App.jsx as needed
  4. Implement backend endpoints if data persistence is required

๐Ÿš€ Deployment

Frontend (Vercel/Netlify)

cd client
npm run build
# Deploy the 'dist' folder

Backend (Heroku/Railway)

cd server
# Configure environment variables on your hosting platform
# Deploy the server directory

๐Ÿ” CI/CD & DevOps Pipeline

Kanflow is equipped with a production-ready DevOps pipeline to automate the full application lifecycle โ€” from code to deployment.

๐Ÿงฉ Pipeline Components

๐Ÿ› ๏ธ 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)

๐Ÿ”„ Pipeline Flow

  1. Code Push (GitHub)

    • Triggers Jenkins CI pipeline via webhook.
  2. Jenkins Pipeline

    • Installs dependencies

    • Runs linting & tests

    • Builds Docker images for frontend/backend

    • Pushes images to Docker Hub

  3. Provisioning

    • Terraform spins up infrastructure on cloud (e.g., AWS)

    • Ansible configures servers with Docker, Kubernetes, Helm, and Jenkins

  4. Deployment

    • Ingress and Secrets configured for service exposure

๐Ÿค Contributing

  1. Fork the repository
  2. Create a feature branch (git checkout -b feature/amazing-feature)
  3. Commit your changes (git commit -m 'Add amazing feature')
  4. Push to the branch (git push origin feature/amazing-feature)
  5. Open a Pull Request

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

Sk Aamir

๐Ÿ“ง aamir.sk.dev@gmail.com
๐Ÿ”— LinkedIn

๐Ÿ™ Acknowledgments

  • 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!

About

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors