Windows File Sync App - VDJSyncMaster
Budget: £20 – £250 GBP
I'm looking for a developer to create a Windows client application in C# that syncs text documents to a remote server. Similar behaviour to Dropbox. The app should support both Windows 10 and 11.
The server will be a Windows 11 PC, turned on all the time, running behind a draytek firewall with a static IP and DNS name pointing at that IP. WebDAV is installed but I may need help to configure it.
The clients will be Windows 10 and 11 pcs, maybe 10 or 15 total clients. They will connect from hotels and event venue wifi service and sometimes from tethered phones.
It’s a one off app, will not be sold and just for my private use.
The first time the app runs it needs to show the settings window to ask for the name of the PC (which is a 3 or 4 character code) and write this into registry, then minimise to the system tray.
At each subsequent launch and then hourly thereafter, and also on demand using an option on the system tray icon, the app needs to do the following:
1. copy the file "%userprofile%\Documents\VirtualDJ\History\tracklist.txt" up to a tracklist log folder on the server with a date e.g "<PC Name> Tracklist log <Date and Time>.txt" - This is just for archiving, no need to sync this file again.
2. Upload the entire content of "%userprofile%\Documents\VirtualDJ\Tracklisting\" (but not "zOthers" subfolders) up to the server into "Tracklisting\<PC Name>" folder
3. Download the contents of server folder "Tracklisting" down to local folder "%userprofile%\Documents\VirtualDJ\Tracklisting\zOthers"
4. Upload the entire content of "%userprofile%\Documents\VirtualDJ\Playlists\" up to the server into "Playlists\<PC Name>" folder
5. Download the contents of server folder "Playlists" down to local folder "%userprofile%\Documents\VirtualDJ\Playlists\zOthers\History"
6. Perform the MP3 updates task which involves:
a. Get list of zip files from a php file on a web server
b. check to see if the zip file has already been downloaded
c. if New, then download the zip file and extract it to x:\
d. delete the downloaded zip file and make a record in the registry or a local text file that this zip file has been completed.
7. log everything done in a local log file and copy the log up to the server.
As the client machines may be on slow Wifi or tethered 4g connection it would be best to check to see if files have been downloaded before downloading them again to save on bandwidth. The likely dataset size of the text files will be around 300mb
The options on the tray icon need to be: app name with PC name, sync now, last sync time, next sync times, settings, Log access, quit.
The paths need to be editable in a settings window, and perhaps 2 extra possible paths for future needs. other configurable options in settings: PC Name, webdav address and credentials with test function, URL for php zip file index with credentials and test,
The server will be a Windows 11 PC, turned on all the time, running behind a draytek firewall with a static IP and DNS name pointing at that IP. WebDAV is installed but I may need help to configure it.
The clients will be Windows 10 and 11 pcs, maybe 10 or 15 total clients. They will connect from hotels and event venue wifi service and sometimes from tethered phones.
It’s a one off app, will not be sold and just for my private use.
The first time the app runs it needs to show the settings window to ask for the name of the PC (which is a 3 or 4 character code) and write this into registry, then minimise to the system tray.
At each subsequent launch and then hourly thereafter, and also on demand using an option on the system tray icon, the app needs to do the following:
1. copy the file "%userprofile%\Documents\VirtualDJ\History\tracklist.txt" up to a tracklist log folder on the server with a date e.g "<PC Name> Tracklist log <Date and Time>.txt" - This is just for archiving, no need to sync this file again.
2. Upload the entire content of "%userprofile%\Documents\VirtualDJ\Tracklisting\" (but not "zOthers" subfolders) up to the server into "Tracklisting\<PC Name>" folder
3. Download the contents of server folder "Tracklisting" down to local folder "%userprofile%\Documents\VirtualDJ\Tracklisting\zOthers"
4. Upload the entire content of "%userprofile%\Documents\VirtualDJ\Playlists\" up to the server into "Playlists\<PC Name>" folder
5. Download the contents of server folder "Playlists" down to local folder "%userprofile%\Documents\VirtualDJ\Playlists\zOthers\History"
6. Perform the MP3 updates task which involves:
a. Get list of zip files from a php file on a web server
b. check to see if the zip file has already been downloaded
c. if New, then download the zip file and extract it to x:\
d. delete the downloaded zip file and make a record in the registry or a local text file that this zip file has been completed.
7. log everything done in a local log file and copy the log up to the server.
As the client machines may be on slow Wifi or tethered 4g connection it would be best to check to see if files have been downloaded before downloading them again to save on bandwidth. The likely dataset size of the text files will be around 300mb
The options on the tray icon need to be: app name with PC name, sync now, last sync time, next sync times, settings, Log access, quit.
The paths need to be editable in a settings window, and perhaps 2 extra possible paths for future needs. other configurable options in settings: PC Name, webdav address and credentials with test function, URL for php zip file index with credentials and test,
Related categories:
Windows Desktop
C# Programming
Windows API
Software Development
Data Management
Desktop Application