Skip to content

hackclub/hackatime-desktop

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Hackatime Desktop

Download for macOS Download for Windows

Release

Desktop app for Hackatime. Built with Tauri, Vue 3, TypeScript, and Rust.

πŸ› οΈ Tech Stack

  • Frontend: Vue 3, TypeScript, Tailwind CSS, Chart.js
  • Backend: Rust (Tauri v2)
  • Build Tools: Vite, pnpm
  • CI/CD: GitHub Actions with Release Please

πŸ“¦ Installation

Build from Source

Prerequisites

Build Steps

# Clone the repository
git clone https://github.com/hackclub/hackatime-desktop.git
cd hackatime-desktop

# Install dependencies
pnpm install

# Run in development mode
pnpm tauri dev

# Build binaries
pnpm tauri build

🀝 Contributing

We welcome contributions! Please follow the guidelines below to ensure smooth collaboration.

Commit Message Convention

This project uses Conventional Commits for automated versioning and changelog generation via Release Please.

Commit Format

<type>: <description>

[optional body]

[optional footer(s)]

Types

Use these commit types for Release Please to automatically detect changes:

  • feat: - A new feature

    git commit -m "feat: add Discord RPC integration"
  • fix: - A bug fix

    git commit -m "fix: resolve authentication timeout issue"
  • chore: - Maintenance tasks, CI/CD, dependencies

    git commit -m "chore: update dependencies"
    git commit -m "chore(ci): update release workflow"

Breaking Changes

For breaking changes that require a major version bump (e.g., 1.0.0 β†’ 2.0.0), add BREAKING CHANGE: in the commit body or use ! after the type:

git commit -m "feat!: migrate to new API v2" -m "BREAKING CHANGE: requires new authentication flow"

Workflow

  1. Fork the repository

  2. Create a feature branch:

    git checkout -b feat/my-new-feature
    # or
    git checkout -b fix/bug-description
  3. Make your changes and commit using conventional commits:

    git add .
    git commit -m "feat: add new statistics chart"
  4. Push to your fork:

    git push origin feat/my-new-feature
  5. Create a Pull Request to the main branch

πŸ”„ How Release Please Works

This project uses Release Please for automated releases. Here's how it works:

Automated Release Process

  1. Commit with Conventional Commits - When you merge commits to main using the conventional commit format (feat:, fix:, chore:)

  2. Release PR Creation - Release Please automatically:

    • Analyzes commit messages since the last release
    • Determines the next version number based on semantic versioning:
      • feat: β†’ minor version bump (1.0.0 β†’ 1.1.0)
      • fix: β†’ patch version bump (1.0.0 β†’ 1.0.1)
      • Breaking changes β†’ major version bump (1.0.0 β†’ 2.0.0)
    • Creates/updates a Release PR with:
      • Updated CHANGELOG.md
      • Bumped version in package.json
      • Bumped version in src-tauri/tauri.conf.json
  3. Release PR Review - The automatically created PR will show:

    • All changes since the last release
    • New version number
    • Updated changelog
  4. Merge to Release - When the Release PR is merged to main:

    • A new GitHub Release is created with the version tag (e.g., app-v1.2.0)
    • The release workflow builds binaries for all platforms
    • Binaries are automatically uploaded to the S3 release bucket
    • The auto-updater manifest is updated for in-app updates

πŸ› Issues & Support

Found a bug or have a feature request? Please open an issue on the GitHub Issues page.


Made with ❀️ by Hack Club

About

Desktop app for hackatime :)

Resources

License

Code of conduct

Contributing

Security policy

Stars

Watchers

Forks

Packages

No packages published

Contributors 2

  •  
  •