Skip to content

A comprehensive, cloud-based collaborative task management tool, meticulously designed to foster seamless teamwork and enhance project efficiency, featuring a dynamic system of real-time updates that ensure team members are consistently synchronized.

License

Notifications You must be signed in to change notification settings

Krypto-Hashers-Community/Task-Management

Β 
Β 

Repository files navigation

πŸ“‹ Kanban Task Management

Task Management React TypeScript Tailwind

A modern, responsive Kanban board application built with React and TypeScript, featuring a beautiful UI powered by shadcn/ui and Tailwind CSS. Perfect for teams and individuals to manage tasks efficiently with drag-and-drop functionality, real-time updates, and responsive design.

Desktop Tablet Mobile
Desktop view showing full Kanban board with three columns Tablet view with responsive layout Mobile view with optimized navigation

✨ Features

🎯 Core Functionality

  • Drag & Drop Interface: Intuitive task management with smooth drag-and-drop between columns
  • Real-time Updates: Instant synchronization of task changes across the board
  • Responsive Design: Optimized for desktop, tablet, and mobile devices
  • Dark/Light Theme: Toggle between themes with persistent user preference
  • Search & Filter: Advanced search functionality with multiple filter options

πŸ‘€ User Management

  • Authentication System: Secure login and registration with local storage
  • User Profiles: Customizable avatars and profile management
  • Multi-user Support: Assign tasks to different team members
  • Session Persistence: Automatic login state management

πŸ“ Task Management

  • Create & Edit Tasks: Comprehensive task creation with rich descriptions
  • Priority Levels: Set task priorities (Low, Medium, High, Critical)
  • Issue Types: Categorize tasks as Bug, Feature, Enhancement, or Documentation
  • Due Dates: Set and track task deadlines
  • Tags & Labels: Organize tasks with customizable tags
  • Comments & Attachments: Track task discussions and file attachments
  • Task Analytics: Visual indicators for task progress and statistics

🎨 User Experience

  • Modern UI Components: Built with shadcn/ui component library
  • Smooth Animations: Elegant transitions and micro-interactions
  • Accessibility: WCAG compliant with proper ARIA labels and keyboard navigation
  • Progressive Web App: Offline support and native app-like experience
  • Notifications: Toast notifications for user actions and updates

πŸ› οΈ Tech Stack

Frontend

UI & Components

State Management & Data

Utilities & Enhancements

Development Tools

πŸš€ Getting Started

Prerequisites

Make sure you have the following installed on your development machine:

  • Node.js (version 16.0 or higher)
  • npm (version 7.0 or higher) or yarn (version 1.22 or higher)
  • Git for version control
# Check your versions
node --version
npm --version
git --version

Installation

  1. Clone the repository
git clone https://github.com/Ayokanmi-Adejola/Task-Management.git
cd Task-Management
  1. Install dependencies
# Using npm
npm install

# Or using yarn
yarn install
  1. Start the development server
# Using npm
npm run dev

# Or using yarn
yarn dev
  1. Open your browser Navigate to http://localhost:8081 to see the application.

Environment Setup

The application runs on port 8081 by default. You can modify this in the vite.config.ts file if needed.

// vite.config.ts
export default defineConfig({
  server: {
    host: "::",
    port: 8081, // Change this port if needed
  },
  // ... other config
});

πŸ“¦ Available Scripts

Script Description
npm run dev Starts the development server with hot reload
npm run build Creates an optimized production build
npm run build:dev Creates a development build
npm run lint Runs ESLint to check code quality
npm run preview Preview the production build locally

πŸ“ Project Structure

Task-Management/
β”œβ”€β”€ public/                     # Static assets
β”œβ”€β”€ src/
β”‚   β”œβ”€β”€ components/            # Reusable UI components
β”‚   β”‚   β”œβ”€β”€ ui/               # shadcn/ui components
β”‚   β”‚   β”œβ”€β”€ KanbanBoard.tsx   # Main Kanban board component
β”‚   β”‚   β”œβ”€β”€ TaskCard.tsx      # Individual task component
β”‚   β”‚   └── ...
β”‚   β”œβ”€β”€ contexts/             # React context providers
β”‚   β”‚   β”œβ”€β”€ AuthContext.tsx   # Authentication state
β”‚   β”‚   └── ThemeContext.tsx  # Theme management
β”‚   β”œβ”€β”€ hooks/                # Custom React hooks
β”‚   β”œβ”€β”€ lib/                  # Utility functions
β”‚   β”œβ”€β”€ pages/                # Page components
β”‚   β”œβ”€β”€ types/                # TypeScript type definitions
β”‚   β”œβ”€β”€ utils/                # Helper functions
β”‚   └── main.tsx              # Application entry point
β”œβ”€β”€ components.json           # shadcn/ui configuration
β”œβ”€β”€ tailwind.config.ts        # Tailwind CSS configuration
β”œβ”€β”€ vite.config.ts           # Vite build configuration
└── tsconfig.json            # TypeScript configuration

