Skip to content

Hamcker/planner

Repository files navigation

Planner - Task Management Application

A modern, intuitive task management application built with React, TypeScript, and ShadCN components. This application provides a powerful interface for organizing tasks into projects with hierarchical relationships, drag-and-drop functionality, and persistent storage.

๐Ÿš€ Features

Core Functionality

  • Task Management: Add, edit, and delete tasks with ease
  • Project Organization: Organize tasks into projects and sub-tasks
  • Hierarchical Structure: Create multi-level task hierarchies with parent-child relationships
  • Drag & Drop: Intuitive drag-and-drop interface for reordering tasks and creating hierarchical relationships
  • Persistent Storage: All data is stored in localStorage, ensuring your tasks persist across browser sessions

User Interface

  • Modern Design: Built with ShadCN components for a clean, professional look
  • Responsive Layout: Works seamlessly across desktop and mobile devices
  • Expandable Rows: Expand/collapse functionality for tasks with sub-tasks
  • Visual Hierarchy: Clear visual indicators for task hierarchy levels
  • Editable Cells: In-line editing for quick task updates

Advanced Features

  • Export Functionality: Export tasks as HTML table with proper hierarchy classes
  • Column Customization: Show/hide columns based on your workflow needs
  • Rich Text Editing: Enhanced text editing capabilities for detailed task descriptions
  • Tooltip Support: Contextual help and information throughout the interface

Task Row Features

Each task row includes:

  • Drag Handle: For reordering and hierarchy management
  • Expand/Collapse Button: For tasks with children (sub-tasks)
  • Delete Button: Quick task removal
  • Editable Cells: Click-to-edit functionality for all task properties
  • Add New Row: Empty row at the bottom for quick task addition

๐Ÿ› ๏ธ Technology Stack

  • Frontend Framework: React 19.1.0
  • Language: TypeScript
  • Build Tool: Vite 7.0.4
  • Styling: Tailwind CSS 4.1.11
  • UI Components: ShadCN/UI with Radix UI primitives
  • Drag & Drop: React DnD with HTML5 backend
  • Icons: Lucide React and Fluent UI React Icons
  • Rich Text: React Simple WYSIWYG

๐Ÿ“ฆ Installation & Setup

Prerequisites

  • Node.js (v18 or higher)
  • npm, bun, or yarn package manager
  • Docker (optional, for containerized deployment)

Local Development

Using npm

# Clone the repository
git clone <repository-url>
cd Planner

# Install dependencies
npm install

# Start development server
npm run dev

# Build for production
npm run build

# Preview production build
npm run preview

# Run linting
npm run lint

Using Bun (Recommended)

# Clone the repository
git clone <repository-url>
cd Planner

# Install dependencies
bun install

# Start development server
bun run dev

# Build for production
bun run build

# Preview production build
bun run preview

# Run linting
bun run lint

The application will be available at http://localhost:5173 (or the next available port).

๐Ÿณ Docker Deployment

Quick Start with Docker Hub

# Pull and run the latest image
docker run -p 43801:43801 hamcker/planner:latest

The application will be available at http://localhost:43801.

Building from Source

# Build the Docker image
docker build -t planner-app .

# Run the container
docker run -p 43801:43801 planner-app

Docker Compose (Optional)

Create a docker-compose.yml file:

version: '3.8'
services:
  planner:
    image: hamcker/planner:latest
    ports:
      - "43801:43801"
    restart: unless-stopped

Run with:

docker-compose up -d

๐ŸŽฏ Usage Guide

Getting Started

  1. Add Your First Task: Use the empty row at the bottom to create your first task
  2. Create Sub-tasks: Drag tasks to create hierarchical relationships
  3. Edit Tasks: Click on any cell to edit task details
  4. Expand/Collapse: Use the expand button to show/hide sub-tasks
  5. Reorder Tasks: Drag tasks to reorder them within the same level

