Architecture - meks77/ClientServerBackup GitHub Wiki
Design of Architecture
Components
Commons
Components which are needed on the Server and on the Client.
Backend
The lightweight server software which provides the Interface for backup used by the clients
Client
The pure Java Backup Client which uses the BackupServer Interface to backup, browse and recover files.
Server-Frontend
The Html Frontend for the server
Synology
This component contains everything that it can be used configured and monitored in an Synology NAS.
ClientInstaller-Windows
The sources for the installer for Windows OS
ClientInstaller-Linux
The sources for the installer for Linux OS
Deployment
without Synology
with Synology
Technologies and Frameworks
In generall Java should be the implementing language. Maybe Kotlin would be a possibility. Furthermore Java 11 would be a candidate because of the modularization. But currently I am not familar with it. But it depends what Synology supports. At least Java 8 is the minimum version.
Backend
The first idea is to setup a Spring Boot project
Server-Frontend
Extend the spring Boot project with Angular
Client
A Java Swing Client which connects to Json Rest Services from the Backend
Synology
Currently I just know that there is a Synology Development Kit and that Java is supported.