Skip to content

Latest commit

 

History

History
244 lines (171 loc) · 8.79 KB

File metadata and controls

244 lines (171 loc) · 8.79 KB

📝 Application de Prise de Notes en Rust

Une application moderne et élégante de prise de notes développée en Rust avec une interface utilisateur en mode sombre, offrant une expérience fluide et intuitive pour gérer vos notes quotidiennes.

Interface Preview

✨ Fonctionnalités

Fonctionnalités principales

  • 🌙 Interface en mode sombre - Plusieurs thèmes personnalisables (Sombre, Bleu, Vert, Clair) pour un confort visuel optimal
  • 📝 Création et édition de notes - Éditeur de texte riche avec support de 35+ lignes en mode normal
  • 💾 Sauvegarde automatique - Sauvegarde automatique après 3 secondes d'inactivité
  • 🔍 Recherche avancée - Recherche par texte, par tags ou par date
  • 🏷️ Système de tags - Organisez vos notes avec des tags personnalisés
  • 📊 Statistiques - Suivez le nombre de notes, mots et caractères
  • 📄 Support Markdown - Aperçu et formatage Markdown pour vos notes
  • 📜 Historique des versions - Jusqu'à 10 versions précédentes de chaque note avec restauration
  • 📤 Export/Import - Exportez et importez vos notes au format JSON
  • ⌨️ Raccourcis clavier - Navigation rapide avec Ctrl+S, Ctrl+N, F11, Delete
  • ⛶ Mode plein écran - Focus total sur l'édition avec F11
  • 🗑️ Confirmation avant suppression - Protection contre les suppressions accidentelles

Fonctionnalités avancées

  • Tri intelligent - Triez vos notes par date (récentes/premières) ou par titre (A-Z/Z-A)
  • Aperçu amélioré - Visualisez un aperçu de chaque note dans la liste
  • Compteur en temps réel - Affichez le nombre de mots et caractères pendant la saisie
  • Recherche multi-critères - Combinez recherche par texte, tags et dates
  • Interface responsive - Panneau latéral redimensionnable pour s'adapter à vos besoins

🚀 Installation et Exécution

Prérequis

  • Rust et Cargo installés sur votre système
  • Pour installer Rust : https://www.rust-lang.org/tools/install
  • Windows : MSYS2 ou Visual Studio Build Tools (pour la compilation)
  • Linux : Compilateur C++ et dépendances système
  • macOS : Xcode Command Line Tools

Compilation

Compiler et exécuter l'application

cargo run --release

Compiler uniquement

cargo build --release

Emplacement des exécutables

L'exécutable sera dans :

  • Windows : target/release/prisedenote.exe
  • Linux : target/release/prisedenote (compiler sur Linux avec cargo build --release)
  • macOS : target/release/prisedenote (compiler sur macOS avec cargo build --release)

🐧 Compilation pour Linux depuis Windows

Pour compiler pour Linux depuis Windows, vous avez plusieurs options :

Option 1 : Utiliser WSL (Windows Subsystem for Linux) - Recommandé

wsl
cd /mnt/c/Users/mika/Desktop/prisedenote
cargo build --release

Option 2 : Utiliser Docker

docker run --rm -v "%cd%":/app -w /app rust:latest cargo build --release

Option 3 : Compiler directement sur un système Linux

cargo build --release

📖 Guide d'utilisation

Créer une nouvelle note

  1. Cliquez sur le bouton "➕ Nouvelle Note" dans le panneau de gauche
  2. Ou utilisez le raccourci clavier Ctrl+N
  3. Saisissez un titre et le contenu de votre note

Sauvegarder une note

  • Manuel : Cliquez sur "💾 Sauvegarder" ou appuyez sur Ctrl+S
  • Automatique : La note est sauvegardée automatiquement après 3 secondes d'inactivité

Rechercher des notes

  1. Utilisez la barre de recherche en haut du panneau gauche
  2. Recherchez par texte dans le titre ou le contenu
  3. Recherchez par tag en utilisant le champ "🏷️"
  4. Recherchez par date en utilisant le champ "📅"

Organiser avec des tags

  1. Dans l'éditeur, utilisez le champ "Tags"
  2. Séparez les tags par des virgules : travail, important, projet
  3. Les tags apparaissent dans la liste des notes

Utiliser les raccourcis clavier

Raccourci Action
Ctrl+S Sauvegarder la note actuelle
Ctrl+N Créer une nouvelle note
F11 Basculer en mode plein écran
Delete Supprimer la note actuelle (avec confirmation)

