{"id":50126507,"url":"https://github.com/voltkraft/chronos","last_synced_at":"2026-05-23T20:04:46.987Z","repository":{"id":323940275,"uuid":"1095329613","full_name":"VoltKraft/Chronos","owner":"VoltKraft","description":"Development of the duty roster and vacation tools Chronos","archived":false,"fork":false,"pushed_at":"2026-04-27T18:02:29.000Z","size":323,"stargazers_count":0,"open_issues_count":1,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2026-04-27T20:07:25.813Z","etag":null,"topics":["docker-compose","microservice","microservices","microservices-architecture","planning"],"latest_commit_sha":null,"homepage":"","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"agpl-3.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/VoltKraft.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":"CONTRIBUTING.md","funding":null,"license":"LICENSE","code_of_conduct":"CODE_OF_CONDUCT.md","threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":"SECURITY.md","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":"CLA.md"}},"created_at":"2025-11-12T22:50:46.000Z","updated_at":"2026-04-20T17:57:09.000Z","dependencies_parsed_at":null,"dependency_job_id":null,"html_url":"https://github.com/VoltKraft/Chronos","commit_stats":null,"previous_names":["voltkraft/project_bitshift","voltkraft/chronos"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/VoltKraft/Chronos","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/VoltKraft%2FChronos","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/VoltKraft%2FChronos/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/VoltKraft%2FChronos/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/VoltKraft%2FChronos/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/VoltKraft","download_url":"https://codeload.github.com/VoltKraft/Chronos/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/VoltKraft%2FChronos/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":33410387,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-05-23T18:09:33.147Z","status":"ssl_error","status_checked_at":"2026-05-23T18:09:31.380Z","response_time":53,"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":["docker-compose","microservice","microservices","microservices-architecture","planning"],"created_at":"2026-05-23T20:04:15.571Z","updated_at":"2026-05-23T20:04:46.979Z","avatar_url":"https://github.com/VoltKraft.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"### Chronos  \n### Intelligent Shift \u0026 Vacation Planning System\n\n[![License: AGPL-3.0-only](https://img.shields.io/badge/License-AGPL--3.0--only-blue.svg)](./LICENSE)\n[![CLA Required](https://img.shields.io/badge/CLA-Required-orange.svg)](./CLA.md)\n![Status: In Development](https://img.shields.io/badge/Status-In%20Development-yellow)\n![Platform: Linux-first](https://img.shields.io/badge/Platform-Linux--first-lightgrey)\n\n---\n\n## 🧭 Overview\n\n**Chronos** is a modern, web-based planning and scheduling  \nsystem designed as a replacement for:\n\n- manual Excel-based duty planning  \n- paper-based vacation \u0026 approval processes  \n- non-transparent scheduling procedures  \n\nChronos provides:\n\n- ✔ Digital approval workflows  \n- ✔ Transparent, auditable planning  \n- ✔ Fair, constraint-aware scheduling  \n- ✔ A Linux-first, open source-friendly architecture  \n- ✔ Modular frontend \u0026 backend components  \n- ✔ A foundation for future automation and optimization  \n\n---\n\n## 📚 Documentation\n\nProject documentation is kept in the `docs/` directory:\n\n- **Customer Requirements Specification**  \n  `docs/customer-requirements-specification.md`\n\n- **Functional Specification**  \n  `docs/functional-specification.md`  \n  Key sections: [Interfaces \u0026 OpenAPI](docs/functional-specification.md#6-interfaces) · [Deployment \u0026 12-Factor](docs/functional-specification.md#8-deployment--operations)\n\n- **Architecture (Phase 1)**  \n  `docs/architecture.md`\n\n- **Authentication (Phase 1)**  \n  `docs/authentication.md`\n\nMore design and architecture documents will follow as the project grows.\n\n---\n\n## 🏗 Architecture Overview (Phase 1)\n\nPhase 1 runs as a small set of containers: reverse-proxy, frontend, middleware/api, scheduler/worker, and Postgres. The API is OpenAPI-first and authentication uses session cookies (internal users only).\n\n```mermaid\nflowchart LR\n  Client --\u003e|HTTPS /api/*| RP\n  RP --\u003e|HTTP| FE --\u003e|HTTP /api/*| API\n  RP --\u003e|HTTP /api/*| API --\u003e|SQL| DB\n  API -.-\u003e|job trigger| Worker --\u003e|SQL| DB\n```\n\nSee `docs/architecture.md` and `docs/authentication.md` for details.\n\n---\n\n## 🔧 Development Setup\n\nPhase 1 runs as a single `docker compose` stack. Dev defaults are committed in `infrastructure/docker/.env.dev`; production secrets live in `infrastructure/docker/.env.prod` which is **gitignored**.\n\n```bash\ngit clone https://github.com/VoltKraft/Chronos.git\ncd Chronos/infrastructure/docker\n\n# Build + start all five services (Traefik, frontend, api, worker, db)\n./up.sh up --build\n\n# Create the first admin (prompted for password)\ndocker compose -f compose.dev.yaml --env-file .env.dev exec api \\\n  python -m app.cli create-admin --email admin@chronos.local\n\n# Verify\ncurl -i http://localhost/healthz\n```\n\nOnce the stack is up, the SPA is at \u003chttp://localhost/\u003e. Traefik routes `/api/*`, `/auth/*`, `/healthz`, `/readyz` to the API; everything else goes to the frontend.\n\nFor the full inventory of containers, images, and endpoints see [`docs/architecture.md`](docs/architecture.md#implementation-status-phase-1).\n\n---\n\n## 👥 Contributing \u0026 Contributor License Agreement (CLA)\n\nContributions are welcome and encouraged!\n\nTo maintain long-term legal clarity and ensure the project can evolve,\n**all contributors must agree to the project's Contributor License Agreement (CLA)**.\n\nBy signing the CLA, you:\n\n- assign copyright of your contributions to the Project Owner  \n- allow the project to be relicensed in the future  \n- ensure all historical versions remain under **AGPL-3.0-only**\n\nPlease see:\n\n- [`CLA.md`](./CLA.md)  \n- [`CONTRIBUTING.md`](./CONTRIBUTING.md)\n\nfor details on contribution workflow and legal requirements.\n\n---\n\n## 🛡 License\n\nThis project is owned by **Jan Paulzen (VoltKraft)**.  \nThe source code is licensed under the:\n\n**GNU Affero General Public License v3.0 (AGPL-3.0-only)**\n\nThis ensures the project:\n\n- remains free and open source  \n- protects user freedoms in networked environments  \n- prevents proprietary forks  \n- requires public access to source code when deployed as a service  \n\nFor full license text, see:  \n➡️ [`LICENSE`](./LICENSE)\n\n---\n\n## 🧩 Project Goals (Roadmap Snapshot)\n\n- [ ] Full shift planning workflow  \n- [ ] Vacation request workflow  \n- [ ] Approval chains (representative → team lead → HR)  \n- [ ] Rule-based scheduling engine  \n- [ ] Employee preferences \u0026 constraints  \n- [ ] Audit logs for all actions  \n- [ ] Multi-tenant support  \n- [ ] OpenID Connect (OIDC) integration  \n- [ ] Docker-based deployment  \n- [ ] Kubernetes-ready architecture  \n\n*(Roadmap will move into GitHub Projects later.)*\n\n---\n\n## 💬 Contact \u0026 Community\n\nIssues and feature requests are welcome via GitHub Issues.\nPull Requests are accepted once the [`CLA.md`](./CLA.md)  is accepted.\n\n\n---\n\n## ⭐ Support the Project\n\nIf you find Chronos useful, consider leaving a star on GitHub ⭐\nIt helps visibility and supports continued development.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fvoltkraft%2Fchronos","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fvoltkraft%2Fchronos","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fvoltkraft%2Fchronos/lists"}