Hello list, This is an evolution of my previous GSoC mails, with a much less ambiguous formulation. Obviously, if you disagree with my decisions or think I should clarify something, please tell me :)
Now I need to find a mentor. GSoC 2011: Synchronizing F-Spot data ==================================== By Simon Lindgren <[email protected]> DRAFT 1 Abstract -------- I'm a long time user of the F-Spot photo manager. I use it to tag images for easier retrieval later. Currently, F-Spot stores its data in a SQLite database in the users home directory. This has a few drawbacks, namely * The data is only available on one computer, and therefore: * It is difficult to work with the data at geographically separate locations In my particular case, I want to browse and edit my images on my main computer, which is a desktop. When traveling I only have my laptop with me and thus I do not currently have access to my F-Spot database. A workaround is to copy the database between the computers, but that is tedious and error prone. This project aims to solve this problem by introducing a synchronization solution capable of synchronizing the F-Spot data model in its entirety across multiple F-Spot installations. Requirements ------------ The synchronization must: * support synchronization of all current metadata * be flexible enough to allow future additions of data in a backwards compatible way * Support conflict detection and resolution It would also be nice if it could * support additional data that might be added by addins * support lightweight transfer of on-file metadata changes It might be too much to implement those last two things this summer though. Technical approach ------------------ I will implement this as a remote repository of the F-Spot data that support pushing and pulling data to/from the repository and also some extra functionality to simplify synchronization. To communicate with the server an XML-based REST api will be used. XML makes it easy to integrate XMP metadata, which I believe will cover much of the per-image data. An addin to F-Spot keeps the local F-Spot database up to date with the server so that F-Spot can continue to use the already existing queries. This addin will also track changes to the data and manage synchronizing the changes back to the server. Deliverables ------------ The deliverables of the project would be: * An addin for F-Spot to support synchronization * (if needed) patches for F-Spot to support the addin * A specification of the REST api and the data format * A synchronization server implementation Preliminary Schedule -------------------- Before May 23 Familiarize myself with the F-Spot codebase, Read Mono.Addins docs, Read up on synchronization conflict handling methods Read through the Tomboy Snowy protocol for inspiration May 23 - May 26 Draft the serverside data model and the REST api May 27 - June 1 School examinations June 2 - June 5 Add extension points for change events to F-Spot June 6 - June 19 Implement a basic working system to the state that images and metadata can be uploaded on change events in F-Spot, if network is available. June 20 - June 26 Implement downloading images and metadata. June 27 - July 3 Implement authentication (I intend to code in a "get it to work" mode up to this point, but ofcourse with authentication in mind) July 4 - July 17 Implement the rest of full synchronization, including conflict handling July 15 Mid-term evaluation deadline. July 18 - July 31 Implement automatic merging of changes Aug 1 - Aug 14 Buffer time, in case of delays Aug 15 - Aug 22 Bug fixing, testing, documentation and cleanups About Me -------- My name is Simon Lindgren and I am a third year Computer Science student at Linköpings Unversitet (the Linköping University). I have used C# and mono extensively for small homegrown experimentations, and I have gained a fair bit of knowledge of how it works. I have previously looked through the F-Spot code, although that was before the big reorganization. I have also written a Finance::Quote module in perl. It is currently living in it's own branch, at https://github.com/pfenwick/finance-quote/blob/Morningstar/lib/Finance/Quote/Morningstar.pm. Gnome patch is TBD. -- Simon Lindgren _______________________________________________ f-spot-list mailing list [email protected] http://mail.gnome.org/mailman/listinfo/f-spot-list
