Skip to content

github-samples/task-dashboard

Repository files navigation

Task Dashboard

A task management application that allows users to create, organize, and filter tasks using a modern, responsive UI built with React.

Note: This application is intended for demonstration purposes only and is not meant for production use.

Features

  • Task Management: Create, complete, and delete tasks
  • Task Tags: Organize tasks with customizable tags
  • Task Lists: Create multiple lists with custom filters
  • List Filters: Filter tasks by tags or completion status
  • Animations: Smooth transitions and animations using Framer Motion
  • Responsive Design: Works on desktop and mobile devices

Technology Stack

  • React: Modern React with functional components and hooks
  • Tailwind CSS: Utility-first CSS framework for styling
  • Framer Motion: Animation library for React
  • Vite: Fast, modern build tool and development server
  • Vitest: Testing framework compatible with Vite

Getting Started

Prerequisites

  • Node.js (v18+)
  • npm (v10+)

Installation

  1. Clone the repository:

    git clone https://github.com/yourusername/task-dashboard.git
    cd task-dashboard
  2. Install dependencies:

    npm install
  3. Start the development server:

    npm start
  4. Open http://localhost:3000 to view the app

Available Scripts

  • npm start - Start the development server
  • npm start:hydrated - Start the development server with data hydration enabled
  • npm run build - Build for production
  • npm run build:hydrated - Build for production with data hydration enabled
  • npm run build:clean - Build for production with data hydration explicitly disabled
  • npm run preview - Preview the production build locally
  • npm run preview:hydrated - Preview the production build with data hydration enabled
  • npm test - Run tests with Vitest

Data Hydration

The application supports pre-populating the app with sample data through an optional hydration process:

  • Sample data is defined in src/data/initialData.json
  • Hydration can be enabled/disabled using the VITE_ENABLE_DATA_HYDRATION environment variable
  • Use the convenience scripts for development with hydration:
    • npm run start:hydrated - Development with sample data
    • npm run build:hydrated - Production build with sample data
    • npm run build:clean - Production build without sample data
  • GitHub Actions deployment automatically enables hydration for the production build

Architecture

State Management

The application uses React Context for state management:

  • TaskContext: Manages tasks state and operations (add, toggle, delete)
  • TagContext: Manages tags and their relationships with tasks
  • ListContext: Manages task lists and filtering logic

UI Components

The application features several key components:

  • TaskList: Renders a list of tasks
  • TaskItem: Renders an individual task
  • TaskBoard: Manages multiple task lists
  • TagManager: Interface for creating and managing tags
  • GlobalTaskForm: Form for creating new tasks
  • ListAddTask: Form for adding tasks to specific lists
  • TaskListConfig: Interface for configuring task lists

Contributing

  1. Fork the repository
  2. Create your feature branch (git checkout -b feature/amazing-feature)
  3. Commit your changes (git commit -m 'Add some amazing feature')
  4. Push to the branch (git push origin feature/amazing-feature)
  5. Open a Pull Request

License

This project is licensed under the MIT License - see the LICENSE file for details.

About

A sample dashboard for a user to track tasks. Intended as a low complexity app to base demos from.

Topics

Resources

License

Code of conduct

Security policy

Stars

Watchers

Forks

Releases

No releases published

Contributors 2

  •  
  •  
pFad - Phonifier reborn

Pfad - The Proxy pFad of © 2024 Garber Painting. All rights reserved.

Note: This service is not intended for secure transactions such as banking, social media, email, or purchasing. Use at your own risk. We assume no liability whatsoever for broken pages.


Alternative Proxies:

Alternative Proxy

pFad Proxy

pFad v3 Proxy

pFad v4 Proxy