This project is a simple backup software that allows you to create backups of your files and folders.
- .NET
 - C#
 
- English
 - French
 - Spanish
 - German
 - Italian
 - Russian
 - Arabic
 
EasySave now offers an enhanced interface for managing your backup jobs. Below is a comprehensive guide to navigate through the application's features. 
Upon launching the application, the main menu presents you with the following options: 
- Execute Save Job : Run configured backup jobs. 
 - Create Save Job : Set up a new backup job. 
 - Update Save Job : Modify existing backup jobs. 
 - Delete Save Job : Remove backup jobs that are no longer needed. 
 - Settings : Adjust application settings such as language, log format, encryption extensions and professional app. 
 
To execute or delete a save job: 
- Navigate to the corresponding option from the main menu. 
 - Select the desired job from the list displayed on the right side of the interface. 
 
Both creating a new save job and updating an existing one share a similar process: 
- For creation : Choose 
Create Save Jobfrom the main menu. A new page opens. - For update : Select a save job to modify, then choose 
Update Save Job. You'll be directed to a similar page as for creation. 
On the configuration page: 
- Save Job Name : Enter a unique name for the job. 
 - Source Folder : Specify the folder you wish to back up. 
 - Destination Folder : Define where the backup should be stored. 
 - Save Type : Select between a full or differential backup. 
 
Accessing Settings from the main menu opens a new page where you can configure: 
- Language : Choose between English and French. 
 - Log Format : Select your preferred format for logs, either JSON or XML. 
 - Extensions to Encrypt : Manually input file extensions you want to encrypt during the backup process. 
 - Professional App : Block the transfer if the application(s) in Professional App are open
 - Priority Extension : No backup of a non-priority file can be made as long as there are priority extensions pending on at least one job.
 - Limited weight(Ko) : To avoid overloading the bandwidth, no two files larger than n KB may be transferred at the same time.
 - Server Status : Start or shut down the server, so you can monitor the progress of backups in real time on a remote workstation
 - Server Port : Port to set up the TCP connection (client-server)
 
To exit the application safely: 
- Navigate to 
Close Applicationfrom any page. - Confirm to ensure all your settings and configurations are saved. 
 
By adhering to this guide, you'll be able to efficiently manage your backup jobs with EasySave. Whether it's performing routine backups or adjusting settings, EasySave's intuitive interface caters to all your data protection needs. 
Depending on your operating system, download the appropriate zip file from the releases on our GitHub page.
- Download EasySaveGUI.zip. 
 - Extract the zip file. 
 - Launch 
EasySaveGUI.exe. 
- Download EasySave_RemoteGUI.zip. 
 - Extract the zip file. 
 - Launch 
EasySave_RemoteGUI.exe. 
Note: EasySave_RemoteGUI is designed to work in conjunction with EasySaveGUI. Make sure that EasySaveGUI is running on your network or accessible over the internet before connecting with EasySave_RemoteGUI.
- Download EasySaveConsole_Linux64.tar.gz 
 - Extract the tar file with 
tar -xzvf EasySaveConsole_Linux.tar.gz. - Open a terminal and navigate to the extracted folder: 
cd /path/to/linux-x64. - Make the file executable with 
chmod +x EasySaveConsole. - Launch the application with 
./EasySaveConsole. 
A Docker container is available to easily test the application on Linux. You can pull it from Docker Hub: 
docker pull airg213/easysaveconsole-v1.1:latest 
To launch the container and access the application: 
docker run -it --name easysaveconsole-v1.1 airg213/easysaveconsole-v1.1:latest 
Once in the container, navigate to the application directory: 
cd /opt/linux-x64 
Launch the application with: 
./EasySaveConsole 
The CI/CD pipeline for EasySave is now powered by GitHub Actions, enabling automated workflows for building, testing, and deploying both the EasySave main application (EasySaveGUI) and the remote GUI application (EasySave_RemoteGUI) directly from GitHub. This pipeline ensures that every change pushed to the main branch goes through a rigorous process of validation before being made available for release.
- Trigger: Any push or pull request to the 
mainbranch. - Actions: The .NET applications (
EasySaveGUIandEasySave_RemoteGUI) are built and tested using the latest version of the .NET framework. This ensures that all changes are verified and meet the project's quality standards. 
- Trigger: Successful completion of the build and test stage on the 
mainbranch. - Actions: Each application is published, and the artifacts (executable files) are prepared for deployment. These artifacts are then archived and uploaded as workflow artifacts, ensuring they are available for deployment.
 
- Trigger: Manual trigger by the repository maintainers or automated trigger upon successful completion of the publish stage.
 - Actions: A new release is created on GitHub, and the archived artifacts from the publish stage for both 
EasySaveGUIandEasySave_RemoteGUIare attached to the release. This makes the latest version of each application readily available for users to download directly from the GitHub releases page. 
To view and manage the CI/CD pipeline:
- Navigate to the GitHub repository.
 - Click on the "Actions" tab to see the list of workflows.
 - You can see the status of recent workflows, view logs, and manage workflow runs.
 
To download the latest version of EasySave: 
- Visit the Releases page of the EasySave GitHub repository. 
 - Download the appropriate artifact for your operating system (Windows/Linux). 
 - Follow the usage guide for installation and operation instructions. 
 
The GitHub Actions CI/CD pipeline ensures that EasySave is continuously integrated and delivered with the highest standards of quality and reliability. 
For more details on GitHub Actions and workflows, visit the GitHub Actions documentation. 
- FODIL Nel alias @nel34
 - ARRIGHI Fabien alias @arrighi-fabien
 - GOUADFEL Rayan alias @AirG213
 - MARCELLI Enzo alias @EnzoMrcli
 
Project Link: https://github.com/arrighi-fabien/Projet-Programmation-Systeme