GSoC 2011: Synchronizing F-Spot data
- From: Simon Lindgren <simon n lindgren gmail com>
- To: f-spot-list gnome org
- Subject: GSoC 2011: Synchronizing F-Spot data
- Date: Sun, 27 Mar 2011 00:42:06 +0100
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 <simon n lindgren gmail com>
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
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]