commit fd473f00af1021f37cf653181a936fc339e07ca8 Author: Simon Kühn Date: Wed Apr 29 15:40:57 2026 +0200 Initial commit: Dudi habit tracker Symfony 8 SPA with Doctrine ORM, Symfony Security, vanilla JS frontend. Migrated from plain PHP (delight-im/auth + raw SQL) to full Symfony stack. Co-Authored-By: Claude Sonnet 4.6 diff --git a/.env b/.env new file mode 100644 index 0000000..c36a3ba --- /dev/null +++ b/.env @@ -0,0 +1,18 @@ +###> symfony/framework-bundle ### +APP_ENV=dev +APP_SECRET=change_me +###< symfony/framework-bundle ### + +###> doctrine/doctrine-bundle ### +DATABASE_URL="mysql://app:!ChangeMe!@127.0.0.1:3306/app?serverVersion=10.11-MariaDB&charset=utf8mb4" +###< doctrine/doctrine-bundle ### + +###> symfony/mailer ### +MAILER_DSN=null://null +MAILER_FROM=noreply@example.com +###< symfony/mailer ### + +###> app ### +APP_URL=http://localhost +DEFAULT_URI=http://localhost/dd +###< app ### diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..3ba2448 --- /dev/null +++ b/.gitignore @@ -0,0 +1,18 @@ +###> symfony ### +/.env.local +/.env.*.local +/var/ +/vendor/ +/public/bundles/ +###< symfony ### + +###> legacy (pre-symfony) ### +/include/config.php +###< legacy ### + +###> tools ### +/.claude/ +/.superpowers/ +/.aider* +/docs/private/ +###< tools ### diff --git a/.htaccess b/.htaccess new file mode 100644 index 0000000..60fdb56 --- /dev/null +++ b/.htaccess @@ -0,0 +1,15 @@ +RewriteEngine On +RewriteBase /dd/ + +# Composer-Dateien nicht ausliefern + + Require all denied + + +# API-Requests an api.php weiterleiten, Pfad als Query-Parameter +RewriteRule ^api/(.+)$ api.php?_path=$1 [L,QSA] +RewriteRule ^api/?$ api.php [L,QSA] + +# Alles andere an index.php (SPA) +RewriteCond %{REQUEST_FILENAME} !-f +RewriteRule ^ index.php [L] diff --git a/CLAUDE.md b/CLAUDE.md new file mode 100644 index 0000000..f6ed5d6 --- /dev/null +++ b/CLAUDE.md @@ -0,0 +1,48 @@ +# Dudi – Claude Context + +## What this is +Habit & goal tracking PWA. Users set goals (e.g. "50 push-ups/day for 30 days"), log sets daily, and see progress. Invite-only registration. German UI. + +## Stack +- Symfony 8 + Doctrine ORM (src/) +- Vanilla JS SPA — no build step, no npm (public/app.js) +- HTML `