A web application built with Reflex that verifies employee attendance records against German labor law requirements. The application integrates with FactorialHR's API to fetch attendance data and provides compliance checking with an intuitive web interface.
- German Labor Law Compliance: Automatically verifies attendance against German work time regulations
- FactorialHR Integration: Seamless connection to FactorialHR API for data retrieval
- Modern Web Interface: Built with Reflex for a responsive, modern UI
- Docker Support: Containerized deployment with multi-architecture support
- CI/CD Pipeline: Automated testing, building, and deployment
The application verifies the following German labor law requirements:
- β° 6-hour rule: Work time longer than 6 hours requires a 30-minute break
- β° 9-hour rule: Work time longer than 9 hours requires a 45-minute break
- β° 10-hour rule: Work time longer than 10 hours requires an 11-hour rest period
- π Time window: Work time must be within 6:00 AM and 10:00 PM
# Pull the latest development image
docker pull ghcr.io/leon1995/fwtv:dev
# Run the container
docker run -p 8080:8080 \
-e FACTORIAL_API_KEY=your_api_key \
-e FACTORIAL_COMPANY_ID=your_company_id \
ghcr.io/leon1995/fwtv:dev# Clone the repository
git clone https://github.com/leon1995/fwtv.git
cd fwtv
# Install dependencies
uv sync --frozen
# Configure environment
cp .env.sample .env
# Edit .env with your FactorialHR credentials
# Run the application
uv run reflex run --env prodThe project provides pre-built Docker images for easy deployment:
| Tag | Description | Usage |
|---|---|---|
dev |
Latest development build | ghcr.io/leon1995/fwtv:dev |
v1.0.0 |
Specific release version | ghcr.io/leon1995/fwtv:v1.0.0 |
latest |
Latest stable release | ghcr.io/leon1995/fwtv:latest |
All Docker images support both linux/amd64 and linux/arm64 architectures, making them compatible with:
- Intel/AMD x86_64 systems
- ARM64 systems (Apple Silicon, ARM servers)
Create a .env file with the following variables from .env.sample
- Log in to your FactorialHR account
- Navigate to Settings β API
- Generate an API key
- Note your Company ID from the URL or settings
The project includes automated CI/CD pipelines:
- Triggers: Push to main branch, pull requests
- Actions: Linting, testing, Docker image building
- Output: Development Docker images tagged as
dev
- Triggers: Git tags (e.g.,
v1.0.0) - Actions: Version extraction, Docker image building, GitHub release creation
- Output: Versioned Docker images and GitHub releases
- β Multi-architecture Docker builds (AMD64 + ARM64)
- β Automated testing across Python 3.11, 3.12, 3.13
- β Cross-platform compatibility (Linux, Windows, macOS)
- β GitHub Container Registry integration
- β Automated release management
- Python 3.13
- uv package manager
- Docker (optional)
# Install development dependencies
uv sync --group dev
# Run tests
uv run pytest
# Run linting
uv run ruff check .
uv run ruff format .
# Run pre-commit hooks
uv run pre-commit run --all-filesWe welcome contributions! Please follow these steps:
- Fork the repository
- Create a feature branch (
git checkout -b feature/amazing-feature) - Install development dependencies (
uv sync --group dev) - Make your changes
- Run tests (
uv run pytest) - Commit your changes (
git commit -m 'Add amazing feature') - Push to the branch (
git push origin feature/amazing-feature) - Open a Pull Request
- Follow the existing code style (enforced by Ruff)
- Add tests for new functionality
- Update documentation as needed
- Ensure all CI checks pass
Important: This application is provided for informational purposes only. While it implements German labor law requirements, I do not guarantee complete compliance with current regulations. Labor laws may change, and this tool should not be considered legal advice.
Use at your own risk: Always consult with legal professionals for official compliance verification.
This project is licensed under the GNU Affero General Public License v3 - see the LICENSE file for details.
- Homepage: https://github.com/leon1995/fwtv
- Bug Tracker: https://github.com/leon1995/fwtv/issues
- Changelog: https://github.com/leon1995/fwtv/blob/main/CHANGELOG.md
- Docker Hub: https://github.com/leon1995/fwtv/pkgs/container/fwtv