mirror of
https://github.com/Memo-2023/mana-monorepo.git
synced 2026-05-14 20:01:09 +02:00
docs(calendar,todo): add production readiness audit to CLAUDE.md
Document complete production readiness checklist, E2E test suites, and current status for both apps. Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
This commit is contained in:
parent
c4bdc6a9c2
commit
490f8220dd
2 changed files with 95 additions and 2 deletions
|
|
@ -548,6 +548,48 @@ curl -X POST http://localhost:3014/api/v1/events \
|
|||
}'
|
||||
```
|
||||
|
||||
## Production Readiness
|
||||
|
||||
**Status: Production-Ready (2026-03-24)**
|
||||
|
||||
### Checklist
|
||||
|
||||
| Category | Status | Details |
|
||||
|----------|--------|---------|
|
||||
| **Error Handling** | ✅ | Global `+error.svelte` with i18n (5 languages), error tracking via GlitchTip |
|
||||
| **Offline Support** | ✅ | Offline page with shared `OfflinePage` component |
|
||||
| **PWA** | ✅ | Service worker, manifest, icons, apple-touch-icon, shortcuts |
|
||||
| **Security Headers** | ✅ | CSP, X-Frame-Options, HSTS via `setSecurityHeaders()` |
|
||||
| **Loading States** | ✅ | Skeleton loaders: CalendarView, EventDetail, Agenda, AppLoading |
|
||||
| **i18n** | ✅ | 5 languages (DE/EN/FR/ES/IT), all pages including settings fully localized |
|
||||
| **Meta/SEO** | ✅ | OG tags, meta description in root layout |
|
||||
| **Accessibility** | ✅ | Focus trapping in all modals, ARIA roles, keyboard navigation |
|
||||
| **Rate Limiting** | ✅ | ThrottlerGuard global (100 req/min) |
|
||||
| **API Validation** | ✅ | DTOs with class-validator, whitelist + forbidNonWhitelisted |
|
||||
| **Auth** | ✅ | JWT via mana-core-auth, guards on all controllers |
|
||||
| **Toast System** | ✅ | All toast messages localized via svelte-i18n |
|
||||
| **Docker** | ✅ | Multi-stage build, health checks, entrypoint script |
|
||||
| **Tests** | ✅ | 13 unit tests, 7 E2E test suites (Playwright) |
|
||||
| **Error Tracking** | ✅ | GlitchTip integration (client + server) |
|
||||
| **Metrics** | ✅ | Prometheus via MetricsModule |
|
||||
| **Context Menu** | ✅ | Shared ContextMenu on WeekView + AgendaView events |
|
||||
|
||||
### E2E Test Suites
|
||||
|
||||
```bash
|
||||
pnpm --filter @calendar/web test:e2e
|
||||
```
|
||||
|
||||
| Suite | Coverage |
|
||||
|-------|----------|
|
||||
| `auth.spec.ts` | Login, redirect, invalid credentials |
|
||||
| `calendar-views.spec.ts` | Week/month/agenda views, navigation |
|
||||
| `events.spec.ts` | Event CRUD |
|
||||
| `calendars.spec.ts` | Calendar management |
|
||||
| `settings.spec.ts` | Settings page |
|
||||
| `week-view-interactions.spec.ts` | Drag-to-create, time indicator |
|
||||
| `error-page.spec.ts` | 404 error page |
|
||||
|
||||
## Roadmap / TODO
|
||||
|
||||
- [ ] Mobile App (Expo)
|
||||
|
|
@ -555,10 +597,8 @@ curl -X POST http://localhost:3014/api/v1/events \
|
|||
- [ ] CalDAV Sync Implementation
|
||||
- [ ] Push Notifications
|
||||
- [ ] E-Mail Reminders
|
||||
- [ ] Drag & Drop Events
|
||||
- [ ] Event Attendees
|
||||
- [ ] Calendar Import/Export
|
||||
- [ ] Offline Support
|
||||
- [ ] Dark/Light Theme in Landing
|
||||
|
||||
## Important Notes
|
||||
|
|
|
|||
|
|
@ -243,6 +243,59 @@ Recognized patterns:
|
|||
- **Formatting**: Prettier with project config
|
||||
- **i18n**: All UI text in locale files
|
||||
|
||||
## Production Readiness
|
||||
|
||||
**Status: Production-Ready (2026-03-24)**
|
||||
|
||||
### Checklist
|
||||
|
||||
| Category | Status | Details |
|
||||
|----------|--------|---------|
|
||||
| **Error Handling** | ✅ | Global `+error.svelte` with i18n (5 languages), error tracking via GlitchTip |
|
||||
| **Offline Support** | ✅ | Offline page with shared `OfflinePage` component |
|
||||
| **PWA** | ✅ | Service worker, manifest, icons, shortcuts (New task, Kanban, Settings) |
|
||||
| **Security Headers** | ✅ | CSP, X-Frame-Options via `setSecurityHeaders()` |
|
||||
| **Loading States** | ✅ | Skeleton loaders: TaskList, TaskItem, KanbanBoard, KanbanColumn, Statistics |
|
||||
| **i18n** | ✅ | 5 languages (DE/EN/FR/ES/IT) via svelte-i18n |
|
||||
| **Meta/SEO** | ✅ | OG tags, meta description in root layout |
|
||||
| **Accessibility** | ✅ | Focus trapping in all modals, ARIA roles, keyboard shortcuts |
|
||||
| **Rate Limiting** | ✅ | ThrottlerGuard global (100 req/min) |
|
||||
| **API Validation** | ✅ | DTOs with class-validator, RRULE DoS protection (max 5000 occurrences) |
|
||||
| **Auth** | ✅ | JWT via mana-core-auth, client-side redirect in `onMount` |
|
||||
| **Toast System** | ✅ | Toast notifications via shared `toastStore` |
|
||||
| **Docker** | ✅ | Multi-stage build (web + backend), health checks, Traefik labels |
|
||||
| **Tests** | ✅ | Unit tests (7 backend, 3 web), E2E tests (3 suites: auth, projects, tasks) |
|
||||
| **Error Tracking** | ✅ | GlitchTip integration (client + server) |
|
||||
| **Metrics** | ✅ | Prometheus via MetricsModule |
|
||||
| **Context Menu** | ✅ | Shared ContextMenu on TaskList (priority, project, complete, delete) |
|
||||
| **Auto-Save** | ✅ | 500ms debounce, no save/cancel buttons needed |
|
||||
| **Drag & Drop** | ✅ | Task reordering in list + kanban views |
|
||||
|
||||
### Test Suites
|
||||
|
||||
```bash
|
||||
# Unit tests
|
||||
pnpm --filter @todo/backend test
|
||||
pnpm --filter @todo/web test
|
||||
|
||||
# E2E tests
|
||||
pnpm --filter @todo/web test:e2e
|
||||
```
|
||||
|
||||
| Type | Suite | Coverage |
|
||||
|------|-------|----------|
|
||||
| Unit (Backend) | `task.service.spec.ts` | Task CRUD, recurrence |
|
||||
| Unit (Backend) | `project.service.spec.ts` | Project management |
|
||||
| Unit (Backend) | `kanban.service.spec.ts` | Kanban operations |
|
||||
| Unit (Backend) | `reminder.service.spec.ts` | Reminders |
|
||||
| Unit (Backend) | `label.service.spec.ts` | Labels |
|
||||
| Unit (Web) | `task-parser.test.ts` | Natural language parsing |
|
||||
| Unit (Web) | `task-filters.test.ts` | Filter logic |
|
||||
| Unit (Web) | `view.test.ts` | View store state |
|
||||
| E2E | `auth.spec.ts` | Login, redirect |
|
||||
| E2E | `projects.spec.ts` | Project CRUD |
|
||||
| E2E | `tasks.spec.ts` | Task CRUD |
|
||||
|
||||
## Important Notes
|
||||
|
||||
1. **Authentication**: Uses Mana Core Auth (JWT in Authorization header)
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue