Skip to content

todo app who provide CouchDB synchronization, dependencies and prioritization

Notifications You must be signed in to change notification settings

peponi/fxos-app-todo-couchdb-sync

Repository files navigation

No Maintenance Intended

screenshot

My Custom Todo WebApp (ノ◕ヮ◕)ノ*:・゚✧

It's a WebApp optimzed for Firefox OS 1.0 up to 2.6, but will works on Android and iOS legacy 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)

Build with

Screenshots

screenshot screenshot screenshot

User story

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

Acceptance criteria

  • 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]

Feature whishlist

  • 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

Feature Table

- 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

Bugs

  • 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

Code Refactoring

see TODO.md file

CouchDB

if you want to sychronize your data, you need to install and configure a CouchDB

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

Development

Install

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

CouchDB setup

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 ...

About

todo app who provide CouchDB synchronization, dependencies and prioritization

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published