🎯 Usage

Creating Tasks

  1. Click the "Create Task" button or "Add Task" in any column
  2. Fill in the task details (title, description, priority, etc.)
  3. Assign team members and set due dates
  4. Click "Create" to add the task to the board

Managing Tasks

  • Move Tasks: Drag and drop tasks between columns (To Do, In Progress, Completed)
  • Edit Tasks: Click on any task to open the edit dialog
  • Filter Tasks: Use the filter button to search by status, priority, assignee, or tags
  • Delete Tasks: Remove tasks using the delete button in the task card

User Authentication

  • Register a new account or login with existing credentials
  • User sessions are persisted in local storage
  • Access user settings through the profile dropdown
  • Toggle between light and dark themes

πŸ”§ Configuration

Theme Customization

The application supports custom theming through CSS variables. Modify the theme in src/index.css:

:root {
  --background: 0 0% 100%;
  --foreground: 222.2 84% 4.9%;
  --primary: 221.2 83.2% 53.3%;
  /* Add your custom colors */
}

Adding New Task Types

Extend the task types in src/types/kanban.ts:

export type IssueType = 'bug' | 'feature' | 'enhancement' | 'documentation' | 'your-new-type';

πŸ§ͺ Testing

Currently, the project focuses on TypeScript compilation and ESLint for code quality. To run the linter:

npm run lint

πŸš€ Deployment

Building for Production

npm run build

This creates a dist folder with optimized production files.

Deployment Options

  • Vercel: Deploy directly from GitHub repository
  • Netlify: Drag and drop the dist folder
  • GitHub Pages: Use GitHub Actions for automated deployment
  • Docker: Containerize the application for cloud deployment

Example GitHub Actions Workflow

name: Deploy to GitHub Pages
on:
  push:
    branches: [ main ]
jobs:
  build-and-deploy:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v2
      - uses: actions/setup-node@v2
        with:
          node-version: '18'
      - run: npm install
      - run: npm run build
      - uses: peaceiris/actions-gh-pages@v3
        with:
          github_token: ${{ secrets.GITHUB_TOKEN }}
          publish_dir: ./dist

🀝 Contributing

We welcome contributions from the community! Please follow these steps:

Development Workflow

  1. Fork the repository
git clone https://github.com/your-username/Task-Management.git
cd Task-Management
  1. Create a feature branch
git checkout -b feature/amazing-feature
  1. Make your changes

    • Follow the existing code style and conventions
    • Add TypeScript types for new components
    • Update documentation if needed
  2. Test your changes

npm run lint        # Check code quality
npm run build       # Ensure build works
  1. Commit your changes
git commit -m "feat: add amazing feature"
  1. Push to your fork
git push origin feature/amazing-feature
  1. Open a Pull Request
    • Provide a clear description of changes
    • Link any related issues
    • Add screenshots for UI changes

Contribution Guidelines

  • Code Style: Follow the existing TypeScript and React patterns
  • Commits: Use conventional commit messages (feat, fix, docs, style, refactor, test, chore)
  • Documentation: Update README.md for significant changes
  • Testing: Ensure your changes don't break existing functionality

Reporting Issues

When reporting bugs, please include:

  • Steps to reproduce the issue
  • Expected vs actual behavior
  • Screenshots (if applicable)
  • Browser and device information

πŸ™ Acknowledgments

  • shadcn/ui for the beautiful component library
  • Radix UI for accessible primitives
  • Tailwind CSS for the utility-first CSS framework
  • Lucide for the comprehensive icon library
  • The React and TypeScript communities for continuous innovation

πŸ“Š Project Stats

GitHub stars GitHub forks GitHub issues GitHub pull requests

About

A comprehensive, cloud-based collaborative task management tool, meticulously designed to foster seamless teamwork and enhance project efficiency, featuring a dynamic system of real-time updates that ensure team members are consistently synchronized.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • TypeScript 98.0%
  • CSS 1.5%
  • Other 0.5%