It's a WebApp optimzed for Firefox OS 1.0 up to 2.6, but will works on Android and
iOSlegacy phones too
Goal is to build a todo webapp who provide
- Server (CouchDB) synchronization ✓
- Backup export, import ✓
- Todo dependencies
- Prioritization ✓
- Offline support
- Crossbrowser support (FirefoxOS, Android, iOS, Ubuntu Touch)
- Mozilla buildingfirefoxos.com, (github)
- KnockoutJS
- PouchDB
- fecha
- google-webfonts-helper <- thx for this tool
- Launcher Icon Maker & iconogen.com
As a FirefoxOS user I want to have a todo app who will rember me on important stuff so that I can outsource my brain capacity to the phone, yeai
- groups can be saved and deleted
- todos can be saved, toggeled and deleted
- todos will be shown in a list
- todos will be shown filtered by group
- todos will be ordered by priority
- and by date
- priority will be signaled by color
- start screen, when first start
- settings will be loaded on startup (language/couchdb)
- synchronization to a CouchDB works
- install banner on FirefoxOS ✓ & iOS ✓ & Android
- works offline (✓ appcache für iOS)
- todos can be edit
- links in the todo description will be shown as html link in the edit mode
- it will show a message if a todo has been toggle with an unsolved dependency (other todo is not done)
- group delete will show a confirm message and delete all dependet todos
- app will run on FXOS 1.0
- app will run on Android and can be pinned to desktop
- app will run on iOS [1] [2]
- app will run on Ubuntu Touch and can be pinned to desktop [1]
- DB export to JSON file
- read JSON file and import to DB
- export to CVS 1
- read CVS file and import to DB
- phone will vibrate while notify is poping up
- Android web intents has been tested
- themes (ios, android, cyberUI)
- crypto-pouch ausprobieren
- Knockout Components ausprobieren für app install banner
- transaltion can be added
- it will prefer the system default language
- open input form whit phone shaking 1
- LTR/RTL works
- sharing lists with other user via couchdb accounts
- show all groups with all todos in a pie chart like landingpage by small and big dots
- archivements for completing todos
- | FirefoxOS | Android Cyanogen Mod | iOS | Ubuntu Touch | SailfishOS | Chrome | Firefox | |||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
Version | 1.0 | 1.1 | 2.0 | 2.2 | 2.6 | 4.3 | 4.4 | 5 | 5 | 6 | BQ E4.5 | 2 | 51 | 47 |
Onbording Startscreen | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ |
DB Backup Export | ❌ | ❌ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ❌ | ❌ | A? | ✓ | ✓ | ✓ |
DB Backup Import | ❌ | ❌ | ✓ | ? | ✓ | ✓ | ✓ | ✓ | ❌ | ❌ | ✓ | A? | T? | ✓ |
DB Synchronisation | ✓ | N? | ✓ | N? | ✓ | ✓ | N? | N? | N? | N? | N? | N? | ✓ | ✓ |
App Installation | ✓ | ✓ | ✓ | ✓ | ✓ | N? | N? | N? | N? | N? | F❌ | ❌ | F❌ | F❌ |
Works Offline | ✓ | ✓ | ✓ | ✓ | ✓ | N? | N? | N? | N? | N? | N? | N? | N? | N? |
Calendar Activity/Intent | N | N | N | N | N | N | N | N | N | N | N | N | N | N |
Desktop Screen | - | - | - | - | - | - | - | - | - | - | - | - | N | N |
sign | meaning |
---|---|
✓ | works |
❌ | don't works because of technical reason |
F❌ | wold be possible by other technical features |
A? | don't works because some app or app feature is missing, the right app could help |
T? | should work, but don't, need to test this |
N? | not tested yet |
N | not implemented yet |
- | feature not neccessary for this device / os / screenport |
- heisenbug - viewModel.js:75 Uncaught TypeError: Cannot set property 'className' of null
- won't reload after json import db overwrite
- db synchronization got a cookie error after type in of credentials
- db synchronization dosn't refresh the todo list after first app start, second start works then (timing problem ?)
- sm.transaction in vm.onnectToCouchDb will be called while vm.init(), find better solution
- app install banner won't automatic fade out after installation
- can't turn off sync & save
see TODO.md file
if you want to sychronize your data, you need to install and configure a CouchDB
- how to install couchdb and futon on ubuntu 14 04
- how to install couchdb on a RaspberryPI - Raspbian Jessie
when you done this and login to Futon, create following databases
- *couchdb-databbase-prefix-*group
- *couchdb-databbase-prefix-*todo
then configure your app in
menu -> Database -> Sync to CouchDB
choose somthing clear as prefix like my-fxos-todo-app- or leave this blank if you don't wan't to use your CouchDB for something else
npm install
gulp build
and run a webserver
npm run http
then click on http://127.0.0.1:8000
to develop on the service worker offline stuff
npm run chrome
npm run https
gulp build --no-appcache
then click on https://127.0.0.1:8000
if you want to work on the synchronization and need to debug in your Chrome browser, you need to enable CORS in your CouchDB
github.com/pouchdb/add-cors-to-couchdb
CouchDB doesn't come with CORS enabled by default. This is a problem for libraries like PouchDB, which depend on being able to access CouchDB ...