Commit Graph
269 Commits
Author SHA1 Message Date
LogiFlow d8c9f2cdd0 Merge pull request #12 from R0m1k3/claude/dockerized-notes-todo-app-011CV1roGRbnm21wgtB2LMxP
UX: Correction angles carte + Input inline todos + Système de fichier…
2025-11-11 16:44:13 +01:00
Claude 820b0cfeda UX: Correction angles carte + Input inline todos + Système de fichiers complet
## Corrections UX:
- Fix coins arrondis en bas des notes étendues (overflow: hidden)
- Remplacement prompt() par input inline pour ajout de tâches
- Bouton "Ajouter" avec validation au clic ou touche Entrée
- Expérience utilisateur fluide sans popups intrusifs

## Système de fichiers complet:

### Backend:
- Création table note_files (id, note_id, filename, original_name, file_size, mime_type, created_at)
- POST /api/notes/:id/files - Upload fichier (multer, 10MB max)
- GET /api/notes/:id/files - Liste fichiers d'une note
- GET /api/notes/files/:fileId/download - Téléchargement sécurisé
- DELETE /api/notes/files/:fileId - Suppression fichier
- Stockage dans public/uploads/files/
- Auto-création dossier si nécessaire

### Frontend:
- Bouton "Ajouter un fichier" dans footer des notes
- Input hidden fileInput pour sélection
- Affichage liste fichiers avec icône, nom, taille
- Boutons télécharger/supprimer par fichier
- Fonction formatFileSize() pour affichage lisible
- Event delegation pour tous les boutons fichiers
- Confirmation avant suppression

### Intégration:
- GET /api/notes charge maintenant files[] et files_count
- renderInlineFiles() génère HTML des fichiers
- downloadFile() ouvre download dans nouvel onglet
- deleteFile() avec confirmation dialog
- Reload automatique après upload/delete
- Conservation état étendu après opérations

### CSS moderne:
- .note-file-item avec hover effect
- .note-file-icon, .note-file-info, .note-file-actions
- Buttons download/delete avec transitions
- Design cohérent avec reste de l'app
- Truncate nom fichier avec ellipsis

Tous types de fichiers acceptés (PDF, DOC, ZIP, etc.)
2025-11-11 15:40:15 +00:00
LogiFlow 04e494d8f5 Merge pull request #11 from R0m1k3/claude/dockerized-notes-todo-app-011CV1roGRbnm21wgtB2LMxP
UX: Refonte complète - Notes en expansion inline (Google Keep style)
2025-11-11 16:31:23 +01:00
Claude 17a088ec05 UX: Refonte complète - Notes en expansion inline (Google Keep style)
Implémentation d'un système d'expansion inline des notes au lieu de modals:
- Les notes s'agrandissent directement dans la grille au clic
- Mode compact: prévisualisation avec titre, contenu, image, premiers 3 todos
- Mode étendu: édition complète avec titre, contenu, todos, image, actions
- Auto-save avec debounce (1s) sur les modifications
- Filtres Actives/Archivées pour organiser les notes
- Système d'archivage avec endpoint API dédié

Fonctionnalités inline:
- expandNote(noteId): agrandir une note
- collapseNote(): réduire la note étendue
- saveNoteInline(noteId): sauvegarde auto avec debounce
- archiveNote(noteId, archived): archiver/désarchiver
- deleteNoteInline(noteId): supprimer depuis l'inline
- Gestion complète des todos inline (add, toggle, delete)
- Upload/suppression d'images inline
- Fermeture avec Escape

Event delegation pour performances:
- Tous les événements gérés via delegation sur #notesGrid
- Suppression de tous les attributs onclick/onchange (CSP compliant)
- Click handlers: expand, collapse, archive, delete, image, todos
- Change handlers: checkbox todos inline

CSS moderne avec shadows:
- .note-card.expanded: carte agrandie sur toute la largeur
- Styles inline pour titre, contenu, todos, image, footer
- Transitions fluides et hover effects
- View filters avec background pills
- Responsive grid layout

