{"id":30876407,"url":"https://github.com/adamj/timetrackerpro","last_synced_at":"2026-05-26T03:03:10.952Z","repository":{"id":313521273,"uuid":"1038002147","full_name":"AdamJ/TimeTrackerPro","owner":"AdamJ","description":"A modern, feature-rich time tracking application built with React, TypeScript, and Tailwind CSS. Perfect for freelancers, consultants, and professionals who need to track time, manage projects, and generate invoices.","archived":false,"fork":false,"pushed_at":"2025-09-06T15:27:02.000Z","size":167,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":0,"default_branch":"main","last_synced_at":"2025-09-06T17:35:17.834Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"TypeScript","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/AdamJ.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,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2025-08-14T13:12:58.000Z","updated_at":"2025-09-06T15:27:05.000Z","dependencies_parsed_at":"2025-09-06T17:46:49.139Z","dependency_job_id":null,"html_url":"https://github.com/AdamJ/TimeTrackerPro","commit_stats":null,"previous_names":["adamj/timetrackerpro"],"tags_count":1,"template":false,"template_full_name":null,"purl":"pkg:github/AdamJ/TimeTrackerPro","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/AdamJ%2FTimeTrackerPro","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/AdamJ%2FTimeTrackerPro/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/AdamJ%2FTimeTrackerPro/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/AdamJ%2FTimeTrackerPro/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/AdamJ","download_url":"https://codeload.github.com/AdamJ/TimeTrackerPro/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/AdamJ%2FTimeTrackerPro/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":274121957,"owners_count":25225801,"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","status":"online","status_checked_at":"2025-09-08T02:00:09.813Z","response_time":121,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"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":[],"created_at":"2025-09-08T02:10:07.881Z","updated_at":"2026-05-26T03:03:10.946Z","avatar_url":"https://github.com/AdamJ.png","language":"TypeScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Timetraked\n\n\u003e Previously TimeTracker Pro\n\nA Progressive Web App (PWA) for time tracking built with React, TypeScript, and Tailwind CSS. Installable on desktop and mobile with full offline support. Built for freelancers, consultants, and professionals who need to track time, manage projects, and generate invoices.\n\n![React](https://img.shields.io/badge/react-%2320232a.svg?style=for-the-badge\u0026logo=react\u0026logoColor=%2361DAFB) ![TypeScript](https://img.shields.io/badge/typescript-%23007ACC.svg?style=for-the-badge\u0026logo=typescript\u0026logoColor=white) ![Vite](https://img.shields.io/badge/vite-%23646CFF.svg?style=for-the-badge\u0026logo=vite\u0026logoColor=white) ![TailwindCSS](https://img.shields.io/badge/tailwindcss-%2338B2AC.svg?style=for-the-badge\u0026logo=tailwind-css\u0026logoColor=white) ![Supabase](https://img.shields.io/badge/Supabase-3ECF8E?style=for-the-badge\u0026logo=supabase\u0026logoColor=white) ![PWA](https://img.shields.io/badge/PWA-Enabled-5A0FC8?style=for-the-badge\u0026logo=pwa\u0026logoColor=white) ![Capacitor](https://img.shields.io/badge/Capacitor-119EFF?style=for-the-badge\u0026logo=capacitor\u0026logoColor=white)\n\n---\n\n## Features\n\n- **Daily Time Tracking** — start/stop your workday with clear daily boundaries\n- **Task Management** — create, edit, and delete tasks with real-time duration tracking\n- **Projects \u0026 Clients** — organize work by project with per-project hourly rates\n- **Revenue Tracking** — automatic earnings calculation based on hourly rates\n- **Custom Categories** — color-coded, billable/non-billable categorization\n- **Rich Text Notes** — GitHub Flavored Markdown in task descriptions\n- **Archive \u0026 Export** — permanent record with CSV, JSON, and invoice export formats\n- **CSV Import** — bring in existing time data from other tools\n- **Weekly Report** — AI-generated work summaries (standup, client, or retrospective tone)\n- **No Account Required** — full functionality with local storage; optional cloud sync via Supabase\n- **PWA + Native iOS** — installable on desktop/mobile; distributed as a native iOS app via Capacitor 8 with Apple HIG-compliant bottom sheets, haptic feedback, status bar theming, keyboard avoidance, and native page transitions\n\n---\n\n## Quick Start\n\n```bash\ngit clone https://github.com/AdamJ/TimeTrackerPro.git\ncd TimeTrackerPro\nnpm install\nnpm run dev\n```\n\nOpen [http://localhost:8080](http://localhost:8080) in your browser.\n\n**First run:** click \"Start Day\" to begin tracking. No configuration required.\n\n**Optional — cloud sync:** copy `.env.example` to `.env` and add your Supabase credentials (see [Authentication \u0026 Storage](README-EXT.md#authentication--storage)).\n\n---\n\n## Available Commands\n\n```bash\n# Development\nnpm run dev              # Start dev server (localhost:8080)\nnpm run build            # Production build\nnpm run preview          # Preview production build\n\n# Code Quality\nnpm run lint             # ESLint\nnpm run test             # Vitest unit tests\n\n# iOS / Capacitor\nnpm run build:ios        # Vite build for iOS (no PWA/auth UI)\nnpm run sync:ios         # build:ios + cap sync ios\n\n# PWA Screenshots\nnpm run screenshots:install   # Install Playwright (first time)\nnpm run screenshots           # Capture screenshots (headless)\n\n# CSV Import Testing\nnpm run test-csv-import\nnpm run test-full-import\nnpm run test-error-handling\n```\n\n---\n\n## Development Setup\n\n**Prerequisites:** Node.js 18+ and npm. Supabase account is optional (guest mode works without it).\n\n```bash\nnpm install\nnpm run dev\n```\n\nBefore committing:\n\n```bash\nnpm run lint \u0026\u0026 npm run build\n```\n\nSee [CLAUDE.md](CLAUDE.md) for code style requirements (tabs, double quotes, `@/` imports). See [README-EXT.md](README-EXT.md) for full developer documentation.\n\n---\n\n## For Developers\n\nDetailed documentation lives in [README-EXT.md](README-EXT.md):\n\n- [How to Use](README-EXT.md#how-to-use) — daily workflow, project/category management, export/import, markdown\n- [Progressive Web App](README-EXT.md#progressive-web-app) — install instructions and PWA feature details\n- [Authentication \u0026 Storage](README-EXT.md#authentication--storage) — storage modes, cloud sync setup, auth flow, security\n- [Technical Architecture](README-EXT.md#technical-architecture) — stack, patterns, data flow, project structure, conventions\n- [Development Workflow](README-EXT.md#development-workflow) — git workflow, testing, adding features\n- [Documentation Index](README-EXT.md#documentation-index) — links to all docs\n- [iOS Screenshots](README-EXT.md#ios-screenshots)\n\n### Contributing\n\nWhen creating an issue or pull request, utilize the templates provided by this repository.\n\nWhen creating a pull request, make sure that the commit message contains one of the accepted prefixes:\n\n| Prefix | Type | Release |\n| ---- | ---- | ---- |\n| `major` | **MAJOR** | Runs _after_ approval |\n| `feat:` / `feature:` / `fix:` | **MINOR (FIX/FEATURE)** | Runs _without_ approval |\n| `patch:` | **PATCH (FIX)** | Runs _without_ approval |\n| `bump:` / `maint:` / `refactor:` / `a11y:` | **PATCH:** | Runs _without_ approval |\n| `docs:` | - | No release |\n\n\u003e **MAJOR** version bumps require approval from code owners.\n\n---\n\n## Changelog\n\nSee [CHANGELOG.md](CHANGELOG.md) for the full history of changes.\n\n**Recent highlights:**\n\n- Native iOS app via Capacitor 8 with iOS-specific build mode (`build:ios` / `sync:ios`)\n- `PageLayout` shared component standardizes page chrome across all pages\n- Incomplete checklist items carry over as todo tasks when archiving a day\n- Weekly Report distinguishes Gemini API failure modes (rate limit, quota, overload, key issues)\n- Fixed Weekly Report for authenticated users (data sourced from Supabase)\n\n---\n\n## License\n\nMIT License — open source and free to use.\n\n---\n\n## Credits\n\n- Originally started with [Lovable](https://lovable.dev) — [learn more](info/README-LOVABLE.md)\n- Badges from [markdown-badges](https://github.com/Ileriayo/markdown-badges)\n- UI components from [shadcn/ui](https://ui.shadcn.com) on [Radix UI](https://www.radix-ui.com)\n- Icons from [Radix Icons](https://www.radix-ui.com/icons) and [Lucide](https://lucide.dev)\n- Built with [React](https://react.dev), [Vite](https://vitejs.dev), and [Supabase](https://supabase.com)\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fadamj%2Ftimetrackerpro","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fadamj%2Ftimetrackerpro","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fadamj%2Ftimetrackerpro/lists"}