Mindful Time Tracking: Simplify Your Focus and Boost Productivity Effortlessly.

Overview

Mindful Time Tracking: Simplify Your Focus and Boost Productivity Effortlessly.

About

pace is a mindful productivity tool designed to help you keep track of your activities with ease and intention.

Born from the desire to blend simplicity with effectiveness, pace offers a command-line interface (CLI) that encourages focused work sessions, thoughtful reflection on task durations, and a harmonious balance between work and rest.

Whether you're a developer, a writer, or anyone who values structured time management, pace provides the framework to log activities, review progress, and optimize how you spend your time.

With features like the first activity wizard for onboarding new users, real-time configuration validation (upcoming), and personalized activity logs, pace is more than a time tracker β€” it's your partner in crafting a productive and mindful routine.

⚠️ Note: pace is currently in active development and is not yet ready for production use. Expect breaking changes and incomplete features. We encourage you to try it out and provide feedback, but please be aware that it is not yet stable.

Contact

You can ask questions in the Discussions or have a look at the FAQ.

Contact Where?
Issue Tracker GitHub Issues
Discord Discord
Discussions GitHub Discussions

Getting started

Please check our documentation for more information on how to get started.

Installation

From binaries

cargo binstall pace-rs

Windows

scoop bucket add pace https://github.com/pace-rs/pace/
scoop install pace

MacOS

You can use our tap:

brew install pace-rs/homebrew-tap/pace-rs

From GitHub

Check out the releases.

From source

Beware: This installs the latest development version, which might be unstable.

cargo install --git https://github.com/pace-rs/pace.git pace-rs

crates.io

cargo install pace-rs

Usage

Key

βœ… = fully functioning

πŸ” = review and testing in progress

πŸͺ§ = implemented, more testing needed

⏲️ = work in progress

πŸ“œ = design stage

❌ = not implemented, yet

πŸ’‘ = idea

Commands

Note: The following commands are subject to change as the project develops. Currently they are stating the intended functionality and may not be fully implemented yet (e.g. using activities instead of tasks).

βœ… pace setup

  • Description: Create configuration files for pace, including the main configuration file and any additional settings. This is useful for setting up pace for the first time or when you need to change your settings. You can also generate shell completions for your shell of choice. And generate a project configuration file.
  • Usage: pace setup config or pace setup completions

βœ… pace adjust

  • Description: Adjust the current activity's start time, description, category, or tags. This is useful for correcting mistakes or adding more detail to your activities.
  • Usage: pace adjust --category <Category> --description <Description> --start <Start Time>

βœ… pace begin

  • Description: Starts tracking time for the specified task. You can optionally specify a category or project to help organize your tasks.
  • Usage: pace begin "Design Work" --category "Freelance" --start 10:00

βœ… pace end

  • Description: Stops time tracking for the specified task, marking it as completed or finished for the day.
  • Usage: pace end --end 11:30 --only-last

βœ… pace docs

  • Description: Opens the (dev-)documentation in your default browser.
  • Usage: pace docs or pace docs --dev

βœ… pace now

  • Description: Displays the currently running task, showing you at a glance what you're currently tracking.
  • Usage: pace now

βœ… pace hold

  • Description: Pauses the time tracking for the specified task. This is useful for taking breaks without ending the task.
  • Usage: pace hold --reason <Reason>

βœ… pace resume

  • Description: Resumes time tracking for a previously paused task, allowing you to continue where you left off.
  • Usage: pace resume or pace resume --list

⏲️ pace review

  • Description: Gain insight in your activities and tasks. You can specify the time frame for daily, weekly, or monthly insights.
  • Usage: tbd

βœ… pace help

  • Description: Displays help information, offering quick access to command usage and options.
  • Usage: pace help, pace <command> --help, or pace help <command>
Some Ideas For Additional Useful Commands

Note: These commands are not yet implemented and are subject change to during their design process.

πŸ’‘ pace export --json/--csv

  • Description: Exports your tracked data and insights in JSON or CSV format, suitable for analysis or record-keeping.
  • Usage: pace export --csv --from 2021-01-01 --to 2021-01-31

