As I was going through trying to imagine how the interface for freelanceFIRST would look and operate, I began by examining the features of each component of the site, their hierarchy, and the potential frequency of their use.
When I came upon the project file exchange, a part of the project environment that allows users to exchange project files, I ran into some trouble.
What is the best way to successfully implement a file sharing system that has revision tracking?
That is, we wouldn’t want a user to accidentally overwrite a file on the server with an older, or incorrect, version. There needs to be some method of tracking who has uploaded and downloaded project files, when they’ve done so, and what changes they may have made.
Is it wise to ‘check-out’ a file, much like a library book? So, for as long as an individual has a file, it’s unavailable to others?
Or, maybe ‘control’ of the file could be given to a single user at a time, but others could still use that file simultaneously. Any changes made by someone other than the user in ‘control’ would result in a duplicate file being created on the server. With this system, someone who’s not in control can offer suggestions or make changes, and do so without fear of interrupting the work flow of the project.
Inventor files seem like they’ll be a particular challenge. While Inventor assembly files update to reflect the status of the parts therein, if major changes are made to a part, it’d probably require that the assembly file be updated as well.
Likewise with Inventor project files. Maybe we could require that a new Project and a new Assembly be uploaded with each revised part? That seems a little ridiculous, and probably unnecessary.
I’m open to any suggestions on how to implement this feature. What features would you look for in managing a project? What would you like to know about it as a user?
I want this to be as intuitive and friendly to use as possible. I’m not a big computer geek, so I want to be able to use it without frustrating myself.
Think of this as something similar to the game challenge we receive every year. You’re each faced with the task of designing this system. Let’s see what we can do to find the most effective, efficient, reliable solution possible.