A modular Python application for backing up files on Windows, with a focus on data safety, error handling, and automated testing.
- Full file backups from a source directory to a selected storage location
- Current backup and historical snapshots
- Automatic cleanup of old snapshots based on a configurable limit
- Disk space validation before backup operations
- Directory structure and size verification
- Error handling designed to protect existing backups
- Support for local disks, external USB drives, and network storage (NAS)
The application uses a modular structure that separates backup logic, storage validation, file operations, history management, and user-facing messages.
Detailed documentation is available in the docs/ directory.
The stable baseline, BackupProject 1.1, has 21 automated tests.
Latest test result: 21 passed.
Tests cover file operations, backup workflows, disk space checks, history management, directory verification, and error handling.
The core backup logic is implemented and tested.
The graphical user interface (GUI), Windows Task Scheduler integration, and additional features are planned for future development.
This is a personal learning project developed to practise Python programming, modular application design, error handling, and automated testing.
- Python
- pytest
- Git / GitHub
-
Install Python.
-
Clone or download this repository.
-
Install the required dependencies:
python -m pip install -r requirements.txt
-
Review
config.pyand configure the source and destination paths for your environment. -
Run the application:
python app.py
-
Run the tests:
python -m pytest -v
Note: This project is under development. Review the configuration and test the application with non-critical sample files before using it with important data.