πŸ’‘ pace tasks

  • Description: Lists all tasks with optional filters. Use this to view active, completed, or today's tasks.
  • Usage: pace tasks --active

πŸ’‘ pace projects

  • Description: Lists all projects with optional filters. Use this to view all projects, subprojects and their associated tasks.
  • Usage: pace projects

πŸ’‘ pace pomo

  • Description: Starts a Pomodoro session for the specified task, integrating the Pomodoro technique directly with your tasks.
  • Usage: pace pomo "Study Session"

πŸ’‘ pace set

  • Description: Sets various application configurations, including Pomodoro lengths and preferred review formats.
  • Usage: pace set --work 25 --break 5

Contributing

Found a bug? Open an issue!

Got an idea for an improvement? Don't keep it to yourself!

Please make sure, that you read the contribution guide.

Code of Conduct

Please review and abide by the general Rust Community Code of Conduct when contributing to this project. In the future, we might create our own Code of Conduct and supplement it at this location.

Acknowledgements

Some of the inspiration for pace came from the following projects:

Minimum Rust version policy

This crate's minimum supported rustc version is 1.74.1.

The current policy is that the minimum Rust version required to use this crate can be increased in minor version updates. For example, if crate 1.0 requires Rust 1.20.0, then crate 1.0.z for all values of z will also require Rust 1.20.0 or newer. However, crate 1.y for y > 0 may require a newer minimum version of Rust.

In general, this crate will be conservative with respect to the minimum supported version of Rust.

License

AGPL-3.0-or-later; see LICENSE.

