https://github.com/derlin/mybooks-android-old
An application to keep track of the books I read. The serialized form (json) is saved to Dropbox. DEPRECATED! See https://github.com/derlin/mybooks-android.
https://github.com/derlin/mybooks-android-old
Last synced: 7 months ago
JSON representation
An application to keep track of the books I read. The serialized form (json) is saved to Dropbox. DEPRECATED! See https://github.com/derlin/mybooks-android.
- Host: GitHub
- URL: https://github.com/derlin/mybooks-android-old
- Owner: derlin
- License: apache-2.0
- Created: 2016-05-07T12:44:33.000Z (about 10 years ago)
- Default Branch: master
- Last Pushed: 2017-10-21T11:05:40.000Z (over 8 years ago)
- Last Synced: 2025-01-20T10:31:02.456Z (over 1 year ago)
- Language: Java
- Homepage:
- Size: 11.4 MB
- Stars: 4
- Watchers: 3
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# mybooks-android
An application to keep track of the books I read. The serialized form (json) is saved to Dropbox.
# The why
It's been a while that I promised myself I would keep track of the books I read.
Unable to prevent myself from losing papers and notes, I spent some time testing the online services, but I didn't find what I looked for, i.e.:
- *simple*: just store the book title, author and possibly some notes about it,
- *no validation*: if I want to add an obscure title which is not in the public databases, let me do it (example: the
book my best friend wrote but never published)
- *private*: keep the list private,
- *exportable*: easily retrieve a list of the books in a common format like json, csv, etc.,
- *free*: I won't pay for it,
- *language agnostic*: as long as the charaters are part of the ASCII set,
- *nice*: it is not because it is free that it must be ugly.
Maybe it was too much to ask... Anyway, until I find the perfect one, I decided I would use my own.
# The what
**MyBooks** project is divided into two tools:
1) a **command line interface** written in go to quickly edit my list,
2) an **Android application** to let me maintain my list on the go.
# data format
In order for the data to be easily accessible, even without any tool, the data are saved to Dropbox in a `json file` properly indented. It is possible to edit it with any text editor. The only important point is to respect the basic structure:
```
{
"1984": {
"author": "Georges Orwell",
"date": "long ago",
"notes": "my favorite book",
"title": "1984"
},
"1q84 livre 1": {
"author": "Haruki Murakami",
"date": "janvier 2016",
"notes": "vachement déçue. ",
"title": "1Q84 (livre 1)"
}
}
```
A book has a `title`, an `author`, and optional `date` and `notes`. The books are kept in a `map`, the keys being the normalized title of the book. The *normalization* of the title follows those simple steps:
1. title to lowercase;
2. replace every accented character by its unaccented counterpart (éè -> e, etc)
3. replace non letter/number character by spaces
4. replace multiple spaces by one;
5. trim.
# Application
The Android application uses the *Dropbox core API V2* to read/write the file. On start, the file is read and loaded in memory, then each change is directly written to Dropbox. It is compatible with tablets/wide screen devices.
# TODO
- handle dropbox errors properly
- what should be done if no internet connection is available ?
- feature: automatic detection of extern file changes ? (vs sync button)