No description
  • HTML 43.1%
  • C# 39.8%
  • CSS 13%
  • TypeScript 2.3%
  • JavaScript 1.4%
  • Other 0.4%
Find a file
Marco cab549ab3a Refactor AppSettingsDocument and CoeffSnapshotDocument: Remove LunchBreakHours property
Add CalendarEventDocument and CalendarEventType enum for event management

Update WorkDayDocument to include WorkUnitDocument and CalendarEventDocument lists

Enhance CouchbaseLiteWorkDayService with methods for managing WorkUnit and CalendarEvent

Revise MonthlySummaryModel to track preview worked hours and counted work units

Improve CSS for calendar view, including responsive design and new item styles
2026-04-20 16:11:27 +02:00
.forgejo/workflows chore: Upgrade DOTNET_VERSION from 9.0.x to 10.0.x in publish-container.yml 2026-03-17 22:46:32 +01:00
.vscode Refactor AppSettingsDocument and CoeffSnapshotDocument: Remove LunchBreakHours property 2026-04-20 16:11:27 +02:00
Components Refactor AppSettingsDocument and CoeffSnapshotDocument: Remove LunchBreakHours property 2026-04-20 16:11:27 +02:00
Configuration Removed auth 2026-04-20 14:11:18 +02:00
Domain Refactor AppSettingsDocument and CoeffSnapshotDocument: Remove LunchBreakHours property 2026-04-20 16:11:27 +02:00
Properties Refactor authentication system to use MongoDB 2026-03-16 21:54:44 +01:00
Services Refactor AppSettingsDocument and CoeffSnapshotDocument: Remove LunchBreakHours property 2026-04-20 16:11:27 +02:00
tests/playwright Removed auth 2026-04-20 14:11:18 +02:00
wwwroot Refactor AppSettingsDocument and CoeffSnapshotDocument: Remove LunchBreakHours property 2026-04-20 16:11:27 +02:00
.dockerignore Implement Docker support with Dockerfile, docker-compose, and nginx configuration; add HTTPS redirection option and update appsettings 2026-03-16 19:41:14 +01:00
.gitignore vscode debugging options 2026-04-20 12:18:16 +02:00
appsettings.Development.json Migrate from MongoDB to Couchbase Lite for local storage; update related services and configurations 2026-03-17 13:53:33 +01:00
appsettings.json Removed auth 2026-04-20 14:11:18 +02:00
docker-compose.override.yml Migrate from MongoDB to Couchbase Lite for local storage; update related services and configurations 2026-03-17 13:53:33 +01:00
docker-compose.tests.yml Removed auth 2026-04-20 14:11:18 +02:00
docker-compose.yml Removed auth 2026-04-20 14:11:18 +02:00
Dockerfile Removed auth 2026-04-20 14:11:18 +02:00
Dockerfile.playwright Removed auth 2026-04-20 14:11:18 +02:00
nginx.conf Implement Docker support with Dockerfile, docker-compose, and nginx configuration; add HTTPS redirection option and update appsettings 2026-03-16 19:41:14 +01:00
nlog.config Refactor authentication system to use username instead of email; implement change password functionality and logging; add NLog for logging support 2026-03-17 20:08:02 +01:00
package.json Removed auth 2026-04-20 14:11:18 +02:00
plan.md feat: Add Grid View and Monthly Summary pages with workday management 2026-03-17 22:10:19 +01:00
playwright.config.ts Removed auth 2026-04-20 14:11:18 +02:00
Program.cs Removed auth 2026-04-20 14:11:18 +02:00
README.Docker.md Refactor AppSettingsDocument and CoeffSnapshotDocument: Remove LunchBreakHours property 2026-04-20 16:11:27 +02:00
WorkTracker.csproj Refactor authentication system to use username instead of email; implement change password functionality and logging; add NLog for logging support 2026-03-17 20:08:02 +01:00
WorkTracker.sln Scaffolded project 2026-02-18 17:11:13 +01:00

Running and debugging with Docker or local Couchbase Lite storage

Quick run (Docker Engine required):

  1. Build and start services:

    docker compose up --build

  2. App will be available on host port 8002 -> container 8080 (http://localhost:8002).

Authentication mode:

  • Authentication is disabled by default and every request runs as the configured default admin user. This is intended for deployments fronted by Cloudflare Zero Trust.
  • Re-enable the built-in login flow by setting AppAuth__Enabled=true or changing AppAuth:Enabled to true in appsettings.json.
  • The default admin identity used while auth is disabled is configured under AppAuth:DefaultUsername and AppAuth:DefaultUserId.

Health endpoint:

  • GET /healthz returns JSON health information, including whether built-in authentication is enabled and whether the Couchbase Lite collections initialized correctly.

Docker persistence:

  • The app now uses an embedded Couchbase Lite database stored under /data/couchbase inside the container.
  • The compose file mounts that path from ${WORKTRACKER_DATA_PATH:-./.docker-data/couchbase} on the host.
  • Set WORKTRACKER_DATA_PATH before docker compose up if you want to move the database elsewhere.

Development in VS Code without Docker:

  • Use the WorkTracker: Debug Local launch configuration.
  • VS Code builds the project, starts the app directly with ASPNETCORE_ENVIRONMENT=Development, and opens the local URL when the server is ready.
  • Local development data is stored in App_Data/couchbase-dev by default.

Development in Docker:

  • The override file keeps a containerized dotnet watch flow for cases where you still want Docker.
  • The development container mounts the workspace into /workspace and stores its Couchbase Lite files under ./.docker-data/couchbase-dev on the host.

Debugging in Docker from VS Code:

  • Use the WorkTracker: Debug in Docker launch configuration.
  • VS Code brings up the development container with docker compose, builds the app in Debug, and launches WorkTracker.dll under vsdbg inside the container.
  • VS Code waits for the app to report that it is listening before opening Microsoft Edge in browser debug mode against http://localhost:8002.
  • The app remains available at http://localhost:8002 while the debugger is attached.
  • Stopping the debug session runs docker compose down for the debug stack.

Manual development start:

  • docker compose up --build

Manual shutdown:

  • docker compose down

Docker Playwright smoke tests:

  • Run docker compose -f docker-compose.yml -f docker-compose.tests.yml up --build --abort-on-container-exit --exit-code-from playwright playwright
  • The suite starts the app in Docker, waits for /healthz, and verifies that protected pages load without a login screen.

Notes:

  • The base compose file remains production-oriented; the override file is the optional containerized development layer.
  • The first container build takes longer because the dev image installs the .NET debugger.
  • The Dockerfile uses the .NET 10 *-noble images so local builds and container builds stay aligned with the SDK available in VS Code.