{"id":29203727,"url":"https://github.com/tox82/tasktogo","last_synced_at":"2025-07-02T14:40:09.269Z","repository":{"id":301911881,"uuid":"1010233061","full_name":"ToX82/TaskToGo","owner":"ToX82","description":"A simple and elegant task management tool designed for Vivaldi's side panel. TaskToGo offers a clean, responsive interface for managing tasks, categories, and priorities with full CRUD functionality.","archived":false,"fork":false,"pushed_at":"2025-06-29T14:33:33.000Z","size":390,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":0,"default_branch":"main","last_synced_at":"2025-06-29T15:32:46.039Z","etag":null,"topics":["localstorage","multilanguage","privacy","task","task-manager"],"latest_commit_sha":null,"homepage":"https://tox82.github.io/TaskToGo/","language":"JavaScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/ToX82.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null}},"created_at":"2025-06-28T16:26:28.000Z","updated_at":"2025-06-29T14:33:37.000Z","dependencies_parsed_at":"2025-06-29T15:43:21.939Z","dependency_job_id":null,"html_url":"https://github.com/ToX82/TaskToGo","commit_stats":null,"previous_names":["tox82/tasktogo"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/ToX82/TaskToGo","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ToX82%2FTaskToGo","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ToX82%2FTaskToGo/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ToX82%2FTaskToGo/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ToX82%2FTaskToGo/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/ToX82","download_url":"https://codeload.github.com/ToX82/TaskToGo/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ToX82%2FTaskToGo/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":263158484,"owners_count":23422830,"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":["localstorage","multilanguage","privacy","task","task-manager"],"created_at":"2025-07-02T14:39:57.201Z","updated_at":"2025-07-02T14:40:09.244Z","avatar_url":"https://github.com/ToX82.png","language":"JavaScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# TaskToGo\n\nA simple and elegant task management tool designed for Vivaldi's side panel. TaskToGo offers a clean, responsive interface for managing tasks, categories, and priorities with full CRUD functionality.\n\n## Features\n\n- **Task Management**: Create, read, update, and delete tasks\n- **Categories \u0026 Priorities**: Organize tasks with colored categories and priorities\n- **Responsive Design**: Works seamlessly in Vivaldi's side panel and full-screen\n- **Internationalization**: Supports English and Italian with automatic language detection\n- **Local Storage**: All data is stored locally in your browser\n- **Quick Add**: Fast task creation with minimal input\n- **Filtering**: Filter tasks by category, priority, and completion status\n- **Due Dates**: Set and track task due dates with visual indicators\n- **Compact Interface**: Optimized for space efficiency\n\n## Technology Stack\n\n- **HTML5**: Semantic markup\n- **Tailwind CSS**: Utility-first CSS framework\n- **jQuery**: DOM manipulation and event handling\n- **Iconify**: Beautiful icons\n- **localStorage**: Client-side data persistence\n\n## Project Structure\n\n```\ntask_to_go/\n├── index.html              # Main HTML file\n├── css/\n│   └── styles.css          # Custom CSS styles\n├── js/\n│   ├── app.js              # Main application logic\n│   ├── i18n.js             # Internationalization system\n│   ├── storage.js          # localStorage management\n│   ├── models.js           # Data models and business logic\n│   └── ui.js               # UI management and rendering\n├── locales/\n│   ├── en.json             # English translations\n│   └── it.json             # Italian translations\n└── README.md               # This file\n```\n\n## Getting Started\n\n1. **Open the application**: Simply open `index.html` in your web browser\n2. **Add to Vivaldi**: Use the file path as a web panel URL in Vivaldi\n3. **Start managing tasks**: Begin by adding your first task using the quick add form\n\n## Usage\n\n### Quick Add\n- Use the input field at the top to quickly add tasks\n- Tasks are automatically assigned to the first category and normal priority\n\n### Full Task Management\n- Click \"Add Task\" for detailed task creation\n- Set title, description, category, priority, and due date\n- Edit tasks by clicking the pencil icon\n- Delete tasks by clicking the trash icon\n- Mark tasks as complete using the checkbox\n\n### Categories and Priorities\n- Access settings via the gear icon in the header\n- Add, edit, and delete categories with custom colors\n- Manage priorities with custom colors and ordering\n- Deleted categories/priorities are automatically handled\n\n### Filtering\n- Filter tasks by category or priority using the dropdown menus\n- Toggle completed task visibility\n- All filters work together for precise task management\n\n### Language Support\n- Automatic language detection based on browser settings\n- Manual language switching via the dropdown in the header\n- Currently supports English and Italian\n\n## Architecture\n\nThe application follows SOLID principles and clean architecture:\n\n- **Separation of Concerns**: Each file has a specific responsibility\n- **Model-View-Controller**: Clear separation between data, UI, and logic\n- **Dependency Injection**: Components are loosely coupled\n- **Error Handling**: Comprehensive error handling and user feedback\n- **Data Integrity**: Automatic data validation and corruption recovery\n\n## Browser Compatibility\n\n- Chrome/Chromium (including Vivaldi) 80+\n- Firefox 75+\n- Safari 13+\n- Edge 80+\n\n## Development\n\n### Code Style\n- Follows PSR-12 inspired JavaScript conventions\n- Comprehensive JSDoc documentation\n- Consistent naming conventions\n- Modular architecture\n\n### Best Practices\n- KISS (Keep It Simple, Stupid)\n- DRY (Don't Repeat Yourself)\n- SOLID principles\n- Responsive design\n- Accessibility considerations\n\n## Data Management\n\n### Storage\n- All data is stored in browser's localStorage\n- Automatic backup every 5 minutes\n- Data integrity checks and automatic recovery\n- Export/import functionality (planned feature)\n\n### Data Structure\n```javascript\n{\n  tasks: [\n    {\n      id: \"unique_id\",\n      title: \"Task title\",\n      description: \"Task description\",\n      categoryId: \"category_id\",\n      priorityId: \"priority_id\",\n      completed: false,\n      dueDate: \"2024-01-01\",\n      createdAt: \"2024-01-01T00:00:00.000Z\",\n      updatedAt: \"2024-01-01T00:00:00.000Z\",\n      completedAt: null\n    }\n  ],\n  categories: [\n    {\n      id: \"unique_id\",\n      name: \"Category name\",\n      color: \"#3B82F6\",\n      createdAt: \"2024-01-01T00:00:00.000Z\"\n    }\n  ],\n  priorities: [\n    {\n      id: \"unique_id\",\n      name: \"Priority name\",\n      color: \"#EF4444\",\n      order: 1,\n      createdAt: \"2024-01-01T00:00:00.000Z\"\n    }\n  ]\n}\n```\n\n## Customization\n\n### Adding New Languages\n1. Create a new JSON file in the `locales/` directory\n2. Follow the structure of existing translation files\n3. Add the language code to the `I18n` class in `i18n.js`\n4. Update the language selector in `index.html`\n\n### Styling\n- Modify `css/styles.css` for custom styles\n- Tailwind classes can be customized via CDN configuration\n- Color schemes are easily adjustable through CSS variables\n\n## Performance\n\n- Lightweight footprint (~50KB total)\n- Fast rendering with efficient DOM manipulation\n- Optimized for mobile and desktop\n- Minimal external dependencies\n\n## Security\n\n- No external data transmission\n- Client-side only application\n- No server-side vulnerabilities\n- Data remains private and local\n\n## License\n\nThis project is open source and available under the MIT License.\n\n## Contributing\n\nContributions are welcome! Please follow the established code style and architecture patterns.\n\n## Support\n\nFor issues or questions, please check the browser console for error messages and ensure you're using a supported browser version.","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ftox82%2Ftasktogo","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Ftox82%2Ftasktogo","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ftox82%2Ftasktogo/lists"}