A powerful, offline-capable web application for tracking your daily tasks and habits. Track your consistency with a visual color-coded grid inspired by GitHub's contribution chart.
- Add, edit, and delete tasks
- Track task completion with a 5-level progress system (none, low, medium, high, complete)
- View your progress on a monthly calendar grid
- Filter to view all tasks or focus on a single task
- Visual mini-tracker shows last 7 days for each task
- IndexedDB storage for persistent data that survives browser cache clearing
- Built-in data export/import for manual backups
- Works completely offline - no server required
- Responsive design for mobile and desktop devices
- Progressive Web App (PWA) support for mobile installation
This project isn't currently hosted online.
- If you've deployed the app, visit its URL
- Start using the app immediately - no installation required!
- For mobile devices, you can install it as a Progressive Web App by:
- On Android: Tap the menu button and select "Add to Home Screen"
- On iOS: Tap the share button and select "Add to Home Screen"
- Download the source code or clone this repository:
git clone https://github.com/apoorvib/task-progress-tracker.git
- Open the
index.htmlfile in your web browser.
That's it! No server, build process, or dependencies required.
- Add a task: Enter a task name in the input field and click "Add Task"
- Track progress: Click on a cell in the calendar grid to cycle through completion levels:
- Level 0 (Gray): No progress
- Level 1 (Light Green): Low progress
- Level 2 (Medium Green): Medium progress
- Level 3 (Dark Green): High progress
- Level 4 (Darkest Green): Complete
- Edit a task: Click the edit button (✏️) next to a task name
- Delete a task: Click the delete button (🗑️) next to a task name
- Navigate months: Use the arrow buttons at the top to move between months
- Filter tasks: Use the "All Tasks" and "Single Task" buttons to change your view
- Backup data: Use the Export/Import buttons in the Data Management section
- Each task can be tracked daily with five different progress levels
- Tasks display a mini-progress view showing your consistency over the last 7 days
- The main grid provides a monthly view of all your progress
- Click on any day in the grid to cycle through progress levels
- Your data is stored in your browser's IndexedDB database
- IndexedDB data typically persists even when clearing cookies and browser cache
- For additional safety, use the Export button to download a backup of your data
- If needed, use the Import button to restore from a previously exported file
This app works completely offline with:
- Service Worker for offline access
- IndexedDB for data persistence
- PWA configuration for mobile installation
The app works in all modern browsers that support:
- IndexedDB (for data storage)
- CSS Grid Layout (for the calendar visualization)
- ES6+ JavaScript features
Supported browsers include:
- Chrome 60+
- Firefox 55+
- Safari 11+
- Edge 16+
- Modern mobile browsers (iOS 11+, Android 5+)
task-progress-tracker/
├── css/
│ ├── normalize.css # CSS reset for consistency across browsers
│ └── styles.css # Main stylesheet with custom variables and components
├── js/
│ ├── app.js # Application initialization and error handling
│ ├── indexedDB-storage.js # Persistent storage implementation using IndexedDB
│ ├── taskManager.js # Task data manipulation and business logic
│ └── ui.js # DOM manipulation and event handling
├── img/
│ ├── icon-192.svg # App icon for smaller displays
│ └── icon-512.svg # App icon for larger displays
├── index.html # Main HTML structure
├── manifest.json # PWA configuration
├── service-worker.js # Offline capabilities
├── LICENSE.md # MIT License details
└── README.md # Application documentation
- Built with vanilla JavaScript - no frameworks or libraries
- Uses IndexedDB for persistent data storage
- Async/await patterns for smooth user experience
- CSS Grid for responsive layout and calendar visualization
- CSS custom properties for easy theming
- Progressive Web App capabilities for offline use
- Event delegation pattern for efficient event handling
The application uses CSS custom properties (variables) for easy customization:
- Color scheme can be modified in the
:rootsection ofstyles.css - Task levels use the variables
--level-0through--level-4for the progress colors - Layout and spacing use standardized variables for consistency
Contributions are welcome! Feel free to submit a pull request or open an issue.
This project is licensed under the MIT License - see the LICENSE.md file for details.