A simple, focused time tracking app for developers and professionals who need to track hours spent on projects and tasks.
- Timer-based tracking - Start/stop timer for active work sessions
- Manual entry - Add time entries after the fact
- Projects - Organize time by project with custom colors
- Work items - Track specific tickets, issues, or tasks within projects
- Task types - Categorize work (feature, bug, meeting, review, refactor, etc.)
- Reports - View time summaries by day, week, or custom date range
- Export - Export time data for billing or reporting
- Offline-first - All data stored locally using SQLite
- Framework: React Native with Expo SDK 54
- Navigation: React Navigation 7 (Bottom Tabs)
- State Management: Zustand
- Database: expo-sqlite (SQLite)
- UI Components: React Native Paper
- Language: TypeScript
- Node.js 18+
- npm or yarn
- Expo Go app (for mobile testing) or Android/iOS emulator
# Clone the repository
git clone https://github.com/codepasture/devhours.git
cd devhours
# Install dependencies
npm install
# Start the development server
npm startScan the QR code with Expo Go (Android) or Camera app (iOS) to run on your device.
npm start # Start Expo development server
npm run android # Start on Android
npm run ios # Start on iOS
npm run web # Start web version
npm test # Run tests
npm run test:watch # Run tests in watch mode
npm run test:coverage # Run tests with coverage reportsrc/
├── components/ # Reusable UI components
├── constants/ # App constants (task types, etc.)
├── domain/ # Domain models (Project, TimeEntry, WorkItem)
├── hooks/ # Custom React hooks
├── infrastructure/ # Database and repositories
├── screens/ # App screens
├── store/ # Zustand stores
├── theme/ # Theme configuration
└── utils/ # Utility functions
Contributions are welcome! Please feel free to submit a Pull Request.
GPL-3.0 - See LICENSE for details.