Skip to content

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.

Notifications You must be signed in to change notification settings

AdamJ/TimeTrackerPro

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

23 Commits
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

TimeTracker Pro

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.

GitHub Copilot GitHub Actions Supabase TailwindCSS

πŸ” Authentication & Data Storage

NEW: TimeTracker Pro now supports both authenticated and guest usage!

  • πŸ”„ Cloud Sync: Sign in with Supabase to sync data across devices
  • πŸ’Ύ Local Storage: Use without an account - data stays on your device
  • πŸ”„ Data Migration: Existing data automatically migrates when you sign in
  • ⚑ Offline-First: Full functionality available with or without internet

See AUTHENTICATION.md for detailed setup instructions.

✨ Features

Core Time Tracking

  • Start/Stop Day Tracking: Begin and end your work day with clear boundaries
  • Task Management: Create, edit, and delete tasks with real-time duration tracking
  • Project & Client Organization: Assign tasks to specific projects and clients
  • Persistent Data: Data saved to localStorage (guest) or Supabase (authenticated)

Advanced Features

  • Archive System: Complete days are archived with full task details
  • Export Capabilities: Export data as CSV or JSON for external use
  • Invoice Generation: Generate invoice data for specific clients and date ranges
  • Project Management: Create projects with hourly rates and client assignments
  • Print Support: Print-friendly archive views for physical records

Professional Tools

  • Revenue Tracking: Automatic calculation of earnings based on hourly rates
  • Time Analytics: View total hours and revenue across all projects
  • Data Export: Multiple export formats for integration with accounting software
  • Mobile Responsive: Works seamlessly on desktop and mobile devices

πŸš€ Quick Start

Installation

# Clone the repository
git clone <YOUR_GIT_URL>

# Navigate to project directory
cd <YOUR_PROJECT_NAME>

# Install dependencies
npm install

# πŸ”’ IMPORTANT: Setup environment variables for cloud sync (optional)
cp .env.example .env
# Edit .env with your Supabase credentials (see .env.example for instructions)

# Start development server
npm run dev

First Time Setup

  1. πŸ”’ Environment Setup (Optional - for cloud sync):
    • Copy .env.example to .env
    • Add your Supabase URL and anon key (see .env.example for detailed instructions)
    • ⚠️ Never commit .env to version control!
  2. Start Your First Day: Click "Start Day" to begin time tracking
  3. Authentication (Optional): Click "Sign In" in the top-right corner to enable cloud sync
  4. Add Projects (Optional): Go to Archive β†’ Projects to set up your clients and hourly rates
  5. Create Tasks: Use "New Task" to start tracking specific work items
  6. End Your Day: Click "End Day" when finished, then "Post Time to Archive"

πŸ“± Usage Guide

Daily Workflow

  1. Morning: Click "Start Day" to begin tracking
  2. Throughout the day: Create new tasks as you switch between different work items
  3. Evening: Click "End Day" to stop tracking and review your summary
  4. Archive: Click "Post Time to Archive" to save the day permanently

Project Management

  • Access via Archive β†’ Projects button
  • Set up clients with hourly rates for automatic revenue calculation
  • Assign projects to tasks for better organization

Data Export

  • Access via Archive β†’ Export button
  • Choose from CSV, JSON, or Invoice formats
  • Filter by date range for specific periods
  • Perfect for submitting timesheets to employers or generating client invoices

πŸ›  Technical Details

Built With

  • React 18 with TypeScript for type safety
  • Tailwind CSS for responsive styling
  • shadcn/ui for beautiful, accessible components
  • React Router for navigation
  • Local Storage for data persistence

Architecture

  • Context API for state management
  • Custom hooks for reusable logic
  • Component-based architecture for maintainability
  • Responsive design for all device sizes

Data Storage

  • By default, all data is stored locally in your browser
  • Optionally, data can be stored in a Supabase project
  • No external servers or accounts required
  • Data persists between sessions
  • Export capabilities for backup and integration

🎯 Perfect For

  • Freelancers: Track billable hours and generate client invoices
  • Consultants: Organize time by project and client
  • Remote Workers: Submit detailed timesheets to employers
  • Students: Track study time and project work
  • Anyone: Who needs professional time tracking without the complexity

πŸ”§ Development

Available Scripts

  • npm run dev - Start development server
  • npm run build - Build for production
  • npm run preview - Preview production build
  • npm run lint - Run ESLint
  • npm run test-full-import - Run test of full CSV import
  • npm run test-error-handling - Run test of CSV import error handling
  • npm run test-csv-import - Run test of standard CSV import

Project Structure

src/
β”œβ”€β”€ components/         # Reusable UI components
β”œβ”€β”€ config/             # Category and Project configuration files
β”œβ”€β”€ contexts/           # React Context providers
β”œβ”€β”€ hooks/              # Use files
β”œβ”€β”€ lib/                # Libraries
β”œβ”€β”€ pages/              # Main application pages
β”œβ”€β”€ services/           # Data service configuration
└── utils/              # Utility functions

Supporting Documents

  • Security - Configuration for project security with Chat Agents
  • Scheme Compatibility - Chat record of updating DB schema for Supabase
  • Chatbot Notes - Chat records from interactions with GitHub CoPilot
  • Authentication - Record for how authentication was configured and is handled
  • Data Persistence - Record on how data persistence issues were fixed
  • CSV Templates - Available CSV templates for importing, testing, and exporting of time entries
  • Migration - Document for migrating data to Supabase database
  • ChatGPT Features - Notes from ChatGPT related to updates and improvements requests

Agents

AGENTS.md

  • Styles - Rules to govern the style choices for Agents
  • Pull Requests - Rules for Agents to create pull requests

Local Agents

  • Project Rules - Setting project rules when using the local agent editor extension "Continue"

πŸ“„ License

This project is open source and available under the MIT License.


Ready to take control of your time? Start tracking today and see where your hours really go!


About

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.

Topics

Resources

Security policy

Stars

Watchers

Forks

Contributors 2

  •  
  •