Skip to content

Periodically asks the user about their current activity and logs it for analysis.

License

Notifications You must be signed in to change notification settings

falkoschumann/activity-sampling

Repository files navigation

Build

Activity Sampling

Periodically asks the user about their current activity and logs it for analysis.

Installation

Authentication

Go to https://entra.microsoft.com.

Create a new app registration "Activity Sampling" under applications. Under authentication add an SPA platform with redirect URI your start page or http://localhost:3000 for local testing. Select neither access tokens nor ID tokens under Implicit grant and hybrid flows. Under token configuration add the claim groups ID for each type. Create the app roles user and admin.

Add users and groups in enterprise applications under applications and assign app roles.

Set the following environment variables for api-app:

  • AZURE_CLIENT_ID=your-client-id
  • AZURE_APP_ID_URI=your-app-id-uri

or the proper values in the application.properties file:

spring.cloud.azure.active-directory.credential.client-id = your-client-id
spring.cloud.azure.active-directory.app-id-uri = api://your-app-id-uri

Create a .env.local file in the web-api directory with the following content:

VITE_CLIENT_ID=your-client-id
VITE_TENANT_ID=your-tenant-id
VITE_SCOPES=${VITE_CLIENT_ID}/.default

Create .env in the root directory for Docker Compose with the following content:

AZURE_CLIENT_ID=your-client-id
AZURE_APP_ID_URI=your-app-id-uri

Usage

Contributing

The Makefile runs the built as default task. Other tasks are

  • start: start the server
  • test: run all tests,
  • format: format source code

Credits

Open Issues

  • Store view parameters in URL query
  • Add return to "this month" button when period is not this month, same for other units
  • Create detailed timesheet with timestamp instead of only date
  • Import holidays from an iCalendar file (currently via CalenderReader.main())
  • Use the list of vacation days to automatically create activity entries
  • Handle null or non-null values
  • use 20-minute sampling interval
  • create a report with normalized start time and end time for 30 minutes
  • center duration around timestamp
  • use a task as category:
    • fix, feat, build, chore, ci, docs, style, refactor, perf, test (conventional commits)
    • business development, design, marketing, programming, project management, vacation (Harvest)
    • epic, story, task, bug (Jira)
    • vacation, illness, meeting

About

Periodically asks the user about their current activity and logs it for analysis.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Contributors 3

  •  
  •  
  •