Backend prêt:
- GET /api/notes?archived=true/false
- PUT /api/notes/:id/archive
- Todos chargés avec chaque note
- Migration auto colonne 'archived'
2025-11-11 15:26:19 +00:00
LogiFlow 7e43a46b7a Merge pull request #10 from R0m1k3/claude/dockerized-notes-todo-app-011CV1roGRbnm21wgtB2LMxP
Claude/dockerized notes todo app 011 cv1ro g rbnm21wgt b2 l mx p
2025-11-11 16:15:57 +01:00
Claude c6484702e2 UI: Ajout filtres Actives/Archivées et simplification HTML
- Ajout section-actions avec view-filters
- Boutons Actives/Archivées avec icônes SVG
- Simplification: plus de note-editor-backdrop
- Input file caché pour images
- Structure prête pour expansion inline des notes
- Interface plus épurée et moderne
2025-11-11 13:57:43 +00:00
Claude 40caa7cb35 Backend: Ajout système d'archivage et todos dans cartes
- Migration auto colonne archived (BOOLEAN DEFAULT 0)
- Route GET /api/notes?archived=true/false pour filtrer
- Route PUT /api/notes/:id/archive pour archiver/désarchiver
- Chargement des todos avec chaque note (todos[], todos_count, todos_completed)
- Support filtrage par statut archivé
- Logs archivage/désarchivage
2025-11-11 13:56:10 +00:00
LogiFlow 2dfdc5d24b Merge pull request #9 from R0m1k3/claude/dockerized-notes-todo-app-011CV1roGRbnm21wgtB2LMxP
Claude/dockerized notes todo app 011 cv1ro g rbnm21wgt b2 l mx p
2025-11-11 14:51:18 +01:00
Claude 95f4d3b50b UX: Refonte UI complète - Partie 3/3 (JavaScript)
- Adaptation pour note editor au lieu de modal
- Changement des IDs (noteModal → noteEditorBackdrop)
- Ajout bouton Enregistrer avec feedback
- Event listeners mis à jour
- Fonction saveCurrentNote pour sauvegarde manuelle
- Fermeture par backdrop ou Escape maintenue
- Auto-save conservé avec debounce
- Toutes les fonctionnalités préservées
2025-11-11 13:49:40 +00:00
Claude 21974c82c4 UX: Refonte UI complète - Partie 2/3 (Components CSS)
- Design moderne avec shadows élégantes
- Note cards avec effet hover et transformation
- Todo box sticky avec design épuré
- Note editor fullscreen au lieu de modal
- Boutons modernes avec transitions
- Tables admin avec hover effects
- Modal de confirmation élégant
- Animations fluides (fadeIn, slideUp)
- Responsive design intégré
2025-11-11 13:48:08 +00:00
Claude b94667d268 UX: Refonte UI complète - Partie 1/2
- Nouveau design system moderne (blanc/noir)
- Favicon SVG moderne avec logo
- Nouveau header avec logo SVG intégré
- Layout grid: notes + todo box (pas de sidebar)
- Variables CSS complètes (shadows, spacing, fonts)
- Nouveau layout responsive
- Interface minimaliste et élégante
2025-11-11 13:45:21 +00:00
Claude 2d2834b70a Feature: Ajout modification du mot de passe dans l'administration
- Ajout bouton 🔑 Mot de passe pour chaque utilisateur
- Fonction changeUserPassword avec confirmation du mot de passe
- Validation de longueur minimum (6 caractères)
- Double saisie pour confirmation
- Utilisation de la route PUT /api/users/:id existante
- Style bleu pour le bouton d'édition
- Event delegation pour le nouveau bouton
- Permet aux admins de changer leur propre mot de passe
2025-11-11 13:33:11 +00:00
LogiFlow 0a68aabfc5 Merge pull request #8 from R0m1k3/claude/dockerized-notes-todo-app-011CV1roGRbnm21wgtB2LMxP
Fix: Suppression des gestionnaires inline pour conformité CSP
2025-11-11 13:14:17 +01:00
Claude bdd2f7a86b Fix: Suppression des gestionnaires inline pour conformité CSP
- Remplacement de tous les onclick/onchange par event delegation
- Utilisation de data attributes (data-todo-id, data-note-todo-id, data-user-id)
- Event listeners attachés aux conteneurs (#todoList, #noteTodosList, #usersTableBody)
- Plus besoin d'exposer les fonctions sur window
- Conforme à la Content Security Policy de Helmet.js
- Résout: 'script-src-attr' violations bloquant les actions de la todo list
2025-11-11 12:12:21 +00:00
LogiFlow 0d980dde3b Merge pull request #7 from R0m1k3/claude/dockerized-notes-todo-app-011CV1roGRbnm21wgtB2LMxP
Claude/dockerized notes todo app 011 cv1ro g rbnm21wgt b2 l mx p
2025-11-11 13:08:42 +01:00
Claude 8c39ead2c6 Feature: Modal de confirmation pour les suppressions et style barré pour les todos
- Ajout modal de confirmation personnalisé avec icône, titre et message
- Remplacement de tous les confirm() natifs par le nouveau modal
- Modal animé avec backdrop et fermeture Escape
- Style barré automatique pour les todos complétées (déjà présent)
- Exposition globale des fonctions toggleTodo et deleteTodo
- Confirmation visuelle pour :
  * Suppression de notes
  * Suppression de todos (note et globaux)
  * Suppression d'images
  * Suppression d'utilisateurs
  * Création d'admin
- Design cohérent avec boutons Annuler/Confirmer
- Animations smooth avec transitions CSS
2025-11-11 12:06:59 +00:00
Claude c70a6725d2 Fix: Ajout fonctionnalité complète d'administration
- Ajout event listener pour le bouton Administration
- Fonctions pour ouvrir/fermer le modal admin
- Chargement et affichage des utilisateurs dans une table
- Création d'utilisateurs avec prompts
- Suppression d'utilisateurs avec confirmation
- Style pour le bouton de suppression
- Fermeture du modal avec Escape ou clic sur backdrop
- Résout le problème: impossible d'accéder à l'administration
2025-11-11 12:01:57 +00:00
LogiFlow b807c21503 Merge pull request #6 from R0m1k3/claude/dockerized-notes-todo-app-011CV1roGRbnm21wgtB2LMxP
Claude/dockerized notes todo app 011 cv1ro g rbnm21wgt b2 l mx p
2025-11-11 12:57:35 +01:00
Claude e156af7fa0 Docs: Ajout section dépannage dans le README
- Documentation pour l'erreur image_filename
- Instructions de résolution automatique et manuelle
- Ajout troubleshooting pour erreurs courantes
2025-11-11 11:35:04 +00:00
Claude c5d1cfd9fd Fix: Auto-migration pour ajouter la colonne image_filename manquante
- Ajout d'une vérification automatique au démarrage
- Utilise PRAGMA table_info pour vérifier les colonnes existantes
- Ajoute image_filename si elle n'existe pas
- Résout l'erreur SQLITE_ERROR: no such column: n.image_filename
2025-11-11 11:34:32 +00:00
Claude 2011c4f6a4 Ajout de migrations SQL pour corriger le schéma de base de données
- Création du dossier migrations/
- Migration 001: Ajout de la colonne image_filename manquante
- Script run-migrations.sh pour appliquer les migrations
- Documentation dans migrations/README.md
- Correction de l'erreur 'no such column: n.image_filename'
2025-11-11 11:31:56 +00:00
LogiFlow e2739eb0e9 Merge pull request #5 from R0m1k3/claude/dockerized-notes-todo-app-011CV1roGRbnm21wgtB2LMxP
Correction de l'erreur 500 sur /api/notes et gestion robuste côté client
2025-11-11 12:29:13 +01:00
Claude cc3c776f68 Correction de l'erreur 500 sur /api/notes et gestion robuste côté client
- Remplacement de COUNT(DISTINCT) par une sous-requête dans SQLite
- Ajout de vérification Array.isArray côté client
- Gestion d'erreur améliorée avec fallback sur tableau vide
- Correction du bug 'filtered.forEach is not a function'
- L'API retourne toujours un tableau, même en cas d'erreur
2025-11-11 11:27:45 +00:00
LogiFlow 5b3837238f Merge pull request #4 from R0m1k3/claude/dockerized-notes-todo-app-011CV1roGRbnm21wgtB2LMxP
Correction du problème de permissions SQLite avec volumes nommés
2025-11-11 12:23:36 +01:00
Claude beb8eaa994 Correction du problème de permissions SQLite avec volumes nommés
- Remplacement des bind mounts par des volumes Docker nommés
- Les volumes notes_data et notes_uploads ont automatiquement les bonnes permissions
- Correction de l'erreur SQLITE_CANTOPEN
- Mise à jour du README avec les commandes de backup pour volumes Docker
- L'utilisateur node dans le container peut maintenant écrire dans les volumes
2025-11-11 11:22:48 +00:00
LogiFlow 72e6569297 Merge pull request #3 from R0m1k3/claude/dockerized-notes-todo-app-011CV1roGRbnm21wgtB2LMxP
Correction du problème de permissions au démarrage du container
2025-11-11 12:21:09 +01:00
Claude 9e7a433110 Correction du problème de permissions au démarrage du container
- Retrait de la création du .gitkeep au runtime (déjà présent dans le repo)
- Ajout de gestion d'erreur try/catch pour la création des dossiers
- Les volumes Docker montés ne causeront plus d'erreurs de permissions
- Correction de l'erreur EACCES lors de l'écriture dans /app/public/uploads
2025-11-11 11:19:43 +00:00
LogiFlow ab926960fb Merge pull request #2 from R0m1k3/claude/dockerized-notes-todo-app-011CV1roGRbnm21wgtB2LMxP
Claude/dockerized notes todo app 011 cv1ro g rbnm21wgt b2 l mx p
2025-11-11 12:17:59 +01:00
Claude 6c61fea99e Ajout du dossier data avec .gitkeep pour la base de données 2025-11-11 11:16:27 +00:00
Claude 607f4a30da Ajout du dossier uploads avec .gitkeep 2025-11-11 11:16:16 +00:00
Claude 50fdf024e5 Ajout du package-lock.json nécessaire pour npm ci dans Docker
- Retrait de package-lock.json du .gitignore
- Ajout du fichier package-lock.json généré
- Correction du build Docker qui échouait avec npm ci
2025-11-11 11:15:51 +00:00
LogiFlow 0b0f749ad4 Merge pull request #1 from R0m1k3/claude/dockerized-notes-todo-app-011CV1roGRbnm21wgtB2LMxP
Build Dockerized Notes and Todo App
2025-11-11 12:14:18 +01:00
Claude ecb12ce8dd Changement du port de l'application de 3000 à 2222
Modifications:
- docker-compose.yml: port mapping 2222:2222 et variable PORT=2222
- Dockerfile: EXPOSE 2222 et healthcheck sur port 2222
- server.js: port par défaut changé de 3000 à 2222
- .env.example: PORT=2222
- README.md: toutes les références au port 3000 remplacées par 2222
  (installation, accès, configuration Nginx)

L'application écoute maintenant sur le port 2222 au lieu de 3000.
2025-11-11 11:10:07 +00:00
Claude 7a716dc17a Création complète de l'application NoteFlow - Notes & Todo List
Application web Dockerisée moderne avec:
- Backend Node.js + Express + SQLite
- Frontend HTML/CSS/JavaScript vanilla
- Authentification JWT + bcrypt
- Gestion des notes avec images et todos intégrés
- Sidebar todos globaux avec filtres
- Interface utilisateur fluide avec animations CSS
- Administration des utilisateurs
- Sécurité production-ready (Helmet, rate limiting, validation)
- Configuration Docker complète
- Documentation README détaillée

Stack technique:
- Node.js 20 Alpine
- SQLite3 avec indexes optimisés
- Multer pour upload d'images
- Winston pour logging
- Express-validator pour validation
- Architecture modulaire (routes, middleware, config)

Fonctionnalités:
- Notes: CRUD complet, recherche, images, todos intégrés
- Todos globaux: création, toggle, filtres, suppression
- Auth: JWT 24h, bcrypt 12 rounds
- Admin: gestion utilisateurs complète
- UI: masonry grid, modal animations, responsive

Configuration Docker:
- Healthcheck intégré
- Volumes persistants pour data et uploads
- Network nginx_default pour reverse proxy
- Variables d'environnement configurables

Prêt pour déploiement avec: docker-compose up -d
2025-11-11 09:36:32 +00:00
Michael a8599c8703 [dyad] wrote 4 file(s) 2025-11-06 16:18:08 +01:00
Michael 868b5d601a [dyad] wrote 2 file(s) 2025-11-06 16:13:37 +01:00
Michael c2bc56eb84 [dyad] wrote 3 file(s) 2025-11-06 16:12:27 +01:00
Michael c759181e23 [dyad] wrote 4 file(s), added tailwindcss-animate package(s) 2025-11-06 16:11:50 +01:00
Michael 24903521f4 [dyad] wrote 4 file(s) 2025-11-06 16:10:48 +01:00
Michael 080b08caf0 [dyad] wrote 3 file(s) 2025-11-06 16:08:49 +01:00
Michael 52664951c3 [dyad] wrote 4 file(s) 2025-11-06 16:05:46 +01:00
Michael 11dca3824c [dyad] wrote 4 file(s) 2025-11-06 16:01:23 +01:00
Michael 0bcffed331 [dyad] wrote 4 file(s) 2025-11-06 15:58:55 +01:00
Michael 209c48ee6b [dyad] wrote 5 file(s) 2025-11-06 15:55:54 +01:00
Michael 1ce71f37c2 [dyad] wrote 6 file(s) 2025-11-06 15:50:27 +01:00
Michael 52267eb3ca [dyad] wrote 6 file(s), added @tanstack/react-query package(s) 2025-11-06 15:46:43 +01:00
Michael a24f107f0a [dyad] wrote 3 file(s) 2025-11-06 15:43:47 +01:00
Michael 93b2d8af24 [dyad] wrote 1 file(s) 2025-11-06 15:20:51 +01:00
Michael bd9832daa2 [dyad] wrote 1 file(s) 2025-11-06 15:03:14 +01:00
Michael 59254d538e [dyad] wrote 1 file(s) 2025-11-06 15:00:08 +01:00