Menu

Tree [2d3bd9] main v1.0.176 /
 History

HTTPS access


File Date Author Commit
 .github 2025-03-20 hunghoang hunghoang [a20f81] chore: update version to 1.0.156 and set releas...
 .storybook 2024-12-06 hunghoang hunghoang [e63895] update
 .vscode 2024-12-09 hunghoang hunghoang [97fa67] fix
 drizzle 2025-04-14 hunghoang hunghoang [713113] feat: add new activities table and update schem...
 public 2025-01-22 hunghoang hunghoang [f36e80] udate
 resources 2025-03-03 hung.calif hung.calif [03054c] update icon windows
 scripts 2025-04-14 hunghoang hunghoang [2d33c3] feat: add automated screenshot generation and i...
 src 2025-04-16 hunghoang hunghoang [7aacf8] chore: update version to 1.0.175 and remove obs...
 .gitignore 2025-04-14 hunghoang hunghoang [2d33c3] feat: add automated screenshot generation and i...
 .hintrc 2024-01-10 ROG ROG [5d95dc] Initial commit
 .npmrc 2025-02-12 hunghoang hunghoang [a175e9] fix fucking bugs
 .prettierignore 2024-03-22 ROG ROG [a34a02] refactor: run Prettier
 .prettierrc 2024-12-06 hunghoang hunghoang [e63895] update
 LICENSE 2024-12-20 Hoang The Hung Hoang The Hung [ac3c72] Fix build GitHub action (#13)
 README.md 2025-04-14 hunghoang hunghoang [2d33c3] feat: add automated screenshot generation and i...
 components.json 2024-12-10 hunghoang hunghoang [6980e6] add sidebar
 design-prompts.md 2024-12-25 hunghoang hunghoang [60adc1] update solution
 drizzle.config.ts 2025-03-20 hunghoang hunghoang [efb2e6] fix
 entitlements.plist 2025-02-08 hunghoang hunghoang [74f1a3] git push
 forge.config.ts 2025-03-20 hunghoang hunghoang [63d28c] fix build
 forge.env.d.ts 2024-12-06 hunghoang hunghoang [e63895] update
 index.html 2024-12-10 hunghoang hunghoang [6980e6] add sidebar
 jest.config.ts 2025-01-23 hung.calif hung.calif [d6177c] update
 package-lock.json 2025-04-16 hunghoang hunghoang [7aacf8] chore: update version to 1.0.175 and remove obs...
 package.json 2025-04-16 hunghoang hunghoang [2d3bd9] chore: bump version to 1.0.176
 playwright.config.ts 2024-12-06 hunghoang hunghoang [e63895] update
 postcss.config.js 2024-12-06 hunghoang hunghoang [e63895] update
 report-solution.md 2024-12-25 hunghoang hunghoang [60adc1] update solution
 sampleData.jsonl 2024-12-04 hunghoang hunghoang [3da852] add convex
 tailwind.config.js 2025-03-25 hunghoang hunghoang [337054] feat: add RichTextEditor for item descriptions ...
 tsconfig.json 2025-02-10 hunghoang hunghoang [62ed5e] Revert changes to restore v1.0.69 state
 vite.base.config.ts 2025-02-13 hunghoang hunghoang [97c824] update
 vite.main.config.ts 2024-12-24 hunghoang hunghoang [b8951a] fix the dynamic import esm
 vite.preload.config.ts 2024-12-06 hunghoang hunghoang [e63895] update
 vite.renderer.config.ts 2024-12-06 hunghoang hunghoang [e63895] update

Read Me

iTracksy

iTracksy is a powerful desktop application for tracking your activities and managing projects efficiently. It provides real-time window activity tracking, project management with boards, and detailed time analytics to help you understand how you spend your time.

Screenshot 2025-03-08 at 20 18 19
Screenshot 2025-03-25 at 14 40 29

Features

  • Activity Tracking: Automatically tracks window activities and provides detailed insights about your application usage
  • Project Management: Organize your work with kanban boards, lists, and cards
  • Time Analytics: View detailed breakdowns of time spent on different applications, domains, and tasks
  • Achievements: Track your productivity goals with focus sessions and receive recognition for your progress
  • Rule-Based Classification: Customize how activities are categorized with a flexible rule system

Technology Stack

Core

  • Electron 32: Cross-platform desktop application framework
  • Vite 5 & SWC: Fast frontend tooling and compilation
  • tRPC: End-to-end typesafe API communication between main and renderer processes

Database

  • Drizzle ORM: Type-safe database operations
  • libSQL: SQLite-compatible client for data storage

UI/UX

  • React & Tailwind CSS: Frontend development
  • Shadcn UI: Component library
  • Geist: Default typography
  • i18next: Internationalization
  • Lucide: Icon library

Development & Testing

  • TypeScript 5: Static typing
  • Zod: Schema validation
  • React Query: Data fetching
  • Jest & Playwright: Testing framework
  • Storybook: Component documentation

Distribution

  • Electron Forge: Building and packaging
  • Squirrel.Windows: Auto-updates
  • GitHub Actions: CI/CD pipeline
  • Azure Code Signing: Certificate signing for Windows

Architecture

iTracksy uses tRPC for type-safe communication between the main and renderer processes:

// In main process (src/api/index.ts)
export const router = t.router({
  getActivities: t.procedure
    .query(async () => {
      return await getActivities();
    }),
  startTracking: t.procedure
    .input(trackingSettingsSchema)
    .mutation(async ({ input }) => {
      // Handle tracking start
    })
});

// In renderer process
const activities = await trpcClient.getActivities.query();

Achievements System

iTracksy includes a powerful achievements system that helps you visualize and celebrate your productivity milestones:

  • Focus Session Tracking: Monitor your dedicated work sessions and see your improvement over time
  • Productivity Percentage: Get insights into how productive your time usage is based on your own classification rules
  • Activity Classification: Track what percentage of your activities have been classified
  • Time-Range Selection: View achievements across different time periods (daily, weekly, monthly)

Rule-Based Classification

The rule system allows you to classify your activities automatically:

  • Custom Rules: Create personalized rules to categorize applications and websites as productive, neutral, or distracting
  • Pattern Matching: Rules can match by application name, window title, or domain
  • Priority System: Rules are applied in order of specificity, with more specific rules taking precedence
  • Rule Management: Easily create, edit, and delete rules through the intuitive interface

Getting Started

Prerequisites

  • Node.js 18 or later
  • npm 9 or later

Development

# Clone repository
git clone https://github.com/hunght/iTracksy.git

# Install dependencies
npm install

# Start development mode
npm run start

Database Management

# Generate new migrations
npm run db:generate

# View and manage database
npm run db:studio

Common Scripts

  • npm run start: Development mode
  • npm run package: Create executable bundle
  • npm run make: Generate platform-specific distributables
  • npm run test: Run unit tests
  • npm run test:e2e: Run end-to-end tests
  • npm run storybook: Start Storybook

Releasing New Versions

npm run release         # Increment patch version (1.0.0 -> 1.0.1)
npm run release minor   # Increment minor version (1.0.0 -> 1.1.0)
npm run release major   # Increment major version (1.0.0 -> 2.0.0)
npm run release 1.2.3   # Set specific version

The GitHub Actions workflow will automatically build, create a release, and upload artifacts.

Troubleshooting

Native Modules in Production Build

Native module issues are handled via packageAfterPrune in forge.config.ts, ensuring proper rebuilding for production.

License

This project is licensed under the MIT License - see the LICENSE file for details.

Want the latest updates on software, tech news, and AI?
Get latest updates about software, tech news, and AI from SourceForge directly in your inbox once a month.