Aller au contenu principal
Aperçu du projet Tidy App
2024 - 2025 Développeur Fullstack Projet Personnel

Tidy App

Application desktop et CLI de rangement intelligent de fichiers avec support IA (Ollama local + OpenAI).

Présentation

Tidy App est un outil de rangement et renommage automatique de fichiers, disponible en application desktop (Windows, macOS, Linux) et en CLI. Le projet utilise l’intelligence artificielle pour suggérer des noms de fichiers cohérents et des structures de dossiers adaptées au contenu.

L’application extrait les métadonnées des fichiers (EXIF pour les images, propriétés PDF, documents Office) et permet de créer des templates de nommage dynamiques. Un système d’historique complet permet d’annuler toutes les opérations.

Le projet représente plus de 70 000 lignes de TypeScript, avec un backend Rust via Tauri 2.0.

Objectifs, contexte, enjeu et risques

Contexte : Projet personnel né d’un besoin concret : après des années d’accumulation, mon dossier Téléchargements contenait plus de 3000 fichiers mal nommés. Les renommer manuellement aurait pris des heures.

Problématique : Les outils de renommage existants sont soit trop basiques (renommage séquentiel), soit trop complexes (expressions régulières). Aucun n’exploitait les métadonnées des fichiers ni l’IA pour suggérer des noms qui ont du sens.

Objectifs : Créer un outil de rangement automatique qui combine extraction de métadonnées, templates personnalisables et suggestions IA pour des noms de fichiers lisibles.

Risques identifiés : Complexité du développement cross-platform (Windows, macOS, Linux), intégration de modèles IA locaux et distants, gestion sécurisée des opérations fichiers.

Étapes – ce que j’ai fait

Phase 1 - Choix technologiques : Benchmark entre Electron et Tauri. Choix de Tauri 2.0 pour la légèreté (bundle de 15 Mo vs 150 Mo pour Electron) et les performances natives de Rust.

Phase 2 - Moteur de renommage : Développement du core en TypeScript avec extraction de métadonnées. Support de 12 formats différents (JPEG, PNG, PDF, DOCX, MP3, MP4, etc.). Système de templates avec plus de 30 variables disponibles.

Phase 3 - Intégration IA : Implémentation d’un système de prompts optimisés pour la suggestion de noms. Support d’Ollama pour le mode hors-ligne (confidentialité) et OpenAI pour de meilleurs résultats. Mise en cache des suggestions pour éviter les appels API redondants.

Phase 4 - Sécurité et UX : Système d’historique avec rollback complet. Prévisualisation avant exécution. Mode “dry run” pour tester sans modifier. Gestion des conflits de noms automatique.

Équipe

J’ai travaillé seul sur ce projet, de la conception à la publication. Choix technologiques, architecture, développement, tests, publication NPM et distribution desktop : tout a été fait en autonomie complète.

Résultats

  • Tauri 2.0 et les bases de Rust appris sur ce projet
  • Intégration de LLMs en pratique (Ollama local, API OpenAI)
  • Développement d’applications desktop cross-platform
  • Apprentissage de la gestion des opérations fichiers sécurisées avec rollback
  • Application fonctionnelle pour Windows, macOS et Linux (bundle < 20 Mo)
  • CLI publiée sur NPM pour l’automatisation
  • Système d’historique complet permettant d’annuler toutes les opérations
  • Mode hors-ligne respectueux de la vie privée grâce à Ollama

Compétences Associées