{"id":49573611,"url":"https://github.com/pitercoding/daily-task-flow","last_synced_at":"2026-05-03T15:39:22.905Z","repository":{"id":351821080,"uuid":"1210175715","full_name":"pitercoding/daily-task-flow","owner":"pitercoding","description":"[EN] Frontend productivity application for managing tasks, tracking time, and organizing daily workflows with a simple dashboard. [PT] Aplicação frontend de produtividade para gerenciar tarefas, acompanhar tempo e organizar fluxos diários com um dashboard simples.","archived":false,"fork":false,"pushed_at":"2026-04-16T17:19:32.000Z","size":281,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":0,"default_branch":"main","last_synced_at":"2026-05-03T15:39:05.520Z","etag":null,"topics":["angular","dashboard","frontend","localstorage","productivity","routing","rxjs","scss","signals","spa","state-management","taskmanager","timetracker","typescript","webapp"],"latest_commit_sha":null,"homepage":"https://daily-task-flow-hazel.vercel.app","language":"SCSS","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/pitercoding.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","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,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2026-04-14T06:48:41.000Z","updated_at":"2026-04-16T17:23:21.000Z","dependencies_parsed_at":null,"dependency_job_id":null,"html_url":"https://github.com/pitercoding/daily-task-flow","commit_stats":null,"previous_names":["pitercoding/daily-task-flow"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/pitercoding/daily-task-flow","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pitercoding%2Fdaily-task-flow","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pitercoding%2Fdaily-task-flow/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pitercoding%2Fdaily-task-flow/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pitercoding%2Fdaily-task-flow/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/pitercoding","download_url":"https://codeload.github.com/pitercoding/daily-task-flow/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pitercoding%2Fdaily-task-flow/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":32575114,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-05-03T06:36:36.687Z","status":"ssl_error","status_checked_at":"2026-05-03T06:36:09.306Z","response_time":103,"last_error":"SSL_read: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"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":["angular","dashboard","frontend","localstorage","productivity","routing","rxjs","scss","signals","spa","state-management","taskmanager","timetracker","typescript","webapp"],"created_at":"2026-05-03T15:39:22.171Z","updated_at":"2026-05-03T15:39:22.897Z","avatar_url":"https://github.com/pitercoding.png","language":"SCSS","funding_links":[],"categories":[],"sub_categories":[],"readme":"\u003ch1 align=\"center\"\u003eDaily Task Flow\u003c/h1\u003e\n\n\u003cp align=\"center\"\u003e\n  \u003cstrong\u003eLanguages:\u003c/strong\u003e\u003cbr\u003e\n  \u003ca href=\"README.pt.md\"\u003ePortuguese\u003c/a\u003e |\n  \u003ca href=\"README.md\"\u003eEnglish\u003c/a\u003e\n\u003c/p\u003e\n\nDaily Task Flow is a **frontend productivity application** built with **Angular** for managing small daily workflows in a simple and visual way. The app combines a task manager, a persistent timer, a manual counter, and a home dashboard to help users stay organized throughout the day.\n\nThe application supports:\n\n- A dashboard with daily task statistics and progress percentage\n- Quick task creation directly from the home screen\n- A task manager with add, complete, undo, and delete actions\n- A persistent timer that keeps counting after page reload\n- A manual counter for quick incremental tracking\n- Sidebar navigation between all app sections\n- Local data persistence using `localStorage`\n\n## Project Motivation\n\nThis project was built to practice Angular fundamentals through a realistic productivity tool instead of isolated demo components.\n\nThe main goal was to create a small but cohesive single-page application that demonstrates:\n\n- navigation with Angular Router\n- state handling with Angular Signals\n- reusable shared components\n- local persistence for a smoother user experience\n- clean UI composition across multiple screens\n\n## Current Features\n\n### Frontend (Angular)\n\n- Home screen with:\n  - welcome section and app overview\n  - task summary cards for total, completed, and pending tasks\n  - progress bar based on completed tasks percentage\n  - recent tasks preview\n  - quick-add task input\n  - shortcut buttons to the main tools\n- Task Manager screen with:\n  - task creation via keyboard enter\n  - task completion toggle\n  - undo action for completed tasks\n  - task removal\n  - visual status badges for `Completed` and `Pending`\n- Timer screen with:\n  - start, pause, and reset controls\n  - running/paused status indicator\n  - persistent elapsed time using `localStorage`\n  - automatic timer recovery after page refresh when running\n- Counter screen with:\n  - increment action\n  - decrement action\n  - reset action\n- Shared UI structure:\n  - reusable page layout with sidebar and router outlet\n  - reusable title component for screen headings\n  - reusable menu and menu item components\n  - active route highlight in sidebar navigation\n\n### Data \u0026 State\n\n- `TasksService` stores tasks with Angular Signals\n- automatic persistence of tasks in `localStorage`\n- default seed tasks when no saved tasks exist\n- computed task metrics for total, completed, and pending counts\n- `TimerService` stores timer state in `localStorage`\n- computed formatted timer output in `MM:SS`\n\n## Application Flow\n\n1. Open the home screen\n2. Review the current task summary and progress\n3. Add a quick task or open the full tasks page\n4. Manage tasks by marking them as completed, undoing, or deleting them\n5. Use the timer screen to track focused work time\n6. Use the counter screen for manual counting when needed\n\n## Technologies\n\n### Frontend\n\n- Angular 21\n- TypeScript\n- Angular Router\n- Angular Signals\n- Angular Material Icons\n- RxJS\n- SCSS\n\n## How to Run Locally\n\n### 1. Clone the repository\n\n```bash\ngit clone https://github.com/pitercoding/daily-task-flow.git\ncd daily-task-flow\n```\n\n### 2. Install dependencies\n\n```bash\ncd frontend\nnpm install\n```\n\n### 3. Start the development server\n\n```bash\nnpm start\n```\n\n### 4. Open the application\n\n- Frontend: `http://localhost:4200`\n\n## Available Scripts\n\nInside `frontend/`, the main scripts are:\n\n```bash\nnpm start\nnpm run build\nnpm test\n```\n\n## Data Persistence Notes\n\n- Tasks are stored in `localStorage` under the `tasks` key\n- Timer start state is stored in `localStorage`\n- If the timer is running and the page reloads, the app restores the elapsed time\n- If there is no saved task list yet, the app initializes a small default task set\n\n## Testing Status\n\nCurrent status:\n\n- the project builds successfully with `npm run build`\n- there are no custom `*.spec.ts` files yet\n- the generated Angular test script is available, but project-specific automated tests are still pending\n\nRecommended next test scope:\n\n- component tests for `Home`, `Tasks`, `Timer`, and `Counter`\n- service tests for `TasksService` and `TimerService`\n- route rendering tests for sidebar navigation\n- localStorage persistence tests for tasks and timer recovery\n\n## Next Improvements\n\n### Product and UX\n\n- Add task editing\n- Add task categories or priorities\n- Add due dates and filtering options\n- Add daily history or archived task views\n- Add responsive behavior improvements for smaller screens\n\n### Engineering\n\n- Add unit tests for components and services\n- Add route guards or future profile-based personalization if authentication is introduced\n- Improve accessibility and keyboard flow\n- Introduce a cleaner persistence abstraction instead of direct service-level localStorage access\n\n### Future Expansion\n\n- Add backend integration for cloud task sync\n- Add authentication and user accounts\n- Add analytics such as focused time per day\n- Add Pomodoro or session-based timer modes\n\n## Folder Structure\n\n```text\ndaily-task-flow/\n|-- frontend/                                # Angular application\n|   |-- public/\n|   |   `-- screenshots/                    # Project screenshots used in the README\n|   |-- src/\n|   |   |-- app/\n|   |   |   |-- components/shared/          # Reusable layout, menu, and title components\n|   |   |   |-- models/                     # App models\n|   |   |   |-- screens/                    # Main app screens\n|   |   |   |   |-- home/\n|   |   |   |   |-- counter/\n|   |   |   |   |-- timer/\n|   |   |   |   `-- tasks/\n|   |   |   |-- services/                   # Task and timer state management\n|   |   |   |-- app.routes.ts               # Application routes\n|   |   |   |-- app.ts                      # Root component\n|   |   |   `-- app.html                    # Root template\n|   |   |-- main.ts                         # Angular bootstrap\n|   |   `-- styles.scss                     # Global styles\n|   |-- angular.json\n|   |-- package.json\n|   `-- package-lock.json\n|-- README.md                                # Documentation (English)\n`-- README.pt.md                             # Documentation (Portuguese)\n```\n\n## Screenshots \u0026 Visuals\n\n### Home Dashboard\n\n![Home Dashboard](frontend/public/screenshots/home_dtf.png)\n\n### Manual Counter\n\n![Manual Counter](frontend/public/screenshots/counter_dtf.png)\n\n### Timer Screen\n\n![Timer Screen](frontend/public/screenshots/timer_dtf.png)\n\n### Task Manager\n\n![Task Manager](frontend/public/screenshots/tasks_dtf.png)\n\n## License\n\nThis project is licensed under the **MIT License**.\n\n## Author\n\n**Piter Gomes** - Computer Science Student (6th Semester) \u0026 Full-Stack Developer\n\n[Email](mailto:piterg.bio@gmail.com) | [LinkedIn](https://www.linkedin.com/in/piter-gomes-4a39281a1/) | [GitHub](https://github.com/pitercoding) | [Portfolio](https://portfolio-pitergomes.vercel.app/)\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fpitercoding%2Fdaily-task-flow","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fpitercoding%2Fdaily-task-flow","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fpitercoding%2Fdaily-task-flow/lists"}