All projects
Shipped

Software Engineering | School | 3 min read

EasySave.

A file backup software built like a real commercial product: C# / .NET 8, WPF MVVM interface, versioned releases, GitFlow, documentation site and an external encryption module. School project, professional standards.


Contributors
Contributors
Forks
Forks
Stars
Stars
Issues
Issues


EasySave

Logiciel de sauvegarde de fichiers — C# · .NET 8 · WPF · MVVM
Documentation »

Signaler un bug · Suggérer une feature · English


Table des matières
  1. À propos
  2. Stack
  3. Fonctionnalités
  4. Architecture
  5. Démarrage rapide
  6. Roadmap
  7. GitFlow
  8. Liens

À propos

EasySave est un logiciel de sauvegarde développé dans le cadre du cours de Génie Logiciel (CESI A3 FISE INFO 2025-2026). Il simule le cycle de vie complet d'un produit commercial chez l'éditeur fictif ProSoft : de l'application console minimaliste (v1.0) à l'interface graphique WPF complète (v2.0), jusqu'aux sauvegardes parallèles et la supervision centralisée (v3.0).

(back to top)


Stack

CSharp
CSharp
DotNet
DotNet
WPF
WPF

ComposantRôle
C# / .NET 8.0Langage et runtime
WPF + MVVMInterface graphique (v2.0+)
EasyLog.dllBibliothèque de logging découplée (JSON / XML)
NuGetGestion des dépendances
GitHub + GitFlowVersioning et gestion des branches

(back to top)


Fonctionnalités

v1.0 — Console

  • Jusqu'à 5 travaux de sauvegarde (complète ou différentielle)
  • Exécution via menu interactif ou CLI (EasySave.exe 1-3, 1;3)
  • Log JSON journalier par transfert de fichier
  • Fichier d'état temps réel (state.json)
  • Interface bilingue FR / EN

v1.1 — XML Logger

  • Choix du format de log : JSON ou XML
  • LoggerFactory — sélection automatique au démarrage
  • Préférence persistée dans settings.json

v2.0 — WPF / MVVM

  • Interface graphique WPF, abandon de la console
  • Travaux de sauvegarde illimités
  • Cryptage via CryptoSoft (XOR, extensions configurables)
  • Blocage automatique si un logiciel métier est détecté
  • Barre de progression en temps réel par travail
  • Édition inline des travaux
  • Vue Paramètres généraux (format log, extensions crypto, logiciel métier)

(back to top)


Architecture

Easy_Save/
├── EasyLog/                DLL de logging — JsonLogger, XmlLogger, LoggerFactory
├── EasySave.Core/          Logique métier partagée (console + WPF)
│   ├── Model/Entities/     SaveJob · SaveState · SaveType
│   ├── Model/Service/      SaveExecutor · ConfigService · StateService
│   │                       AppPaths · CryptoService · BusinessAppWatcher
│   └── Model/Strategies/   FullSaveStrategy · DifferentialSaveStrategy
├── EasySave.ViewModel/     ViewModels MVVM (v2.0+)
├── EasySave.WPF/           Application graphique WPF (v2.0+)
│   ├── Views/              JobListView · SettingsView · MainWindow
│   └── Resources/          Localisation .resx FR/EN · Styles
└── EasySave.Tests/         Tests unitaires MSTest

Tous les fichiers runtime sont écrits dans %AppData%\EasySave\ — aucun chemin hardcodé.

(back to top)


Démarrage rapide

Prérequis : .NET 8.0 SDK

git clone https://github.com/sorooty/Easy_Save.git
cd Easy_Save
dotnet build

Interface graphique (v2.0) :

dotnet run --project EasySave.WPF

Interface console (v1.0 / v1.1) :

dotnet run --project EasySave.Console

Tests :

dotnet test

(back to top)


Roadmap

VersionDescriptionStatut
v1.0Application console, 5 travaux, EasyLog.dll✅ Livré
v1.1Log XML, LoggerFactory✅ Livré
v2.0WPF/MVVM, CryptoSoft, logiciel métier, progression✅ Livré
v3.0Sauvegardes parallèles, Play/Pause/Stop, Docker logs🔄 En cours

Voir les issues ouvertes pour la liste complète.

(back to top)


GitFlow

BrancheRôle
mainVersion stable — merge via PR taguée uniquement
developIntégration — toujours compilable
feature/*Nouvelle fonctionnalité
hotfix/*Correction urgente sur main
release/*Préparation d'une livraison

(back to top)


Liens

(back to top)