Skip to content

Latest commit

 

History

History
66 lines (44 loc) · 4.17 KB

README.md

File metadata and controls

66 lines (44 loc) · 4.17 KB

Shopping List - with Cordova and PouchDB

Shopping List is an Offline First demo [Progressive Web App | hybrid mobile app | native mobile app | desktop app] built using Apache Cordova and PouchDB. This app is part of a series of Offline First demo apps, each built using a different stack.

Quick Start

To see what this app looks like without installing anything, simply visit https://ibm-watson-data-lab.github.io/shopping-list-vuejs-pouchdb/ in a web browser or mobile device. The web app you see there is embedded into Apache Cordova and can be distributed as a native app on Android, iOS, Windows, OSX and others.

Features

Shopping List is a simple demo app, with a limited feature set. Here is a list of features written as user stories grouped by Epic:

  • Planning
    • As a <person planning to shop for groceries>, I want to <create a shopping list> so that <I can add items to this shopping list>.
    • As a <person planning to shop for groceries>, I want to <add an item to my shopping list> so that <I can remember to buy that item when I am at the grocery store later>.
    • As a <person planning to shop for groceries>, I want to <remove an item from my shopping list> so that <I can change my mind on what to buy when I am at the grocery store later>.
  • Shopping
    • As a <person shopping for groceries>, I want to <view items on my shopping list> so that <I can remember what items to buy>.
    • As a <person shopping for groceries>, I want to <add an item to my shopping list> so that <I can remember to buy that item>.
    • As a <person shopping for groceries>, I want to <remove an item from my shopping list> so that <I can change my mind on what to buy>.
    • As a <person shopping for groceries>, I want to <check off an item on my shopping list> so that <I can keep track of what items I have bought>.
  • Offline First
    • As a <person shopping for groceries>, I want to <have the app installed on my device> so that <I can continue to utilize my shopping list when no internet connection is available>.
    • As a <person shopping for groceries>, I want to <have my shopping list stored locally on my device> so that <I can continue to utilize my shopping list when no internet connection is available>.
    • As a <person shopping for groceries>, I want to <sync my shopping list with the cloud> so that <I can manage and utilize my shopping list on multiple devices>.
  • Multi-User / Multi-Device
    • As a <new user>, I want to <sign up for the app> so that <I can use the app>.
    • As an <existing user>, I want to <sign in to the app> so that <I can use the app>.
    • As an <existing user>, I want to <sign out of the app> so that <I can protect my privacy>.
  • Geolocation
    • As a <person planning to shop for groceries>, I want to <associate a shopping list with a grocery store> so that <I can be notified of this shopping list when I am physically at that grocery store>.
    • As a <person associating a shopping list with a physical store>, I want to <access previously-used locations> so that <I can quickly find the physical store for which I am searching>.
    • As a <person shopping for groceries>, I want to <be notified of a shopping list when I am physically at the grocery store associated with that shopping list> so that <I can quickly find the shopping list for my current context>.

App Architecture

<Information detailing the app architecture; for using this app as a reference implementation>

Live Demo

Clone this repository:

git clone https://github.com/ibm-watson-data-lab/shopping-list-cordova-pouchdb.git
cd shopping-list-cordova-pouchdb

Install Cordova:

npm install -g cordova

Install the "platform" you wish to run on (see list of platforms here):

cordova plaform add browser

or

cordova plaform add osx

Run your app:

cordova run browser

or

cordova run osx

N.B Each platform has its own requirements that must be installed on your machine, e.g. the Android SDK, or the iOS Development kit.