feat: secure and document book reviews system
Added rate limiting to APIs, cleaned up docs, implemented fallback logic for reviews without text, and added comprehensive n8n guide.
This commit is contained in:
@@ -1,51 +1,28 @@
|
||||
# TODO - Portfolio Roadmap
|
||||
# Portfolio Roadmap
|
||||
|
||||
## Book Reviews (Neu)
|
||||
## Completed ✅
|
||||
|
||||
- [ ] **Directus Collection erstellen**: `book_reviews` mit Feldern:
|
||||
- `status` (draft/published)
|
||||
- `book_title` (String)
|
||||
- `book_author` (String)
|
||||
- `book_image` (String, URL zum Cover)
|
||||
- `rating` (Integer, 1-5)
|
||||
- `hardcover_id` (String, optional)
|
||||
- `finished_at` (Datetime, optional)
|
||||
- Translations: `review` (Text) + `languages_code` (FK)
|
||||
- [ ] **n8n Workflow**: Automatisch Directus-Entwurf erstellen wenn Buch auf Hardcover als "gelesen" markiert wird
|
||||
- [ ] **Hardcover GraphQL Query** für gelesene Bücher: `status_id: {_eq: 3}` (Read)
|
||||
- [ ] **Erste Testdaten**: 2-3 gelesene Bücher mit Rating + Kommentar in Directus anlegen
|
||||
- [x] **Dark Mode Support**: `next-themes` integration, `ThemeToggle` component, and dark mode styles.
|
||||
- [x] **Performance**: Replaced `<img>` with Next.js `<Image>` for optimization.
|
||||
- [x] **SEO**: Added JSON-LD Structured Data for projects.
|
||||
- [x] **Security**: Rate limiting added to `book-reviews`, `hobbies`, and `tech-stack` APIs.
|
||||
- [x] **Book Reviews**:
|
||||
- `ReadBooks` component updated to handle optional ratings/reviews.
|
||||
- `CurrentlyReading` component verified.
|
||||
- Automation guide created (`docs/N8N_HARDCOVER_GUIDE.md`).
|
||||
- [x] **Testing**: Added tests for `book-reviews`, `hobbies`, `tech-stack`, `CurrentlyReading`, and `ThemeToggle`.
|
||||
|
||||
## Directus CMS
|
||||
## Next Steps
|
||||
|
||||
- [ ] Messages Collection: `messages` mit key + translations (ersetzt `messages/*.json`)
|
||||
- [ ] Projects vollständig zu Directus migrieren (`node scripts/migrate-projects-to-directus.js`)
|
||||
- [ ] Directus Webhooks einrichten: On-Demand ISR Revalidation bei Content-Änderungen
|
||||
- [ ] Directus Roles: Public Read Token, Admin Write
|
||||
### Directus CMS
|
||||
- [ ] **Messages Collection**: Create `messages` collection in Directus for dynamic i18n (currently using `messages/*.json`).
|
||||
- [ ] **Projects Migration**: Finish migrating projects content to Directus (script exists: `scripts/migrate-projects-to-directus.js`).
|
||||
- [ ] **Webhooks**: Configure Directus webhooks for On-Demand ISR Revalidation.
|
||||
|
||||
## n8n Integrationen
|
||||
### Features
|
||||
- [ ] **Blog/Articles**: Design and implement the blog section.
|
||||
- [ ] **Project Detail Gallery**: Add a lightbox/gallery for project screenshots.
|
||||
|
||||
- [ ] Hardcover "Read Books" Webhook: Gelesene Bücher automatisch in Directus importieren
|
||||
- [ ] Spotify Now Playing verbessern: Album-Art Caching
|
||||
- [ ] Discord Rich Presence: Gaming-Status automatisch aktualisieren
|
||||
|
||||
## Frontend
|
||||
|
||||
- [ ] Dark Mode Support (Theme Toggle)
|
||||
- [ ] Blog/Artikel Sektion (Directus-basiert)
|
||||
- [ ] Projekt-Detail Seite: Bildergalerie/Lightbox
|
||||
- [ ] Performance: Bilder auf Next.js `<Image>` umstellen (statt `<img>`)
|
||||
- [ ] SEO: Structured Data (JSON-LD) für Projekte
|
||||
|
||||
## Testing & Qualität
|
||||
|
||||
- [ ] Jest Tests für neue API-Routes (`book-reviews`, `hobbies`, `tech-stack`)
|
||||
- [ ] Playwright E2E: Book Reviews Sektion testen
|
||||
- [ ] Lighthouse Score > 95 auf allen Seiten sicherstellen
|
||||
- [ ] Accessibility Audit (WCAG 2.1 AA)
|
||||
|
||||
## DevOps
|
||||
|
||||
- [ ] Staging Environment aufräumen und dokumentieren
|
||||
- [ ] GitHub Actions Migration (von Gitea Actions)
|
||||
- [ ] Docker Image Size optimieren (Multi-Stage Build prüfen)
|
||||
- [ ] Health Check Endpoint erweitern: Directus + n8n Connectivity
|
||||
### DevOps
|
||||
- [ ] **GitHub Actions**: Migrate CI/CD fully to GitHub Actions (from Gitea).
|
||||
- [ ] **Docker Optimization**: Further reduce image size.
|
||||
|
||||
Reference in New Issue
Block a user