Skip to content

mohamim360/Vue-Kanban-Board

Folders and files

NameName
Last commit message
Last commit date

Latest commit

ย 

History

42 Commits
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 

Repository files navigation

Vue Kanban Board - Full Stack Project Management Application

A modern, full-featured Kanban board application built with Vue 3 and a robust backend API, featuring user authentication via Clerk, real-time project management, and collaborative task tracking.

๐Ÿ“ธ Screenshots

Hame Page

Kanban Board Interface

Light Mode

Light Mode - Kanban Board

Dark Mode

Dark Mode - Kanban Board

Mobile View

Mobile Responsive Design

Task Editing

Edit Task Modal

๐Ÿ”— Links

๐ŸŒŸ Features

๐Ÿ” Authentication & User Management

  • Clerk Integration: Enterprise-grade authentication with sign-in/sign-out
  • User Profiles: Display user information with profile images
  • Protected Routes: Secure API endpoints with JWT token validation
  • Multi-user Support: Assign tasks to team members and track ownership

๐Ÿ“ Project Management

  • Multiple Projects: Create, switch between, and manage unlimited projects
  • Project Dropdown: Quick project selection from sidebar
  • Project CRUD: Full create, read, update, delete operations
  • Task Tracking: Automatic task count per project
  • Confirmation Dialogs: Safe deletion with user confirmation

๐ŸŽจ Modern UI/UX

  • Responsive Design: Mobile-first approach with desktop optimization
  • Dark Mode: Toggle between light and dark themes with persistent preference
  • Collapsible Sidebar: Adaptive sidebar for mobile and desktop
  • Professional Navbar: User profile dropdown with settings
  • Smooth Animations: Polished transitions and micro-interactions
  • Toast Notifications: Real-time feedback for all actions

๐Ÿ“‹ Kanban Board Features

  • Drag & Drop: Seamless task movement between columns (To Do, In Progress, Done)
  • Task Management: Add, edit, clone, and delete tasks
  • Priority Levels: High, Medium, Low with visual indicators and color coding
  • Due Dates: Set deadlines with overdue detection and badges
  • User Assignment: Assign tasks with avatar display and tooltips
  • Rich Text Editing: TipTap editor with formatting, links, and images
  • Tags System: Organize tasks with custom, colorful tags
  • Search & Filter: Advanced filtering by user, tag, and text search
  • Sorting Options: Sort by priority, due date, creation date, or title

๐Ÿ” Advanced Filtering

  • Search Bar: Full-text search across task titles and descriptions
  • User Filter: Filter by assigned user or show unassigned tasks
  • Tag Filter: Filter by specific tags
  • Smart Filtering: Combine multiple filters for precise results

๐ŸŽฏ Task Features

  • Clone Tasks: Duplicate tasks with auto-incrementing copy numbers
  • Bulk Operations: Delete all tasks in a column or project
  • Task Details: Rich descriptions with formatting
  • Overdue Indicators: Visual badges for expired tasks
  • User Tooltips: Hover over avatars to see user details
  • Creation Timestamps: Track when tasks were created

๐Ÿ—๏ธ Architecture

Frontend Stack

  • Vue 3: Composition API with reactive state management
  • Vite: Lightning-fast build tool and dev server
  • Tailwind CSS: Utility-first styling with custom components
  • Clerk Vue: Authentication SDK with built-in UI components
  • Axios: HTTP client with interceptors for auth
  • TipTap: Modern rich text editor
  • VueUse: Collection of essential Vue composition utilities
  • Heroicons: Beautiful SVG icon set

Backend Integration

  • RESTful API with JWT authentication
  • PostgreSQL database with Prisma ORM
  • Real-time data synchronization
  • Error handling and validation

๐Ÿš€ Getting Started

Prerequisites

  • Node.js 16 or higher
  • npm or yarn package manager
  • Clerk account (clerk.com)
  • Backend API running (separate repository)

Installation

  1. Clone the repository

    git clone <repository-url>
    cd vue-kanban-board
  2. Install dependencies

    npm install
  3. Set up environment variables

    Create a .env file in the root directory:

    VITE_CLERK_PUBLISHABLE_KEY=your_clerk_publishable_key
    VITE_API_URL=http://localhost:3000/api
  4. Configure Clerk

    • Create a Clerk account at clerk.com
    • Create a new application in your Clerk dashboard
    • Copy your publishable key to the .env file
    • Configure allowed redirect URLs in Clerk settings
  5. Start the development server

    npm run dev
  6. Access the application

    • Open your browser to http://localhost:5173
    • Sign in with your Clerk credentials

๐Ÿณ Docker Deployment

Build Docker Image

