Giter Club home page Giter Club logo

offline-first-app's Introduction

Build Status

Offline-First App with Web Components

A concept of an app built with Web Components, with possibilities to query and manipulate data, and works totally offline.

You can try the online demo, and you can also reset the local modifications at anytime.

App Preview

App Preview in Mobile

Step by step, building similar app

Here is a guide showing git diffs on how this app was built, highlighting:

  • Using WebComponents and Polymer.
  • Using PouchDB and its add-ons.
  • Storing data locally.
  • Modifying local storage.
  • Replicating local storage to the remote server.
  • Querying local storage.

Those steps are only the base for creating a similar app, always check the master branch for latest updates added on top of those steps.

Step 0 | Init empty Polymer app

Step 1 | Add a lazily loaded vaadin-grid

Step 2 | Get data from CouchDB using PouchDB

Step 3 | Load data from local storage

Step 4 | Add editor for selected item

Step 5 | Persist modifications in local storage

Step 6 | Sync local storage with remote DB

Step 7 | Add search box

Step 8 | Index local storage by firstName

Step 9 | Query local storage

Try out this application

Make sure you have Bower and Polymer CLI installed. Clone this project locally then:

Installing Dependencies

Install Bower dependencies

$ polymer install

Running Your Application

Start the application on port 8080

$ polymer serve --port 8080

Running Demo Mode

The app comes with a simple demo mode to run right away without a remote database. Usually you will be prompt to run the demo mode if no databases were found. You can also use the following arguments to explicitly request a demo mode:

Configuring Database

You can run this app with a remote database as well, make sure you have a local CouchDB running, then create a database persondb inside CouchDB and fill it with dummy data or reset the existing one. Alternatively, you can create the database and fill it with dummy data by visiting the local setup page http://localhost:8080/setup.html.

Viewing Your Application

The application will be available on this address by default: http://localhost:8080.

Running Tests

Tests can be run locally by visiting this URL: http://localhost:8080/components/offline-first-app/test/.

You can also run tests using command line

$ polymer test

offline-first-app's People

Contributors

amahdy avatar tuanphpvn avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar

offline-first-app's Issues

Touch Devices: Prevent event bubbling

When tapping on the add button, underneath element (grid) gets clicked, focus on the "First Name" text field is not set properly, and validation error is triggered.

Scrollto in search mode

Scrollto in search mode should not scroll to an item that is not in the search results.

Example:

  • Open the app and scroll till the end.
  • Select last item.
  • Start searching for something different.
  • Scroll tries to scroll to the selected item even if it's not in the search results.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.