{"id":41390487,"url":"https://github.com/fheinke/chronolog","last_synced_at":"2026-04-13T10:01:23.223Z","repository":{"id":331964768,"uuid":"1096365152","full_name":"fheinke/ChronoLog","owner":"fheinke","description":"ChronoLog is a simple and efficient worktime tracking application designed to help individuals and teams monitor their productivity and manage their time effectively.","archived":false,"fork":false,"pushed_at":"2026-03-27T21:26:40.000Z","size":3095,"stargazers_count":0,"open_issues_count":1,"forks_count":0,"subscribers_count":0,"default_branch":"main","last_synced_at":"2026-04-03T02:45:29.628Z","etag":null,"topics":["overtime-tracking","projecttime","projecttrack","tracking","worktime"],"latest_commit_sha":null,"homepage":"","language":"C#","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/fheinke.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE.txt","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2025-11-14T10:14:11.000Z","updated_at":"2026-03-27T21:25:04.000Z","dependencies_parsed_at":null,"dependency_job_id":"2c283824-6f31-4375-bf24-451131bc8fde","html_url":"https://github.com/fheinke/ChronoLog","commit_stats":null,"previous_names":["fheinke/chronolog"],"tags_count":8,"template":false,"template_full_name":null,"purl":"pkg:github/fheinke/ChronoLog","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/fheinke%2FChronoLog","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/fheinke%2FChronoLog/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/fheinke%2FChronoLog/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/fheinke%2FChronoLog/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/fheinke","download_url":"https://codeload.github.com/fheinke/ChronoLog/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/fheinke%2FChronoLog/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":31747172,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-04-13T09:16:15.125Z","status":"ssl_error","status_checked_at":"2026-04-13T09:16:05.023Z","response_time":93,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.6:443 state=error: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["overtime-tracking","projecttime","projecttrack","tracking","worktime"],"created_at":"2026-01-23T12:33:23.230Z","updated_at":"2026-04-13T10:01:23.218Z","avatar_url":"https://github.com/fheinke.png","language":"C#","funding_links":[],"categories":[],"sub_categories":[],"readme":"# ChronoLog - Worktime Tracking Application\n\n[![Docker Image](https://img.shields.io/badge/docker-ghcr.io%2Ffheinke%2Fchronolog-blue)](https://github.com/fheinke/ChronoLog/pkgs/container/chronolog)\n[![License](https://img.shields.io/badge/license-MIT-green.svg)](LICENSE.txt)\n\nChronoLog is a modern, efficient worktime tracking application built with **ASP.NET Core** and **Blazor Server**. Designed for individuals and teams, ChronoLog helps you monitor productivity, manage time effectively, and streamline reporting processes. Track your work hours, manage projects, and copy the worktime data directly to enterprise systems like SAP to book your times.\n\n![ChronoLog Dashboard](docs/images/screenshots/chronolog-dashboard.png)\n\n## ✨ Features\n\n- **⏱️ Time Tracking**: Log work hours\n- **📊 Project Management**: Organize work by projects with detailed time allocation\n- **📈 Reporting \u0026 Analytics**: Generate comprehensive reports with copy-to-clipboard functionality for SAP integration\n- **🎯 Personal Dashboard**: View overtime balance, vacation days, and time statistics at a glance\n- **🔒 Enterprise Authentication**: Secure login via Microsoft Entra ID (Azure AD)\n- **👥 User Management**: Admin interface for managing permissions of employees\n- **🏢 Multi-Province Support**: Configure workday types and holidays per region\n- **🐳 Dockerized Deployment**: Simple deployment using Docker and Docker Compose\n- **🌐 RESTful API**: Full API support for external integrations\n- **📱 Responsive Design**: Modern UI that works seamlessly on desktops\n\n![ChronoLog Projecttime Evaluation](docs/images/screenshots/chronolog-projecttime-evaluation.png)\n![ChronoLog Personal Time Balance](docs/images/screenshots/chronolog-personal-timebalance.png)\n\n## 🏗️ Technology Stack\n\n- **Backend**: ASP.NET Core 10 (.NET 10)\n- **Frontend**: Blazor Server with Radzen UI Components\n- **Database**: MySQL 8 with Entity Framework Core\n- **Authentication**: Microsoft Entra ID (Azure AD) with OpenID Connect\n- **API Documentation**: Swagger/OpenAPI\n- **Containerization**: Docker \u0026 Docker Compose\n\n## 🚀 Quick Start\n\n### Prerequisites\n\n- Docker and Docker Compose installed on your machine\n- An Azure account with permissions to create App Registrations\n- (Optional) A reverse proxy like nginx for production deployment\n\n### Installation\n\nFor detailed installation instructions, please see the [Getting Started Guide](docs/getting-started.md).\n\n**Quick installation steps:**\n\n1. Clone the repository\n2. Configure Azure AD App Registration (see [Getting Started Guide](docs/getting-started.md))\n3. Copy `.env.example` to `.env` and configure your environment variables\n4. Run `docker compose up -d`\n5. Access the application at `http://localhost:8080`\n6. Set the first admin user after initial login\n\nFor detailed configuration options, see [Configuration Guide](docs/configuration.md).\n\n## 📚 Documentation\n\n- **[Getting Started Guide](docs/getting-started.md)** - Step-by-step installation and setup\n- **[Configuration Guide](docs/configuration.md)** - Detailed configuration options and best practices\n- **[API Reference](docs/api-reference.md)** - Complete API documentation for integrations\n\n## 🔧 Configuration Overview\n\nChronoLog uses environment variables for configuration. Key settings include:\n\n```bash\n# Azure AD Authentication\nAZURE_AD_DOMAIN=yourdomain.onmicrosoft.com\nAZURE_AD_TENANT_ID=your-tenant-id\nAZURE_AD_CLIENT_ID=your-client-id\nAZURE_AD_CLIENT_SECRET=your-client-secret\n\n# Database Configuration\nMYSQL_HOST=chronoLogDatabase\nMYSQL_USER=chronolog\nMYSQL_PASSWORD=your-secure-password\nMYSQL_DATABASE=ChronoLog\n\n# Reverse Proxy (for production)\nREVERSE_PROXY_ENABLED=true\nREVERSE_PROXY_BASE_URL=https://chronolog.yourdomain.com\nREVERSE_PROXY_KNOWN_PROXIES=\"172.16.0.0/12\"\n```\n\nSee the [Configuration Guide](docs/configuration.md) for all available options.\n\n## 🔐 Security\n\n- All API endpoints require authentication\n- Role-based authorization for admin and project management features\n- Secure cookie handling with SameSite and HttpOnly flags\n- HTTPS enforcement in production environments\n- Database migrations run automatically on startup\n- Health checks for service monitoring\n\n## 📄 License\n\nThis project is licensed under the terms specified in [LICENSE.txt](LICENSE.txt).\nFeel free to use, modify, and distribute it as per the license terms.","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ffheinke%2Fchronolog","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Ffheinke%2Fchronolog","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ffheinke%2Fchronolog/lists"}