Exporter/Importer des notes

  1. Ouvrez le menu "⚙️ Options" dans le panneau gauche
  2. Cliquez sur "📤 Exporter" pour sauvegarder toutes vos notes en JSON
  3. Cliquez sur "📥 Importer" pour charger des notes depuis un fichier JSON

Changer de thème

  1. Ouvrez le menu "⚙️ Options"
  2. Sélectionnez un thème : Sombre, Bleu, Vert ou Clair
  3. Le thème est appliqué immédiatement

Mode plein écran

  • Appuyez sur F11 ou cliquez sur "⛶ Plein écran"
  • Le panneau latéral disparaît pour un focus total sur l'édition
  • Appuyez à nouveau sur F11 pour revenir à la vue normale

Historique des versions

  1. Ouvrez une note qui a été modifiée
  2. En bas de l'éditeur, cliquez sur "📜 Historique"
  3. Consultez jusqu'à 10 versions précédentes
  4. Cliquez sur "Restaurer" pour revenir à une version antérieure

💾 Stockage des données

Les notes sont automatiquement sauvegardées dans le fichier notes.json dans le répertoire de l'application. Ce fichier contient toutes vos notes au format JSON, ce qui permet :

  • Sauvegarde facile - Copiez simplement le fichier notes.json
  • Portabilité - Transférez vos notes entre différentes installations
  • Backup - Faites des sauvegardes régulières de ce fichier

🏗️ Structure du Projet

prisedenote/
├── Cargo.toml          # Configuration du projet et dépendances
├── README.md           # Documentation principale
├── .gitignore          # Fichiers ignorés par Git
├── assets/             # Ressources visuelles
│   ├── interface-preview.svg
│   ├── logo.svg
│   └── README.md
└── src/
    └── main.rs         # Code source principal de l'application

📚 Documentation

Documentation du code source

La documentation complète du code source Rust est disponible et peut être générée avec :

# Générer la documentation
cargo doc --no-deps

# Ouvrir la documentation dans le navigateur
cargo doc --open --no-deps

La documentation générée se trouve dans target/doc/prisedenote/index.html et contient :

  • Documentation de toutes les structures (Note, NoteVersion, PriseDeNoteApp, etc.)
  • Documentation de toutes les fonctions et méthodes
  • Documentation des types et enums
  • Navigation interactive entre les modules

Documentation supplémentaire

  • DIMENSIONS.md - Dimensions détaillées de l'interface utilisateur
  • JSON-STORAGE.md - Documentation complète du système d'enregistrement JSON

🛠️ Technologies Utilisées

  • eframe - Framework pour créer des applications natives avec egui
  • egui - Bibliothèque d'interface utilisateur immédiate (immediate mode GUI)
  • serde / serde_json - Sérialisation et désérialisation JSON
  • chrono - Gestion des dates et heures
  • pulldown-cmark - Parser Markdown
  • rfd - Dialogues de fichiers natifs

🎨 Caractéristiques de l'interface

  • Panneau latéral : 400 pixels de largeur par défaut, redimensionnable
  • Zone d'édition : 35 lignes en mode normal, 40 lignes en mode plein écran
  • Fenêtre : 1400x900 pixels par défaut
  • Thèmes : 4 thèmes prédéfinis avec personnalisation des couleurs

📝 Format des notes

Chaque note contient :

  • Titre : Texte libre
  • Contenu : Texte multiligne avec support Markdown
  • Tags : Liste de tags séparés par des virgules
  • Date de création : Timestamp automatique
  • Date de modification : Mise à jour automatique
  • Historique : Jusqu'à 10 versions précédentes

🔒 Sécurité et confidentialité

  • Données locales : Toutes vos notes sont stockées localement sur votre machine
  • Pas de connexion réseau : L'application ne nécessite aucune connexion Internet
  • Format ouvert : Les notes sont au format JSON, facilement lisible et portable

🤝 Contribution

Les contributions sont les bienvenues ! N'hésitez pas à :

  • Ouvrir une issue pour signaler un bug ou proposer une fonctionnalité
  • Créer une pull request pour améliorer le code
  • Partager vos idées et suggestions

📄 Licence

Ce projet est disponible sous licence libre. Consultez le fichier de licence pour plus de détails.

👤 Auteur

Développé avec ❤️ en Rust


Profitez de votre application de prise de notes ! 📝✨