Export v1

Registered by pjv on 2011-06-30

A first version of export functionality of items and/or collections and/or the whole application data.

Blueprint information

Status:
Not started
Approver:
pjv
Priority:
Undefined
Drafter:
pjv
Direction:
Needs approval
Assignee:
pjv
Definition:
Drafting
Series goal:
None
Implementation:
Unknown
Milestone target:
None

Related branches

Sprints

Whiteboard

1. Definition of Export, and purpose

Export has the purpose to get data out of the application. A user does not want to be locked in by a vendor. The fact that this data then can easily be imported into existing other applications, or even this application is at this stage secondary. The purpose of Export should not be backup, as this is already implemented better in a different way.

2. What is Exportable

Currently what needs to be exported is the information of a collection, and the data of an item. Preferences are excluded, as are order information of items/collections. For barcoded products it is not sufficient to export the barcode, even though that could be used to import everything again. the user might have made changes, or might have had manual items.

3. Which formats

A few seem interesting:
- Own XML. Complete, very easy, but not user-oriented.
- Own CSV. Complete, easy, a bit user-oriented.
- Own CSV to Google Docs. Just a shortcut. Adds (perhaps) unwanted permissions at this stage.
- Delicious Library 2 format. Translated and hard to do, especially since I do not have access to it myself, but a very popular format. Actually a range of allowed formats (where the user needs to define presets), so not very simple for the user either. I also lack Amazon integration, which probably does not allow me to export the way other programs do.
- Own Sqlite3 db for hackers. Only on rooted phones.
- specific formats depending on the type:
    - Google Books library collection.
    - BibTex for books.

A full list of other formats I've heard of:
General: Delicious Library 1, comma and tab separated files (CSV), Excel (via SYLK), XML
Books: Bookends
   Biblio: AMA, Turabian, APA, CBE, Chicago, MLA,
Movies: Extreme Movie Manager, DVD Profiler, MBase2, Personal Video Database, ANT Movie Collection, Movie Label 201, Netwalk Movies XML

Chosen for this version:
- Own XML, using XStream
- Own CSV, probably using OpenCSV: see http://code.google.com/p/openintents/source/browse/trunk/convertcsv/ConvertCSV/src/org/openintents/convertcsv/opencsv/CSVWriter.java

4. Use case:

Can export on collections primarily, context actions. But also in the main menu of the application (which then is a recursive export per collection), or even per item, via context menu. For the latter, the collection information is not included.

The user is then presented a confirmation dialog.

Finally a progress bar is displayed while the export is happening. It is expected that this will take some time. We can not switch activities without canceling, so this progress bar needs to be up there for a while unfortunately.

Finally success or failure is reported, as well as the file path/name.

No instructions are bundled at first.

5. Other remarks:

Pay attention to translation, as well as escape chars. For instance, images cannot be exported, but links to images need to be. The fact if all the data can be fully restored is a bit secondary at this point because there is no import yet.

Look at how the different "tables" need to be bundled into one file.

The formats will not be final at all. Expect a lot of changes without backwards compatibility at first.

(?)

Work Items

This blueprint contains Public information 
Everyone can see this information.

Subscribers

No subscribers.