Comments
  • fix(deps): update rust crate open to 5.1.0

    fix(deps): update rust crate open to 5.1.0

    Mend Renovate

    This PR contains the following updates:

    | Package | Type | Update | Change | |---|---|---|---| | open | dependencies | minor | 5.0.2 -> 5.1.0 |


    Release Notes

    Byron/open-rs (open)

    v5.1.0

    Compare Source

    New Features
    • use ShellExecuteW for detached spawning on Windows
    Commit Statistics
    • 3 commits contributed to the release.
    • 2 days passed between releases.
    • 1 commit was understood as conventional.
    • 0 issues like '(#ID)' were seen in commit messages
    Commit Details
    view details
    • Uncategorized
      • Merge pull request #​91 from amrbashir/feat/windows/detachded-using-shellexecutew (b268647)
      • Split into two functions for better readability (4506b2f)
      • Use ShellExecuteW for detached spawning on Windows (191cb0e)

    Configuration

    πŸ“… Schedule: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined).

    🚦 Automerge: Disabled by config. Please merge this manually once you are satisfied.

    β™» Rebasing: Never, or you tick the rebase/retry checkbox.

    πŸ”• Ignore: Close this PR and you won't be reminded about this update again.


    • [ ] If you want to rebase/retry this PR, check this box

    This PR has been generated by Mend Renovate. View repository job log here.

    A-dependencies 
    opened by renovate[bot] 1
  • chore(deps): lock file maintenance

    chore(deps): lock file maintenance

    Mend Renovate

    This PR contains the following updates:

    | Update | Change | |---|---| | lockFileMaintenance | All locks refreshed |

    πŸ”§ This Pull Request updates lock files to use the latest dependency versions.


    Configuration

    πŸ“… Schedule: Branch creation - "before 4am on the first day of the month" (UTC), Automerge - At any time (no schedule defined).

    🚦 Automerge: Enabled.

    β™» Rebasing: Never, or you tick the rebase/retry checkbox.

    πŸ‘» Immortal: This PR will be recreated if closed unmerged. Get config help if that's undesired.


    • [ ] If you want to rebase/retry this PR, check this box

    This PR has been generated by Mend Renovate. View repository job log here.

    A-dependencies 
    opened by renovate[bot] 1
  • fix(deps): update rust crate rusqlite to 0.31.0

    fix(deps): update rust crate rusqlite to 0.31.0

    Mend Renovate

    This PR contains the following updates:

    | Package | Type | Update | Change | |---|---|---|---| | rusqlite | dependencies | minor | 0.30.0 -> 0.31.0 |


    Release Notes

    rusqlite/rusqlite (rusqlite)

    v0.31.0: 0.31.0

    Compare Source

    What's Changed

    Full Changelog: https://github.com/rusqlite/rusqlite/compare/v0.30.0...v0.31.0


    Configuration

    πŸ“… Schedule: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined).

    🚦 Automerge: Disabled by config. Please merge this manually once you are satisfied.

    β™» Rebasing: Never, or you tick the rebase/retry checkbox.

    πŸ”• Ignore: Close this PR and you won't be reminded about this update again.


    • [ ] If you want to rebase/retry this PR, check this box

    This PR has been generated by Mend Renovate. View repository job log here.

    A-dependencies 
    opened by renovate[bot] 1
  • chore(deps): update taiki-e/install-action digest to 6943331

    chore(deps): update taiki-e/install-action digest to 6943331

    Mend Renovate

    This PR contains the following updates:

    | Package | Type | Update | Change | |---|---|---|---| | taiki-e/install-action | action | digest | 3ed9916 -> 6943331 |


    Configuration

    πŸ“… Schedule: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined).

    🚦 Automerge: Disabled by config. Please merge this manually once you are satisfied.

    β™» Rebasing: Never, or you tick the rebase/retry checkbox.

    πŸ”• Ignore: Close this PR and you won't be reminded about this update again.


    • [ ] If you want to rebase/retry this PR, check this box

    This PR has been generated by Mend Renovate. View repository job log here.

    A-dependencies 
    opened by renovate[bot] 1
  • chore(deps): update taiki-e/install-action digest to 6f9c817

    chore(deps): update taiki-e/install-action digest to 6f9c817

    Mend Renovate

    This PR contains the following updates:

    | Package | Type | Update | Change | |---|---|---|---| | taiki-e/install-action | action | digest | 3ed9916 -> 6f9c817 |


    Configuration

    πŸ“… Schedule: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined).

    🚦 Automerge: Disabled by config. Please merge this manually once you are satisfied.

    β™» Rebasing: Never, or you tick the rebase/retry checkbox.

    πŸ”• Ignore: Close this PR and you won't be reminded about this update again.


    • [ ] If you want to rebase/retry this PR, check this box

    This PR has been generated by Mend Renovate. View repository job log here.

    A-dependencies 
    opened by renovate[bot] 1
  • chore(deps): update taiki-e/install-action digest to bd71f12

    chore(deps): update taiki-e/install-action digest to bd71f12

    Mend Renovate

    This PR contains the following updates:

    | Package | Type | Update | Change | |---|---|---|---| | taiki-e/install-action | action | digest | 3ed9916 -> bd71f12 |


    Configuration

    πŸ“… Schedule: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined).

    🚦 Automerge: Disabled by config. Please merge this manually once you are satisfied.

    β™» Rebasing: Never, or you tick the rebase/retry checkbox.

    πŸ”• Ignore: Close this PR and you won't be reminded about this update again.


    • [ ] If you want to rebase/retry this PR, check this box

    This PR has been generated by Mend Renovate. View repository job log here.

    A-dependencies 
    opened by renovate[bot] 1
  • chore(deps): update taiki-e/install-action digest to 14422f8

    chore(deps): update taiki-e/install-action digest to 14422f8

    Mend Renovate

    This PR contains the following updates:

    | Package | Type | Update | Change | |---|---|---|---| | taiki-e/install-action | action | digest | 3ed9916 -> 14422f8 |


    Configuration

    πŸ“… Schedule: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined).

    🚦 Automerge: Disabled by config. Please merge this manually once you are satisfied.

    β™» Rebasing: Never, or you tick the rebase/retry checkbox.

    πŸ”• Ignore: Close this PR and you won't be reminded about this update again.


    • [ ] If you want to rebase/retry this PR, check this box

    This PR has been generated by Mend Renovate. View repository job log here.

    A-dependencies 
    opened by renovate[bot] 1
  • chore(deps): update taiki-e/install-action digest to 27e3d94

    chore(deps): update taiki-e/install-action digest to 27e3d94

    Mend Renovate

    This PR contains the following updates:

    | Package | Type | Update | Change | |---|---|---|---| | taiki-e/install-action | action | digest | 3ed9916 -> 27e3d94 |


    Configuration

    πŸ“… Schedule: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined).

    🚦 Automerge: Disabled by config. Please merge this manually once you are satisfied.

    β™» Rebasing: Never, or you tick the rebase/retry checkbox.

    πŸ”• Ignore: Close this PR and you won't be reminded about this update again.


    • [ ] If you want to rebase/retry this PR, check this box

    This PR has been generated by Mend Renovate. View repository job log here.

    A-dependencies 
    opened by renovate[bot] 1
  • chore(deps): update dependency ubuntu to v22

    chore(deps): update dependency ubuntu to v22

    Mend Renovate

    This PR contains the following updates:

    | Package | Type | Update | Change | |---|---|---|---| | ubuntu | github-runner | major | 20.04 -> 22.04 |


    Configuration

    πŸ“… Schedule: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined).

    🚦 Automerge: Disabled by config. Please merge this manually once you are satisfied.

    β™» Rebasing: Never, or you tick the rebase/retry checkbox.

    πŸ”• Ignore: Close this PR and you won't be reminded about this update again.


    • [ ] If you want to rebase/retry this PR, check this box

    This PR has been generated by Mend Renovate. View repository job log here.

    A-dependencies 
    opened by renovate[bot] 1
  • chore(deps): update embarkstudios/cargo-deny-action digest to 68cd9c5

    chore(deps): update embarkstudios/cargo-deny-action digest to 68cd9c5

    Mend Renovate

    This PR contains the following updates:

    | Package | Type | Update | Change | |---|---|---|---| | EmbarkStudios/cargo-deny-action | action | digest | 2fad080 -> 68cd9c5 |


    Configuration

    πŸ“… Schedule: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined).

    🚦 Automerge: Disabled by config. Please merge this manually once you are satisfied.

    β™» Rebasing: Never, or you tick the rebase/retry checkbox.

    πŸ”• Ignore: Close this PR and you won't be reminded about this update again.


    • [ ] If you want to rebase/retry this PR, check this box

    This PR has been generated by Mend Renovate. View repository job log here.

    A-dependencies 
    opened by renovate[bot] 1
  • chore(deps): update rust crate insta to 1.36.1

    chore(deps): update rust crate insta to 1.36.1

    Mend Renovate

    This PR contains the following updates:

    | Package | Type | Update | Change | |---|---|---|---| | insta (source) | dev-dependencies | patch | 1.36.0 -> 1.36.1 | | insta (source) | dependencies | patch | 1.36.0 -> 1.36.1 |


    Release Notes

    mitsuhiko/insta (insta)

    v1.36.1

    Compare Source

    • Fix an ownership issue introduced in 1.36 with snapshot assertions. #​453

    Configuration

    πŸ“… Schedule: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined).

    🚦 Automerge: Disabled by config. Please merge this manually once you are satisfied.

    β™» Rebasing: Never, or you tick the rebase/retry checkbox.

    πŸ”• Ignore: Close this PR and you won't be reminded about these updates again.


    • [ ] If you want to rebase/retry this PR, check this box

    This PR has been generated by Mend Renovate. View repository job log here.

    A-dependencies 
    opened by renovate[bot] 0
  • chore: release

    chore: release

    πŸ€– New release

    • pace_cli: 0.4.1 -> 0.4.2 (βœ“ API compatible changes)
    • pace_core: 0.14.0 -> 0.15.0 (⚠️ API breaking changes)
    • pace-rs: 0.12.0 -> 0.13.0 (βœ“ API compatible changes)

    ⚠️ pace_core breaking changes

    --- failure inherent_method_missing: pub method removed or renamed ---
    
    Description:
    A publicly-visible method or associated fn is no longer available under its prior name. It may have been renamed or removed entirely.
            ref: https://doc.rust-lang.org/cargo/reference/semver.html#item-remove
           impl: https://github.com/obi1kenobi/cargo-semver-checks/tree/v0.29.1/src/lints/inherent_method_missing.ron
    
    Failed in:
      ActivityStore::new, previously in file /tmp/.tmpgABIhz/pace_core/src/service/activity_store.rs:42
    
    Changelog

    pace_cli

    0.4.2 - 2024-03-06

    Other

    • pull out art for easier replacement

    pace_core

    0.15.0 - 2024-03-06

    Other

    • (debug) use tracing and debug! macro to add some more structured logging to pace_core (#70)
    • (error) [breaking] remove expect/unwrap from codebase (#69)
    • (deps) update rust crate insta to 1.36.1 (#68)
    • (deps) update rust crate insta to 1.36.0 (#66)

    pace-rs

    0.13.0 - 2024-03-06

    Other

    • pull out art for easier replacement
    • (debug) use tracing and debug! macro to add some more structured logging to pace_core (#70)
    • (error) [breaking] remove expect/unwrap from codebase (#69)
    • (deps) move insta to dev dependencies
    • (deps) update rust crate insta to 1.36.1 (#68)
    • (deps) update rust crate insta to 1.36.0 (#66)


    This PR was generated with release-plz.

    opened by simonsan 0
  • Improve Testability and Increase Code Coverage for Pace

    Improve Testability and Increase Code Coverage for Pace

    Overview

    As Pace continues to grow and evolve, ensuring high-quality code becomes increasingly critical. This issue aims to address the current gaps in test coverage and testability of the Pace project and its libraries. By focusing on enhancing our testing infrastructure and practices, we can significantly reduce bugs, improve stability, and ensure that new features meet our standards for quality and reliability.

    Objectives

    • Assess Current Testing Framework: Evaluate the existing testing setup and identify areas for improvement.
    • Increase Test Coverage: Identify critical areas of the codebase that are currently under-tested or not tested at all.
    • Improve Testability of the Code: Refactor code where necessary to make it more amenable to unit and integration testing.
    • Integrate Additional Testing Tools: Explore and integrate tools for coverage analysis, fuzz testing, and other advanced testing methodologies.
    • Establish Testing Best Practices: Develop guidelines for writing effective tests and ensuring high-quality code.

    Action Items

    1. Codebase Audit for Test Coverage

      • [x] Conduct a thorough audit of the current test suite to identify coverage gaps.
      • [x] Create a list of components with insufficient tests.
    2. Refactor for Testability

      • [x] Identify and refactor tightly coupled components that hinder testability.
    3. Expand Test Suite

      • [x] Write additional unit tests to cover critical logic and functionality.
    4. Tooling Integration

      • [X] Set up a code coverage tool (we use cargo-tarpaulin)
      • [x] Evaluate and integrate additional testing tools as needed.
    5. Documentation and Guidelines

      • [ ] Document testing best practices and guidelines for contributors.
      • [ ] Include examples of effective tests and common patterns to avoid.
    6. Continuous Improvement

      • [ ] Establish a process for regularly reviewing and improving test coverage.
      • [ ] Encourage contributions focused on testing via GitHub issues and pull requests.

    Request for Contributions

    We welcome contributions from the community to help achieve these objectives. Whether it's writing tests, refactoring for better testability, or improving our testing infrastructure, every contribution counts. If you're interested in helping, please comment on this issue with the areas you'd like to work on, or propose new ideas for enhancing our testing practices.

    Conclusion

    Improving testability and increasing code coverage are essential steps toward maintaining the Pace project's quality and reliability. With a solid testing foundation, we can confidently continue to develop and expand Pace, knowing that we have the practices and infrastructure in place to ensure its stability and performance.

    A-testing C-enhancement 
    opened by simonsan 0
  • Dependency Dashboard

    Dependency Dashboard

    This issue lists Renovate updates and detected dependencies. Read the Dependency Dashboard docs to learn more.

    Pending Approval

    These branches will be created by Renovate only once you click their checkbox below.

    • [ ] chore(deps): update actions/upload-artifact action to v4

    Awaiting Schedule

    These updates are awaiting their schedule. Click on a checkbox to get an update now.

    • [ ] chore(deps): lock file maintenance

    Ignored or Blocked

    These are blocked by an existing closed PR and will not be recreated unless you click a checkbox below.

    Detected dependencies

    cargo
    Cargo.toml
    • chrono 0.4.34
    • clap_complete 4.5.1
    • dialoguer 0.11.0
    • directories 5.0.1
    • human-panic 1.2.3
    • serde 1
    • serde_derive 1
    • thiserror 1.0.57
    • toml 0.8.10
    • abscissa_core 0.7.0
    • abscissa_core 0.7.0
    • assert_cmd 2.0.14
    • insta 1.36.1
    • insta-cmd 0.5.0
    • once_cell 1.19
    • predicates 3.1.0
    • tempfile 3.10.1
    • clap 4
    • eyre 0.6.12
    • similar-asserts 1.5.0
    crates/cli/Cargo.toml
    • chrono 0.4.34
    • dialoguer 0.11.0
    • eyre 0.6.12
    • getset 0.1.2
    • tracing 0.1.40
    • typed-builder 0.18.1
    crates/core/Cargo.toml
    • chrono 0.4.34
    • directories 5.0.1
    • displaydoc 0.2.4
    • enum_dispatch 0.3.12
    • getset 0.1.2
    • itertools 0.12.1
    • merge 0.1.0
    • miette 7.1.0
    • open 5.1.0
    • parking_lot 0.12.1
    • rayon 1.9.0
    • rusqlite 0.31.0
    • serde 1.0.197
    • serde_derive 1.0.197
    • strum 0.26.1
    • strum_macros 0.26.1
    • thiserror 1.0.57
    • toml 0.8.10
    • tracing 0.1.40
    • typed-builder 0.18.1
    • ulid 1.1.2
    • insta 1.36.1
    • rstest 0.18.2
    xtask/Cargo.toml
    • dialoguer 0.11.0
    • duct 0.13.7
    • fs_extra 1.3.0
    • glob 0.3.1
    github-actions
    .github/workflows/audit.yaml
    • actions/checkout v4
    • dtolnay/rust-toolchain v1
    • Swatinem/rust-cache v2
    • rustsec/audit-check v1
    • actions/checkout v4
    • EmbarkStudios/cargo-deny-action v1
    • actions/checkout v4
    • actions/checkout v4
    .github/workflows/ci.yaml
    • actions/checkout v4
    • dtolnay/rust-toolchain v1
    • actions/checkout v4
    • dtolnay/rust-toolchain v1
    • Swatinem/rust-cache v2
    • actions/checkout v4
    • actions/checkout v4
    • dtolnay/rust-toolchain v1
    • Swatinem/rust-cache v2
    • actions/upload-artifact v3
    • actions/checkout v4
    • actions/checkout v4
    • dtolnay/rust-toolchain v1
    • Swatinem/rust-cache v2
    • actions/checkout v4
    • taiki-e/install-action v2
    • actions/checkout v4
    .github/workflows/lint-docs.yaml
    • actions/checkout v4
    • dprint/check v2.2
    .github/workflows/release-plz.yml
    • actions/checkout v4
    • MarcoIeni/release-plz-action v0.5
    .github/workflows/release.yml
    • actions/checkout v4
    • actions/upload-artifact v4
    • actions/checkout v4
    • swatinem/rust-cache v2
    • actions/download-artifact v4
    • actions/upload-artifact v4
    • actions/checkout v4
    • actions/download-artifact v4
    • actions/upload-artifact v4
    • actions/checkout v4
    • actions/download-artifact v4
    • actions/upload-artifact v4
    • actions/checkout v4
    • actions/download-artifact v4
    • actions/checkout v4
    • actions/download-artifact v4
    • ncipollo/release-action v1
    • ubuntu 20.04
    • ubuntu 20.04
    • ubuntu 20.04
    • ubuntu 20.04

    • [ ] Check this box to trigger a request for Renovate to run again on this repository
    A-dependencies 
    opened by renovate[bot] 0
  • Implement First Activity Wizard for Enhanced User Onboarding

    Implement First Activity Wizard for Enhanced User Onboarding

    Overview

    To further enhance the onboarding experience for new pace users, we propose the addition of a "First Activity Wizard." This interactive guide will walk users through the process of logging their first activity, demonstrating the core functionality of pace and ensuring users are comfortable with the basics of the tool from the outset.

    Objectives

    • Simplify Initial Learning Curve: Make it easier for new users to understand how to log activities with pace.
    • Demonstrate Key Features: Highlight essential features and commands as part of the user's first interaction with the tool.
    • Engage Users Immediately: Engage users by having them actively use pace as part of the setup process, improving retention and satisfaction.

    Proposed Enhancements

    1. Wizard Design and Flow

      • [ ] Design a step-by-step flow for the First Activity Wizard, outlining each step from invoking the wizard to successfully logging the first activity.
      • [ ] Include brief explanations or tips about key features and best practices.
    2. Interactive CLI Implementation

      • [ ] Utilize clap, dialoguer, or similar crates to create interactive prompts guiding the user through the activity logging process.
      • [ ] Ensure the wizard is accessible to users with different levels of CLI experience.
    3. Validation and Feedback Mechanisms

      • [ ] Implement input validation for each step, providing real-time feedback to guide users in correcting errors.
      • [ ] On successful completion of the wizard, provide positive feedback and suggestions for next steps or additional resources.
    4. Documentation and Help Integration

      • [ ] Offer options during the wizard to access more detailed documentation or help for each step.
      • [ ] Include a way to invoke the wizard again in the future, for users who want a refresher.

    Request for Comments (RFC)

    Feedback and ideas are welcome on several fronts:

    • Suggestions for the essential steps and information to include in the First Activity Wizard.
    • Ideas for making the wizard engaging and informative without being overwhelming.
    • Experiences with similar onboarding tools or wizards in CLI applications that could inform the design of this feature.

    Conclusion

    The First Activity Wizard is envisioned as a key part of making pace accessible and inviting to new users. By guiding them through logging their first activity, we aim to demystify the process and showcase the simplicity and value of using pace for productivity tracking. This enhancement is about building confidence and competence in new users, setting them up for success with pace.

    A-cli A-docs A-ui-ux C-enhancement 
    opened by simonsan 0
  • Introduce Real-Time Configuration Validation in `pace craft setup`

    Introduce Real-Time Configuration Validation in `pace craft setup`

    Overview

    While the pace craft setup command has significantly improved the onboarding experience, there's an opportunity to enhance it further by introducing real-time validation for user inputs. This feature aims to ensure that all configuration values provided by users during the setup process are validated on-the-fly, minimizing common configuration errors and streamlining the setup experience.

    Objectives

    • Enhance User Experience: Provide immediate feedback on configuration inputs to help users correct errors in real-time.
    • Reduce Setup Time: Decrease the time users spend on setup by preventing configuration mistakes that require reconfiguration.
    • Improve Reliability: Increase the reliability of the pace setup process by ensuring only valid configurations are saved.

    Proposed Enhancements

    1. Real-Time Input Validation

      • [ ] Implement input validation logic that checks user inputs as they are entered during the setup process.
      • [ ] Provide immediate feedback to users if the input is invalid, along with helpful error messages or suggestions for correction.
      • [ ] Use validator crate
    2. Extended Configuration Options

      • [ ] Expand the pace craft setup command to include prompts for additional configuration values, enhancing customization options for users.
      • [ ] Ensure each new configuration option includes specific validation rules based on expected input formats, value ranges, or other criteria.
    3. Validation Framework Integration

      • [ ] Integrate or develop a validation framework capable of handling various types of inputs and validation rules.
      • [ ] Allow for easy extension of the validation framework to support future configuration options.

    Request for Comments (RFC)

    I invite all contributors, especially those with experience in CLI tools and user input validation, to provide their feedback and suggestions on:

    • Best practices for implementing real-time validation in command-line interfaces.
    • Ideas for additional configuration options that could benefit from real-time validation.
    • Recommendations for existing Rust crates or libraries that facilitate input validation and error handling.

    Conclusion

    By introducing real-time validation for configuration inputs in the pace craft setup command, we aim to make the onboarding process even smoother and more user-friendly. This enhancement will not only save users time by preventing common mistakes but also strengthen the overall reliability of the pace configuration process.

    A-cli A-config A-ui-ux C-enhancement 
    opened by simonsan 0
Releases(pace_core-v0.14.0)
Owner
pace
Mindful Time Tracking: CLI Tool to Boost Focus and Enhance Productivity.
pace
Rust wrapper for the LeapC Ultraleap (Leap Motion) hand tracking device API.

LeapRS LeapRS is a safe wrapper for LeapC, the Leap Motion C API. It uses the generated binding provided by leap-sys. This is an API for accessing Lea

Pierre LulΓ© 4 Oct 10, 2022
A new blockchain architecture under active development, with a strong focus on scalability, privacy and safety

Project Slingshot Accelerating trajectory into interstellar space. Slingshot is a new blockchain architecture under active development, with a strong

Stellar 378 Dec 18, 2022
Rust crate: Overloaded Literals to construct your datatypes without boilerplate and with compile-time validation.

overloaded_literals   Overloaded Literals to construct your datatypes without boilerplate and with compile-time validation. Features Compile-time vali

Qqwy / Marten 6 Apr 14, 2023
Fast and simple datetime, date, time and duration parsing for rust.

speedate Fast and simple datetime, date, time and duration parsing for rust. speedate is a lax† RFC 3339 date and time parser, in other words, it pars

Samuel Colvin 43 Nov 25, 2022
Compile-time stuff and other goodies for rustaceans πŸ¦€

?? bagel: Always baked, never fried bagel is a collection of macros and other things that we frequently use at Skytable, primarily to get work done at

Skytable 3 Jul 4, 2022
Parses a relative time string and returns a `Duration`

humantime_to_duration A Rust crate for parsing human-readable relative time strings and converting them to a Duration. Features Parses a variety of hu

null 5 Apr 25, 2023
Safe, comp time generated queries in rust

query_builder For each struct field following methods will be generated. All fields where_FIELDNAME_eq Numeric fields where_FIELDNAME_le where_FIELDNA

Amirreza Askarpour 2 Oct 31, 2021
A real-time mixer

Pagana Pagana is a real-time mixer. This project is still in early stages of development and is not ready for any kind of production use or testing. D

null 1 Nov 26, 2021
Compile time static maps for Rust

Rust-PHF Documentation Rust-PHF is a library to generate efficient lookup tables at compile time using perfect hash functions. It currently uses the C

null 1.3k Jan 1, 2023
Isn't it time to be a bit nicer to rustc?

politeness-macro Aren't we all too rude to computers? Isn't it time to bring a bit more politeness into our programming? Shouldn't we be a bit nicer t

Rin 6 Mar 11, 2022
Simple time handling in Rust

time Documentation: latest release main branch book Minimum Rust version policy The time crate is guaranteed to compile with any release of rustc from

Time 680 Dec 31, 2022
A real-time data backend for browser-based applications.

DriftDB DriftDB is a real-time data backend for browser-based applications. For more information, see driftdb.com. Structure of this repo docs/: main

drifting in space 453 Feb 6, 2023
Time to dive into Rust!

Lets-Learn-Rust Time to dive into Rust! Day 1 Installation Running a Simple Rust Program Managing Projects with Cargo Basic Programming - Comments and

null 6 Jun 10, 2023
A perfect smoother; A discrete time version of spline smoothing for equally spaced data

Whittaker Smoother Aka Whittaker-Henderson, Whittaker-Eilers Smoother is known as the perfect smoother. Its a discrete-time version of spline smoothin

Mathis Wellmann 3 Aug 12, 2023
πŸ¦€ A Rust CLI to find the optimal time to meet given a when2meet URL

when3meet ?? The Rust when2meet CLI Install | Usage | Contributing & Issues | Docs Built with ❀️ and ?? by Garrett Ladley Install cargo install when3m

Garrett Ladley 4 Sep 18, 2023
Construct complex structures within single call + simple compile-time meta-inheritance model with mixins.

Introduction constructivism is a Rust sample-library designed to simplify the construction of structured data by defining and manipulating sequences o

polako.rs 5 Oct 24, 2023
Some UwU and OwO for your Rust code

UwU Types Some UwU and OwO for your Rust code This is a Rust crate inspired by this tweet from @thingskatedid / @katef. Credits Some extra functionali

Evan Pratten 12 Feb 8, 2022
TypeRust - simple Rust playground where you can build or run your Rust code and share it with others

Rust playground Welcome to TypeRust! This is a simple Rust playground where you can build or run your Rust code and share it with others. There are a

Kirill Vasiltsov 28 Dec 12, 2022