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:
- Backlog (๐) - Slate color scheme
- Today (๐ฏ) - Blue color scheme
- In Progress (โก) - Amber color scheme
- Waiting (โณ) - Purple color scheme
- 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 localStorageloadTasks(): Reads and parses data from localStoragesaveAndRender(): 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