offline todo using IndexedDB and application cache