β¨ Key Features β’ π¬ Live Showcase β’ π Analytics Dashboard β’ π οΈ Tech Stack β’ π Quick Start β’ π Project Structure β’ π€ Contributing β’ πΊοΈ Roadmap
Task Manager & Productivity Dashboard is a fast, responsive, and distraction-free web productivity platform built using pure Vanilla HTML5, modern CSS3, and ES6+ JavaScript, enhanced with interactive visual analytics by Chart.js.
Whether tracking daily sprint objectives, prioritizing critical deadlines, reviewing monthly completion velocity, or keeping personal goals organized, Task Manager provides a seamless experience with zero runtime dependencies and 100% client-side privacy.
β² Real-time demonstration: Creating tasks with priorities, marking completion, inline double-click editing, history toggling, and rendering interactive Chart.js analytics.
|
Create tasks instantly with custom due dates and color-coded priority indicators ( |
Double-click directly on any task title to edit it inline on the fly without interrupting your workflow or dealing with bulky modals. |
|
Active tasks that cross their due dates are highlighted with clear visual overdue badges and styling so nothing slips through the cracks. |
When viewing all tasks, items are automatically collated by their respective calendar month, making mid-to-long term scheduling effortless. |
|
One-click toggle between active view and comprehensive history. Filter tasks dynamically across |
All state is automatically synchronized with the browser's |
|
Filter active or historical tasks by keyword with instant live matching and one-click clear button. |
Sort tasks dynamically by due date (earliest or latest), priority level (high to low or low to high), or alphabetically. |
Gain instant visual insight into your workload and completion velocity with dynamic, responsive Chart.js data visualizations:
graph TD
A[Tasks Database] --> B[Priority Breakdown]
A --> C[Monthly Trends]
B --> D[π© Doughnut / Pie Chart: Low vs Medium vs High]
C --> E[π Bar Chart: Weekly Completions with Month Navigation]
- π© Priority Breakdown Chart: Visualizes task distribution across Low, Medium, and High priorities, complete with a custom legend.
- π Monthly Completion Trends: Interactive bar chart plotting completed tasks week-by-week. Includes intuitive
βandβΆmonth-by-month navigation buttons to track your productivity journey over time.
π Why Pure Vanilla Web Technologies? (Click to Expand)
- β‘ Zero Build Step: No
npm install, no Webpack/Vite bundlers, no waiting for compiles. - πͺΆ Ultra Lightweight: Sub-millisecond load times with negligible memory footprint.
- π Privacy-First: No external tracking or remote server calls for task data.
- π± Universally Compatible: Runs identically across any modern desktop, tablet, or mobile browser.
taskmanager/
βββ π index.html # Main semantic application markup & canvas containers
βββ π¨ style.css # Design system, CSS variables, glassmorphism & dark theme
βββ β‘ script.js # Core application logic, event listeners & Chart.js engine
βββ βοΈ netlify.toml # Netlify static deployment & security headers
βββ π README.md # Project documentation & animated showcase
βββ π€ CONTRIBUTING.md # Contribution guidelines & branching workflow
βββ π CODE_OF_CONDUCT.md # Community participation standards
βββ βοΈ LICENSE # MIT Open Source License
βββ πΌοΈ assets/ # Visual demo assets & graphics
β βββ taskmanager-demo.gif # Recorded application interaction animation
βββ π .github/ # GitHub configuration & templates
βββ PULL_REQUEST_TEMPLATE.md
βββ ISSUE_TEMPLATE/
βββ bug_report.md
βββ feature_request.md-
Install dependencies:
npm install
-
Start the development server:
npm run dev
Navigate to
http://localhost:8080in your web browser. -
Build for production:
npm run build
- Yesterday's due date: Add an active task due yesterday. Confirm that it receives an Overdue badge and appears under the Overdue history filter.
- Today's due date: Add an active task due today. Confirm that it does not receive an Overdue badge.
- No due date: Using browser developer tools, set a stored task's
dueDateto an empty string and reload. Confirm that it never receives an Overdue badge. - Date change while open: Keep a task due today open past local midnight, or temporarily advance the system date by one day. Return to the tab and confirm that the badge appears within 60 seconds without reloading the page.
Use browser developer tools to run each command, then reload the page:
- Malformed JSON: Run
localStorage.setItem('tasks', '{invalid'). Confirm that the app loads without tasks or browser errors. - Unexpected storage value: Run
localStorage.setItem('tasks', '{"text":"Not an array"}'). Confirm that the value is ignored. - Missing required fields: Run
localStorage.setItem('tasks', '[{"text":"Incomplete task"}]'). Confirm that the incomplete record is not rendered. - Invalid field types: Run
localStorage.setItem('tasks', '[{"text":"Invalid task","dueDate":null,"priority":"medium","completed":"false","completedAt":null}]'). Confirm that the invalid record is not rendered. - Mixed valid and invalid records: Run
localStorage.setItem('tasks', JSON.stringify([{ text: 'Keep this task', dueDate: '', priority: 'medium', completed: false, completedAt: null }, { text: 'Discard this task', dueDate: '', priority: 'medium', completed: 'false', completedAt: null }])). Confirm that only Keep this task is rendered and remains usable.
- Live Search Filtering: Type a keyword into the search bar. Confirm that only matching tasks appear, and the clear (
Γ) button is visible. - Empty Search Result: Search for a non-existent task name. Confirm that the custom empty state message (
π No tasks found matching "...") is displayed. - One-Click Clear: Click the
Γbutton. Confirm that the search input is cleared, the clear button hides, and the full task list is restored. - Sorting Verification: Select each sort option (
Due Date,Priority,Title A-Z/Z-A) and confirm that items re-order instantly without altering task state or persistence. - Combined Filter & Sort: Apply a filter (e.g.,
DoneorActive) or switch to History mode and confirm that search and sort accurately scope to that view.
Exciting features planned for future releases:
- π Drag-and-Drop Reordering: Interactive task sequencing using HTML5 Drag and Drop API.
- π·οΈ Custom Tags & Categories: Multi-label tagging with custom color badges.
- π₯ Data Import / Export: One-click JSON / CSV backup and restore.
- π Subtasks & Nested Checklists: Granular sub-item progress tracking.
- π Task Search & Multi-Criteria Sorting: Live search by keyword and dynamic sorting by date, priority, or title.
- βοΈ Dark / Light Theme Switcher: Dynamic theme toggle with persistent preference.
- π± Progressive Web App (PWA): Offline service workers and mobile app installability.
Contributions make open-source projects thrive! Whether reporting a bug, proposing a new feature, or submitting a pull request, your contributions are warmly welcomed.
- Fork the repository on GitHub.
- Clone your fork locally:
git clone https://github.com/YOUR_USERNAME/taskmanager-nsoc2.git
- Create a descriptive feature branch:
git checkout -b feature/drag-and-drop-tasks
- Commit your changes following Conventional Commits:
git commit -m "feat: add drag-and-drop task reordering" - Push to your branch:
git push origin feature/drag-and-drop-tasks
- Open a Pull Request via the GitHub web interface.
Please read our CONTRIBUTING.md and CODE_OF_CONDUCT.md before contributing.
Distributed under the MIT License. See LICENSE for full details.