docker build -t vue-kanban-board \
  --build-arg VITE_CLERK_PUBLISHABLE_KEY=your_key \
  --build-arg VITE_API_URL=https://api.yourdomain.com \
  .

Run Container

docker run -d -p 80:80 vue-kanban-board

๐Ÿ“ Project Structure

src/
โ”œโ”€โ”€ api/                    # API client and endpoints
โ”‚   โ”œโ”€โ”€ client.js          # Axios instance with auth interceptor
โ”‚   โ”œโ”€โ”€ projects.js        # Project CRUD operations
โ”‚   โ”œโ”€โ”€ tasks.js           # Task CRUD operations
โ”‚   โ””โ”€โ”€ user.js            # User management
โ”‚
โ”œโ”€โ”€ components/            # Vue components
โ”‚   โ”œโ”€โ”€ Layout.vue         # Main layout wrapper
โ”‚   โ”œโ”€โ”€ Sidebar.vue        # Project management sidebar
โ”‚   โ”œโ”€โ”€ Navbar.vue         # User profile navbar
โ”‚   โ”œโ”€โ”€ AuthWrapper.vue    # Authentication wrapper
โ”‚   โ”œโ”€โ”€ AddTaskModal.vue   # Task creation modal
โ”‚   โ”œโ”€โ”€ EditTaskModal.vue  # Task editing modal
โ”‚   โ”œโ”€โ”€ TiptapEditor.vue   # Rich text editor
โ”‚   โ”œโ”€โ”€ TagInput.vue       # Tag input component
โ”‚   โ””โ”€โ”€ ToastNotification.vue # Toast notifications
โ”‚
โ”œโ”€โ”€ composables/           # Reusable composition functions
โ”‚   โ”œโ”€โ”€ useProjects.js     # Project management logic
โ”‚   โ””โ”€โ”€ useClerkAuth.js    # Clerk authentication helper
โ”‚
โ”œโ”€โ”€ utilits/               # Utility functions
โ”‚   โ”œโ”€โ”€ helpers.js         # General helper functions
โ”‚   โ”œโ”€โ”€ dateFormatter.js   # Date formatting utilities
โ”‚   โ””โ”€โ”€ storage.js         # Local storage helpers (legacy)
โ”‚
โ”œโ”€โ”€ App.vue                # Main application component
โ”œโ”€โ”€ main.js                # Application entry point
โ””โ”€โ”€ style.css              # Global styles and Tailwind

๐Ÿ”ง Configuration

Environment Variables

Variable Description Example
VITE_CLERK_PUBLISHABLE_KEY Clerk publishable key pk_test_...
VITE_API_URL Backend API base URL http://localhost:3000/api

Clerk Configuration

  1. Dashboard Settings

    • Enable email/password authentication
    • Configure OAuth providers (optional)
    • Set up redirect URLs
  2. JWT Template (Backend)

    • Create a JWT template in Clerk
    • Include user ID and email in claims
    • Configure token expiration

๐ŸŽจ Customization

Theme Colors

Edit tailwind.config.js to customize the color scheme:

module.exports = {
  theme: {
    extend: {
      colors: {
        primary: {...},
        secondary: {...},
      }
    }
  }
}

๐Ÿ“š API Integration

Authentication Flow

  1. User signs in via Clerk
  2. Clerk returns JWT token
  3. Token stored in Clerk session
  4. API requests include token in Authorization header
  5. Backend validates token and processes request

API Endpoints

Projects

  • GET /projects - Get all user projects
  • GET /projects/:id - Get single project
  • POST /projects - Create project
  • PUT /projects/:id - Update project
  • DELETE /projects/:id - Delete project

Tasks

  • GET /tasks/project/:projectId - Get project tasks
  • POST /tasks - Create task
  • PUT /tasks/:id - Update task
  • PUT /tasks/:id/move - Move task to different status
  • DELETE /tasks/:id - Delete task

Users

  • GET /users - Get all users (for assignment)
  • GET /users/current - Get current user info

๐Ÿงช Testing

# Run unit tests
npm run test

# Run E2E tests
npm run test:e2e

# Run linting
npm run lint

๐Ÿšข Production Build

# Build for production
npm run build

# Preview production build
npm run preview

The build outputs to the dist/ directory and is optimized for performance.

๐Ÿ”ฎ Roadmap

  • Real-time collaboration with WebSockets
  • Task comments and activity log
  • File attachments for tasks
  • Calendar view for due dates
  • Team workspaces and permissions
  • Email notifications
  • Task templates
  • Time tracking
  • Analytics dashboard
  • Export to CSV/PDF

Made using Vue 3, Tailwind CSS, and Clerk

About

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages