Skip to content

[PoC] Storage synchronization application with Client and Server side over TCP/IP

License

Notifications You must be signed in to change notification settings

LinMAD/MechanicumVault

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

8 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Mechanicum Vault

An application that allows synchronization of files and folders from one desired source to another over TCP/IP.

Table of Contents

Overview

This application enables you to synchronize files and folders from a specified source to a target destination over TCP/IP. When the client is running, it tracks file changes in real-time. Once a connection to the server is established, the client will request synchronization to ensure both the source and destination are up-to-date.

Features

  • Real-time Change Tracking: The client monitors file changes continuously and sends synchronizations to server.
  • TCP/IP Synchronization: Transfers files over TCP/IP protocol (Unscripted currently).
  • Automatic Sync Requests: Initiates synchronization until server will be online.

Usage

! Applications are developed on Windows platform, and it was not tested on Unix based platforms. ! Both applications have configuration files that you need to tweak, or you could call application with command line arguments

# Executed Client-Side Application
dotnet run --project src/MechanicumVault.App.Client/MechanicumVault.App.Client.csproj

Configuration: src/MechanicumVault.App.Client/appsettings.json

# Example with command line argument
dotnet run --project src/MechanicumVault.App.Client/MechanicumVault.App.Client.csproj --Application:SourceDirectory="D:\TempSpace\Source"
# Executed Server-Side Application
dotnet run --project src/MechanicumVault.App.Server/MechanicumVault.App.Server.csproj

Configuration: src/MechanicumVault.App.Server/appsettings.json

# Example with command line argument
dotnet run --project src/MechanicumVault.App.Server/MechanicumVault.App.Server.csproj --Application:DestinationDirectory="D:\TempSpace\Destination"

Future Plans

  • Release automation: Add automated testing, linting and build releases.
  • Encryption Support: Implement encrypted file transfers for enhanced security.
  • Enhancements: Introduce additional synchronization providers, Google Drive via API HTTP.
  • Audit log: Create Client based audit log with file changes per client.
  • File versioning: Track file versions.
  • User Authentication: Introduce authentication mechanisms to secure access and improve encryption.

Architecture

Processing workflow

WorkFlow.png

Abstract Design

drawing

License

LICENSE

About

[PoC] Storage synchronization application with Client and Server side over TCP/IP

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages