Priority Board - Kanban Task Manager#

Project Overview##

Priority Board is a web-based Kanban task management application built as a single HTML file with embedded CSS and JavaScript. It serves as a personal productivity tool designed to organize tasks across different workflow stages using a visual board interface.

Technical Architecture##

Core Technologies###

  • Frontend: Pure HTML5, CSS3, and vanilla JavaScript (ES6+)
  • Styling Framework: Tailwind CSS (loaded via CDN)
  • Icons: Lucide Icons (loaded via CDN)
  • Data Persistence: Browser localStorage
  • PWA Support: Service Worker and Web App Manifest (dynamically generated)

File Structure###

The application is contained in a single index.html file (approximately 400+ lines) with:

  • HTML markup and templates
  • Embedded CSS styles
  • Embedded JavaScript application logic
  • No external dependencies except CDN resources

User Interface Components##

Header Section###

  • Large gradient title "Priority Board" with subtitle
  • Tagline: "Your command center for everything that matters โœจ"

Control Panel###

  • Search input field with magnifying glass icon
  • Category filter dropdown (All Categories, Work, Personal, Goals, Daily)
  • Priority filter dropdown (All Priorities, High, Medium, Low)
  • Toggle button for archived tasks visibility
  • PWA install button (conditionally visible)

Kanban Board Layout###

Five predefined columns with distinct visual themes:

  1. Backlog (๐Ÿ“‹) - Slate color scheme
  2. Today (๐ŸŽฏ) - Blue color scheme
  3. In Progress (โšก) - Amber color scheme
  4. Waiting (โณ) - Purple color scheme
  5. Done (โœ…) - Green color scheme

Task Cards###

Two display modes per task:

  • View Mode: Shows title, description, category badge, priority indicator, due date
  • Edit Mode: Form with inputs for all task properties

Statistics Footer###

Four metric displays:

  • Total Active tasks
  • Completed tasks
  • Today's Focus tasks
  • Archived tasks

Data Model and State Management##

Task Object Structure###

javascript

Application State###

javascript

Categories Configuration###

  • Work: Blue theme, ๐Ÿ’ผ emoji
  • Personal: Emerald theme, ๐Ÿ  emoji
  • Goals: Purple theme, ๐ŸŽฏ emoji
  • Daily: Orange theme, ๐Ÿ“… emoji

Priority Levels###

  • High: Red theme, ๐Ÿ”ด icon, red left border
  • Medium: Yellow theme, ๐ŸŸก icon, yellow left border
  • Low: Green theme, ๐ŸŸข icon, green left border

Core Functionality##

Task Management Operations###

  • Create: Add new tasks to any column
  • Read: Display tasks in card format
  • Update: In-place editing of all task properties
  • Delete: Remove tasks permanently
  • Archive: Move completed tasks to archived state
  • Move: Drag-and-drop between columns

Filtering and Search###

  • Text search across task titles and descriptions (case-insensitive)
  • Category-based filtering
  • Priority-based filtering
  • Archive visibility toggle
  • Real-time filtering without page refresh

Drag and Drop###

  • Tasks are draggable between columns
  • Visual feedback during drag operations (opacity change)
  • Drop zones accept tasks from any column
  • Column changes persist automatically

Visual Design and Styling##

Design System###

  • Color Palette: Blue-purple gradient branding, category-specific colors
  • Typography: Various font weights from light to black, tracking adjustments
  • Layout: Flexbox-based responsive design
  • Spacing: Consistent padding and margin scale
  • Shadows: Multiple shadow levels for depth
  • Borders: Rounded corners throughout (xl radius common)

Interactive Elements###

  • Hover effects on buttons and cards
  • Scale transforms on button interactions
  • Color transitions on state changes
  • Pulse animations for overdue tasks
  • Backdrop blur effects on control panels

Responsive Features###

  • Horizontal scroll for kanban board on smaller screens
  • Flexible grid layouts for statistics
  • Consistent sizing across different screen sizes

Data Persistence##

Storage Mechanism###

  • Uses browser localStorage with key 'kanban-tasks'
  • JSON serialization of task array
  • Automatic save on all state changes
  • Data loads on application initialization

Data Operations###

  • saveTasks(): Writes current state to localStorage
  • loadTasks(): Reads and parses data from localStorage
  • saveAndRender(): Combined save and UI update operation

Progressive Web App Features##

PWA Capabilities###

  • Dynamically generated Web App Manifest
  • Service Worker for caching (basic cache-first strategy)
  • Install prompt handling
  • Standalone display mode support
  • Theme color and background color definitions

Installation Flow###

  • Listens for 'beforeinstallprompt' event
  • Shows install button when prompt available
  • Handles user choice and hides button on acceptance

Offline Support###

  • Service Worker caches essential resources
  • Basic offline functionality for cached content

Event Handling and User Interactions##

Event Types Handled###

  • DOM content loaded initialization
  • Input field changes (search, filters)
  • Button clicks (add, edit, delete, archive)
  • Drag and drop events
  • Form submissions (task editing)
  • PWA install prompts

State Updates###

  • All user actions trigger state updates
  • State changes automatically persist and re-render
  • No manual save required from user perspective

Performance Characteristics##

Rendering Strategy###

  • Complete re-render on state changes
  • Template-based DOM element creation
  • Icon re-initialization after DOM updates
  • No virtual DOM or differential rendering

Memory Usage###

  • All data stored in JavaScript memory during session
  • localStorage for persistence between sessions
  • No external API calls or network dependencies

Browser Compatibility Requirements##

  • Modern browser support (ES6+ features)
  • localStorage API support
  • Service Worker API for PWA features
  • Drag and drop API support
  • CSS Grid and Flexbox support

This project represents a complete, self-contained task management solution suitable for personal productivity workflows, built with modern web technologies while maintaining simplicity and offline capability.

Architecture Diagram

Drag to pan, scroll to zoom