Export Functionality

  • Click the export button to download your tasks as an HTML table
  • Exported tables include hierarchy classes (level-0, level-1, etc.)
  • Only visible columns are included in the export

Data Persistence

  • All tasks are automatically saved to your browser's localStorage
  • No data is lost when you refresh the page or close the browser
  • To reset all data, clear your browser's localStorage for the domain

๐Ÿ—๏ธ Project Structure

src/
โ”œโ”€โ”€ components/
โ”‚   โ”œโ”€โ”€ Gantt/                 # Gantt chart components (future feature)
โ”‚   โ”œโ”€โ”€ Table/                 # Task table components
โ”‚   โ”‚   โ”œโ”€โ”€ Table.tsx         # Main table component
โ”‚   โ”‚   โ”œโ”€โ”€ TableRow.tsx      # Individual task row
โ”‚   โ”‚   โ”œโ”€โ”€ types.ts          # TypeScript type definitions
โ”‚   โ”‚   โ””โ”€โ”€ index.ts          # Component exports
โ”‚   โ””โ”€โ”€ ui/                   # Reusable UI components
โ”‚       โ”œโ”€โ”€ button.tsx        # Button component
โ”‚       โ”œโ”€โ”€ ColumnChooser.tsx # Column visibility selector
โ”‚       โ”œโ”€โ”€ RichTextEditor.tsx # Rich text editing
โ”‚       โ””โ”€โ”€ tooltip.tsx       # Tooltip component
โ”œโ”€โ”€ lib/
โ”‚   โ””โ”€โ”€ utils.ts              # Utility functions
โ”œโ”€โ”€ assets/                   # Static assets
โ”œโ”€โ”€ App.tsx                   # Main application component
โ”œโ”€โ”€ main.tsx                  # Application entry point
โ””โ”€โ”€ index.css                 # Global styles

๐Ÿ”ง Configuration

Environment Variables

The application can be configured using environment variables:

# Development
VITE_APP_TITLE=Planner
VITE_PORT=5173

# Production
VITE_BUILD_PATH=dist

Customization

  • Styling: Modify tailwind.config.js for custom themes
  • Components: Extend ShadCN components in src/components/ui/
  • Types: Update TypeScript definitions in src/components/Table/types.ts

๐Ÿงช Development

Available Scripts

  • npm run dev - Start development server
  • npm run build - Build for production
  • npm run preview - Preview production build
  • npm run lint - Run ESLint

Code Quality

  • ESLint: Configured with React and TypeScript rules
  • TypeScript: Strict type checking enabled
  • Prettier: Code formatting (recommended to configure)

๐Ÿš€ Deployment Options

Static Hosting

The built application can be deployed to any static hosting service:

  • Vercel
  • Netlify
  • GitHub Pages
  • AWS S3 + CloudFront
  • Firebase Hosting

Container Platforms

The Docker image can be deployed to:

  • Docker Hub
  • AWS ECS/Fargate
  • Google Cloud Run
  • Azure Container Instances
  • Kubernetes clusters

๐Ÿค 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

๐Ÿ“ License

This project is open source and available under the MIT License.

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

Hamed Zakeri Miyab (Hamit Zekeriya)


๐Ÿ”ฎ Roadmap

Upcoming Features

  • Gantt Chart View: Visual timeline representation of tasks
  • Due Dates: Task scheduling and deadline management
  • Priority Levels: Task prioritization system
  • Search & Filter: Advanced task filtering capabilities
  • Collaboration: Multi-user support and sharing
  • Data Export: Additional export formats (JSON, CSV, PDF)
  • Themes: Dark mode and custom theme support
  • Mobile App: Native mobile applications

Performance Optimizations

  • Virtual scrolling for large task lists
  • Optimistic updates for better UX
  • Offline support with service workers
  • Advanced caching strategies

Built with โค๏ธ using React, TypeScript, and modern web technologies.

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published