Нет описания

achiappa 712bcc559b HANDOFF.md: add Phase 17 plan (number-stepper popover + hide native spinners) 2 недель назад
assets d1dda4f4ab Phase 15: big-screen (beamer) task viewer at /sprints/{id}/present 2 недель назад
migrations a6345821bf Phase 12: per-week weekday selection (Mo–Fr) drives Arbeitstage 2 недель назад
public 94b2841599 Phase 16: dark-mode toggle + light-mode contrast cleanup 2 недель назад
src d1dda4f4ab Phase 15: big-screen (beamer) task viewer at /sprints/{id}/present 2 недель назад
tests a6345821bf Phase 12: per-week weekday selection (Mo–Fr) drives Arbeitstage 2 недель назад
views 94b2841599 Phase 16: dark-mode toggle + light-mode contrast cleanup 2 недель назад
.dockerignore ab9430b0cc Phase 11: vendor Tailwind + drop inline onclick + tighten CSP 2 недель назад
.env.example 83493d0541 Phase 2 hotfix: scalar-safe Request + local admin login 2 недель назад
.gitignore bfb93fc915 gitignore: exclude .claude/ (Claude Code agent runtime scratch) 2 недель назад
ACCEPTANCE.md 94b2841599 Phase 16: dark-mode toggle + light-mode contrast cleanup 2 недель назад
Dockerfile ab9430b0cc Phase 11: vendor Tailwind + drop inline onclick + tighten CSP 2 недель назад
HANDOFF.md 712bcc559b HANDOFF.md: add Phase 17 plan (number-stepper popover + hide native spinners) 2 недель назад
README.md 58a6b3013e Phase 1: skeleton 2 недель назад
composer.json 58a6b3013e Phase 1: skeleton 2 недель назад
docker-compose.yml 58a6b3013e Phase 1: skeleton 2 недель назад
package-lock.json ab9430b0cc Phase 11: vendor Tailwind + drop inline onclick + tighten CSP 2 недель назад
package.json ab9430b0cc Phase 11: vendor Tailwind + drop inline onclick + tighten CSP 2 недель назад
phpunit.xml 21d0c4ac33 Phase 7: audit viewer + security headers + PHPUnit 2 недель назад
tailwind.config.js 94b2841599 Phase 16: dark-mode toggle + light-mode contrast cleanup 2 недель назад

README.md

Sprint Planner

Web replacement for the Excel-based sprint planning tool.

Stack

  • PHP 8.3 + Apache (Docker, single container)
  • SQLite (file on mounted volume)
  • Server-rendered PHP templates + Tailwind CSS + jQuery / jQuery UI (all via CDN)
  • Microsoft Entra ID (OpenID Connect) for auth

Quick start

cp .env.example .env
# fill in ENTRA_TENANT_ID, ENTRA_CLIENT_ID, ENTRA_CLIENT_SECRET, SESSION_SECRET
docker compose up --build

Then open http://localhost:8080.

The SQLite database lives at ./data/app.sqlite (mounted into the container at /var/www/data/app.sqlite). Migrations run automatically on the first request after container start.

Layout

public/      front controller (index.php) + web root
src/         application code (App\ namespace, PSR-4)
views/       PHP templates
migrations/  numbered .sql files applied by Migrator
assets/      static JS / CSS
data/        SQLite + sessions (volume-mounted; gitignored)

Build phases

This repo is built incrementally. See the spec for phase definitions. Current phase: Phase 1 — skeleton.