{"id":28256931,"url":"https://github.com/github-samples/task-dashboard","last_synced_at":"2025-08-29T13:07:38.927Z","repository":{"id":292582045,"uuid":"980658795","full_name":"github-samples/task-dashboard","owner":"github-samples","description":"A sample dashboard for a user to track tasks. Intended as a low complexity app to base demos from.","archived":false,"fork":false,"pushed_at":"2025-06-16T02:59:46.000Z","size":815,"stargazers_count":5,"open_issues_count":3,"forks_count":0,"subscribers_count":0,"default_branch":"main","last_synced_at":"2025-06-17T12:42:14.108Z","etag":null,"topics":["demo","demo-app","sample","sample-app","sample-code","task-management"],"latest_commit_sha":null,"homepage":"https://github-samples.github.io/task-dashboard/","language":"JavaScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/github-samples.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":"CODE_OF_CONDUCT.md","threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":"SECURITY.md","support":"SUPPORT.md","governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null}},"created_at":"2025-05-09T13:49:31.000Z","updated_at":"2025-06-03T19:16:50.000Z","dependencies_parsed_at":null,"dependency_job_id":"8b6413fb-8db4-4b95-8622-1dd5b90b345c","html_url":"https://github.com/github-samples/task-dashboard","commit_stats":null,"previous_names":["github-samples/task-dashboard"],"tags_count":0,"template":true,"template_full_name":null,"purl":"pkg:github/github-samples/task-dashboard","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/github-samples%2Ftask-dashboard","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/github-samples%2Ftask-dashboard/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/github-samples%2Ftask-dashboard/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/github-samples%2Ftask-dashboard/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/github-samples","download_url":"https://codeload.github.com/github-samples/task-dashboard/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/github-samples%2Ftask-dashboard/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":263937917,"owners_count":23532806,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["demo","demo-app","sample","sample-app","sample-code","task-management"],"created_at":"2025-05-19T23:14:35.298Z","updated_at":"2025-07-06T16:39:12.646Z","avatar_url":"https://github.com/github-samples.png","language":"JavaScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Task Dashboard\n\nA task management application that allows users to create, organize, and filter tasks using a modern, responsive UI built with React.\n\n\u003e **Note:** This application is intended for demonstration purposes only and is not meant for production use.\n\n## Features\n\n- **Task Management**: Create, complete, and delete tasks\n- **Task Tags**: Organize tasks with customizable tags\n- **Task Lists**: Create multiple lists with custom filters\n- **List Filters**: Filter tasks by tags or completion status\n- **Animations**: Smooth transitions and animations using Framer Motion\n- **Responsive Design**: Works on desktop and mobile devices\n\n## Technology Stack\n\n- **React**: Modern React with functional components and hooks\n- **Tailwind CSS**: Utility-first CSS framework for styling\n- **Framer Motion**: Animation library for React\n- **Vite**: Fast, modern build tool and development server\n- **Vitest**: Testing framework compatible with Vite\n\n## Getting Started\n\n### Prerequisites\n\n- Node.js (v18+)\n- npm (v10+)\n\n### Installation\n\n1. Clone the repository:\n   ```bash\n   git clone https://github.com/yourusername/task-dashboard.git\n   cd task-dashboard\n   ```\n\n2. Install dependencies:\n   ```bash\n   npm install\n   ```\n\n3. Start the development server:\n   ```bash\n   npm start\n   ```\n\n4. Open [http://localhost:3000](http://localhost:3000) to view the app\n\n### Available Scripts\n\n- `npm start` - Start the development server\n- `npm start:hydrated` - Start the development server with data hydration enabled\n- `npm run build` - Build for production\n- `npm run build:hydrated` - Build for production with data hydration enabled\n- `npm run build:clean` - Build for production with data hydration explicitly disabled\n- `npm run preview` - Preview the production build locally\n- `npm run preview:hydrated` - Preview the production build with data hydration enabled\n- `npm test` - Run tests with Vitest\n\n### Data Hydration\n\nThe application supports pre-populating the app with sample data through an optional hydration process:\n\n- Sample data is defined in `src/data/initialData.json`\n- Hydration can be enabled/disabled using the `VITE_ENABLE_DATA_HYDRATION` environment variable\n- Use the convenience scripts for development with hydration:\n  - `npm run start:hydrated` - Development with sample data\n  - `npm run build:hydrated` - Production build with sample data\n  - `npm run build:clean` - Production build without sample data\n- GitHub Actions deployment automatically enables hydration for the production build\n\n## Architecture\n\n### State Management\n\nThe application uses React Context for state management:\n\n- **TaskContext**: Manages tasks state and operations (add, toggle, delete)\n- **TagContext**: Manages tags and their relationships with tasks\n- **ListContext**: Manages task lists and filtering logic\n\n### UI Components\n\nThe application features several key components:\n- **TaskList**: Renders a list of tasks\n- **TaskItem**: Renders an individual task\n- **TaskBoard**: Manages multiple task lists\n- **TagManager**: Interface for creating and managing tags\n- **GlobalTaskForm**: Form for creating new tasks\n- **ListAddTask**: Form for adding tasks to specific lists\n- **TaskListConfig**: Interface for configuring task lists\n\n## Contributing\n\n1. Fork the repository\n2. Create your feature branch (`git checkout -b feature/amazing-feature`)\n3. Commit your changes (`git commit -m 'Add some amazing feature'`)\n4. Push to the branch (`git push origin feature/amazing-feature`)\n5. Open a Pull Request\n\n## License\n\nThis project is licensed under the MIT License - see the [LICENSE](LICENSE) file for details.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fgithub-samples%2Ftask-dashboard","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fgithub-samples%2Ftask-dashboard","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fgithub-samples%2Ftask-dashboard/lists"}