In the past couple of days I have been working on improving the internals of the system. First thing I did was changed how the files are maintained in the program to allow more flexibility, especially with the GUI. This improvement changed the internal structure from a pre-defined array that would be passed around (including over the network) to a FileInfo object. In the FileInfo class there are also a bunch of static helpers for the TreeView in the gui.
By using this FileInfo class, the GUI asks the object what it should display (instead of looking at arrays for the correct field). It also provides a method to save and load the important information about the file to be sent/received over the network as well as when it is saved to and restored from the journal.
This was added in commit id: 9e382bb
I am also currently working on adding the ability to integrate the system with an external school server. At this point it has the ability to get file lists from an external server as well as download the file. This is almost the same system that it currently uses except it uses external http links instead of the pipes the normal activity sharing uses. I have decided to write a new server system instead of the one I wrote earlier in the year to simplify the system.
I have not yet implemented the ability to push files up to the server yet. This will be a challenge because the sugar api does not have an upload api like its url downloader.