My Weekly ToDo List - A web-based weekly task management app
Erster Schnitt aus TODO-CODESCENE-FORTSETZUNG-2026-09-12.md, nach Owner-Freigabe. handleDrop (WeeklyView.tsx) vermischte fachliche Drop-Entscheidung (Zielslot bei Belegung finden, Subtask-Befoerderung vs. Someday-Verschieben vs. normales Verschieben) mit React-State-Updates und Netzwerkaufrufen. Die Entscheidung ist jetzt eine reine Funktion decideTaskDrop in src/lib/weekly/drag-drop.ts: - kennt weder DOM noch React noch Netzwerk, nur Task/Zieltag/Slot als Daten - kein Import von date-utils.ts: der Aufrufer liefert dayOfWeek/scheduledDate/ allSlots fertig, damit die Datei nur einen Typ-Import hat (wie date-utils.ts/ format.ts/event-layout.ts in diesem Ordner) und ohne Next.js-Bundler in node:test laeuft - 15 Charakterisierungstests: freier/belegter/geschuetzter Slot, Drop ohne Slot mit/ohne vorhandene Startzeit, Subtask-Befoerderung, Someday-Provider- Vererbung (eigener vs. geerbter Provider), externe Sync-Bedingung, virtuelle wiederkehrende Instanzen (Server materialisiert sie weiterhin unveraendert ueber VIRTUAL_ID_REGEX in api/tasks/route.ts) handleDrop selbst liest jetzt nur noch Eingaben, ruft decideTaskDrop auf und fuehrt in einem switch exakt die bisherigen Seiteneffekte aus -- keine geaenderten fetch-Aufrufe, kein geaendertes optimistisches UI-Update, keine geaenderte API-Payload. Wichtiger Nebenbefund, kein Teil dieses Refactorings: Task-Drag-and-Drop funktioniert nur am Desktop. WeeklyView.tsx nutzt ausschliesslich natives HTML5-Drag (draggable/onDragStart/onDrop), das auf Touch-Geraeten nicht feuert. Kein separater Touch-Mechanismus vorhanden; react-dnd/ react-dnd-html5-backend sind installiert, aber nirgends importiert. decideTaskDrop ist bewusst so geschnitten, dass ein kuenftiger Touch-Mechanismus sie unveraendert wiederverwenden koennte -- das Bauen dieses Mechanismus ist ein eigenes Feature-Vorhaben (siehe TODO.md Block M3). Verifiziert: Typecheck, Lint (0 Fehler), 100 Unit-Tests (85 -> 100, 15 neu), Produktions-Build -- alle gruen. Kein Playwright-E2E fuer Drag-and-Drop (existiert im Repo bislang nicht). v1.126.0 Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com> |
||
|---|---|---|
| .claude | ||
| .github/workflows | ||
| .opencode | ||
| .planning | ||
| docs | ||
| prisma | ||
| public | ||
| scripts | ||
| spec | ||
| specs | ||
| src | ||
| tests | ||
| Version 01 | ||
| .dockerignore | ||
| .env.example | ||
| .eslintrc.json | ||
| .gitignore | ||
| build.pid | ||
| CHANGELOG.md | ||
| CLAUDE.md | ||
| clear-data.ts | ||
| COMMIT_SUMMARY.md | ||
| comprehensive-debug.js | ||
| debug-login-page.js | ||
| debug-signup.js | ||
| deploy.sh | ||
| docker-compose.dev.yml | ||
| docker-compose.local.yml | ||
| docker-compose.yml | ||
| Dockerfile | ||
| fill-data-v2.ts | ||
| fill-data.ts | ||
| fill-ext-events.js | ||
| fill-ext-events.ts | ||
| final_phase3_analysis.md | ||
| mock-prisma.ts | ||
| My-Weekly-ToDo-List.code-workspace | ||
| next-env.d.ts | ||
| next.config.js | ||
| opencode.json | ||
| package-lock.json | ||
| package.json | ||
| phase3_analysis.md | ||
| playwright.config.ts | ||
| postcss.config.js | ||
| query.js | ||
| README.md | ||
| SETUP.md | ||
| sonar-project.properties | ||
| tailwind.config.js | ||
| TEST_PLAN_SUMMARY.md | ||
| TEST_PLAN.md | ||
| test-account-setup.js | ||
| test-api.js | ||
| test-email.js | ||
| test-route.js | ||
| test-syno.js | ||
| tsconfig.json | ||
| tsconfig.tsbuildinfo | ||
My Weekly To Do List
A web-based weekly task management application that organizes to-dos and calendar events in a single, intuitive weekly view.
Features
- Weekly view of tasks and calendar events
- Drag and drop functionality between days
- Calendar integration with Google and Apple Calendar
- Responsive design for all devices
- Accessible user interface (WCAG 2.1 AA compliant)
Deployment with Docker
This application can be deployed using Docker and Docker Compose.
Prerequisites
- Docker Engine
- Docker Compose
Quick Start
- Clone the repository and navigate to the project directory
- Build and start the containers:
docker-compose up --build - Access the application at http://localhost:3000
Environment Variables
The application requires the following environment variables:
DATABASE_URL: PostgreSQL connection stringNEXTAUTH_SECRET: Secret for NextAuth.jsNEXT_PUBLIC_BASE_URL: Public URL of the applicationMICROSOFT_CLIENT_ID: Azure AD Application (client) ID for Microsoft LoginMICROSOFT_CLIENT_SECRET: Azure AD Application secret for Microsoft Login
Database Configuration
The application uses PostgreSQL for data storage. The Docker Compose setup includes a PostgreSQL service, but you can also connect to an external database by setting the DATABASE_URL accordingly.
Building for Production
To build the production version:
docker build -t my-weekly-todo-list .
Development
For development, you can run:
npm run dev
License
This project is licensed under the MIT License.