I'm a talker, so whoever gets hired needs to be able to talk to me about this project, both in chat, and over the phone. Communication is important to me and sometimes it's just easy to get a feel for a project by talking ideas out.
I have a client that has an orthodontic lab. They create retainers and study models for Doctors. Currently, we use the cloud to synchronize and transfer files from my client's lab, to the doctor's server. We used to use FTP, until we upgaded last year to NextCloud, a Google Drive type of application. I like the file accountability that I have now. I can easily see when files were transferred and any errors that come up. Unfortunately, the cloud is unnecessary. Pricing for remote storage is expensive and Doctor's servers are already being backed up both onsite and remotely. The client's computer as well. Redundancies are costly. These aren't files they need instantly, so the idea of storing them online is a bad one. It also exposes us to more risk with sensitive patient docs.
I'd like to use Syncthing, an open source p2p file sharing script, to create a system in which my client can securely and easily send files back and forth between remote computers. The easily part should consist of a single PC program that can handle both admins and clients-
run as an administrator with access to all folders- it also gives us data like a nice dashboard- shows any errors or files that haven't synced and info on the ones that were successful.
or doctors to run on their server or workstation that will synchronize their files.
A webview or even local status for doctors would be nice as well to show how many files were sent and any errors- a dashboard with stats
Currently, we send them files, they don't send us anything.
I can handle design and UI, but I need a good developer to help me put this all together into a finished product with an installer that's certified and without silly errors.
Here's a bit about syncthing:
Syncthing is written in Go and implements its own, equally free Block Exchange Protocol.
Syncthing is a BYO cloud model where the users provide the hardware that the software runs on. It works generally in the same way that Resilio Sync does where the larger the number of mesh devices, the more efficiently data can be transferred. It supports IPv6 and, for those on IPv4 networks, NAT punching and relaying are offered. Devices connecting to each other require explicit approval (unless using the Introducer feature) which increases the security of the mesh. All data, whether transferred directly between devices or via relays, is encrypted using TLS.
Conflicts are handled with the older file being renamed with a "sync-conflict" suffix (along with time and date stamp), enabling the user to decide how to manage two or more files of the same name that have been changed between syncing. GUI Wrappers can use these files to present the user with a method of resolving conflicts without having to resort to manual file handling.
Efficient syncing is achieved via compression of metadata or all transfer data, block re-use and lightweight scanning for changed files, once a full hash has been computed and saved. Syncthing offers a "Master Folder" feature where updates from remote devices are not processed, various types of file versioning (trash can, simple or staggered versioning as well as handing versioning to an external program or script) and file/path ignore patterns. Two different SHA256 hashing algorithms are currently supported, the faster of which will be used dynamically after a brief benchmark on start-up. Moving and renaming of files and folders is handled efficiently, with Syncthing intelligently processing these operations rather than re-downloading data from scratch.
3 freelancers are bidding on average $603 for this job
I will securely configure and provide custom build of Syncthing to agreed upon specifications. Relevant Skills and Experience I have created a custom build of Syncthing for my own use working cross-platform.