ChronoLog 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.
- ⏱️ Time Tracking: Log work hours
- 📊 Project Management: Organize work by projects with detailed time allocation
- 📈 Reporting & Analytics: Generate comprehensive reports with copy-to-clipboard functionality for SAP integration
- 🎯 Personal Dashboard: View overtime balance, vacation days, and time statistics at a glance
- 🔒 Enterprise Authentication: Secure login via Microsoft Entra ID (Azure AD)
- 👥 User Management: Admin interface for managing permissions of employees
- 🏢 Multi-Province Support: Configure workday types and holidays per region
- 🐳 Dockerized Deployment: Simple deployment using Docker and Docker Compose
- 🌐 RESTful API: Full API support for external integrations
- 📱 Responsive Design: Modern UI that works seamlessly on desktops
- Backend: ASP.NET Core 10 (.NET 10)
- Frontend: Blazor Server with Radzen UI Components
- Database: MySQL 8 with Entity Framework Core
- Authentication: Microsoft Entra ID (Azure AD) with OpenID Connect
- API Documentation: Swagger/OpenAPI
- Containerization: Docker & Docker Compose
- Docker and Docker Compose installed on your machine
- An Azure account with permissions to create App Registrations
- (Optional) A reverse proxy like nginx for production deployment
For detailed installation instructions, please see the Getting Started Guide.
Quick installation steps:
- Clone the repository
- Configure Azure AD App Registration (see Getting Started Guide)
- Copy
.env.exampleto.envand configure your environment variables - Run
docker compose up -d - Access the application at
http://localhost:8080 - Set the first admin user after initial login
For detailed configuration options, see Configuration Guide.
- Getting Started Guide - Step-by-step installation and setup
- Configuration Guide - Detailed configuration options and best practices
- API Reference - Complete API documentation for integrations
ChronoLog uses environment variables for configuration. Key settings include:
# Azure AD Authentication
AZURE_AD_DOMAIN=yourdomain.onmicrosoft.com
AZURE_AD_TENANT_ID=your-tenant-id
AZURE_AD_CLIENT_ID=your-client-id
AZURE_AD_CLIENT_SECRET=your-client-secret
# Database Configuration
MYSQL_HOST=chronoLogDatabase
MYSQL_USER=chronolog
MYSQL_PASSWORD=your-secure-password
MYSQL_DATABASE=ChronoLog
# Reverse Proxy (for production)
REVERSE_PROXY_ENABLED=true
REVERSE_PROXY_BASE_URL=https://chronolog.yourdomain.com
REVERSE_PROXY_KNOWN_PROXIES="172.16.0.0/12"See the Configuration Guide for all available options.
- All API endpoints require authentication
- Role-based authorization for admin and project management features
- Secure cookie handling with SameSite and HttpOnly flags
- HTTPS enforcement in production environments
- Database migrations run automatically on startup
- Health checks for service monitoring
This project is licensed under the terms specified in LICENSE.txt. Feel free to use, modify, and distribute it as per the license terms.


