Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

User behavior data collection #947

Open
yurii-yu opened this issue Jan 17, 2025 · 1 comment
Open

User behavior data collection #947

yurii-yu opened this issue Jan 17, 2025 · 1 comment
Labels
enhancement New feature or request

Comments

@yurii-yu
Copy link
Contributor

As a developer, I want know the general user behaviors so that I can improve the user experience.

It would be the best, if there is a way to observe the behavior of user. Then we know a lot aspects about the end-user experience.

for example

  1. which commands do our users type most frequently?
  2. which errors occur most frequently?
  3. Is there any misunderstanding of the commands? then we can improve either the interface or the documents
  4. which commands last for the longest time? is there any chance to optimize this?
@yurii-yu yurii-yu added the enhancement New feature or request label Jan 17, 2025
@github-project-automation github-project-automation bot moved this to 🆕 New in IDEasy board Jan 17, 2025
@hohwille
Copy link
Member

How would we store such data?
IMHO adding a database to IDEasy could be overkill. So add a JSON file? Will that be centrally for all projects in $IDE_ROOT/_ide?
If so how would we prevent file corruption due to concurrent invocations of IDEasy?

Can we already design the data-structure:

  • «tool»:
    • «additional arguments»:
      • error
        • «error-codes»: «number-of-occurences»
      • success
        • «average-duration» (or better "total duration" + "number of runs" so we can build average with high precision and less rounding errors?)

Example:

{
  "mvn": {
    "clean install": {
      "error": {
        "1": 297
      },
      "success": {
        "duration": 12345678901234,
        "runs": 931
      }
    }
  },
 "install": {
    "mvn": {
       ...
    }
  },
  "update": {
    "": {
      ...
    }
  },
  ...
}

Are there best-practices on the web how to do such things? Maybe an existing library to reuse?

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
enhancement New feature or request
Projects
Status: 🆕 New
Development

No branches or pull requests

2 participants