All Projects → amahdy → offline-first-app

amahdy / offline-first-app

Licence: other
OfflineFirst demo app with some WebComponents and PouchDB

Programming Languages

HTML
75241 projects
CSS
56736 projects

Projects that are alternatives of or similar to offline-first-app

Rxdb
🔄 A client side, offline-first, reactive database for JavaScript Applications
Stars: ✭ 16,670 (+61640.74%)
Mutual labels:  pouchdb, offline-first
shopping-list-vuejs-pouchdb
Shopping List is an Offline First demo Progressive Web App built using Vue.js and PouchDB.
Stars: ✭ 81 (+200%)
Mutual labels:  pouchdb, offline-first
Metadata.js
Library for building offline-first browser-based applications :: платформа автономных веб-приложений
Stars: ✭ 165 (+511.11%)
Mutual labels:  pouchdb, offline-first
nadya
subscription management done right
Stars: ✭ 14 (-48.15%)
Mutual labels:  pouchdb, offline-first
drummer
Offline-first drum machine
Stars: ✭ 19 (-29.63%)
Mutual labels:  pouchdb, offline-first
grouptabs
Mobile Web App to organize payments in dynamic groups of people.
Stars: ✭ 40 (+48.15%)
Mutual labels:  pouchdb, offline-first
client-side-databases
An implementation of the exact same app in Firestore, AWS Datastore, PouchDB, RxDB and WatermelonDB
Stars: ✭ 787 (+2814.81%)
Mutual labels:  pouchdb, offline-first
shopping-list-preact-pouchdb
Shopping List is an Offline First demo Progressive Web App built using Preact and PouchDB.
Stars: ✭ 18 (-33.33%)
Mutual labels:  pouchdb, offline-first
shopping-list-react-pouchdb
Shopping List is an Offline First demo Progressive Web App built using React and PouchDB.
Stars: ✭ 27 (+0%)
Mutual labels:  pouchdb, offline-first
vaadin-board
Web Component for creating flexible responsive layouts and building nice looking dashboards.
Stars: ✭ 17 (-37.04%)
Mutual labels:  web-components, vaadin-elements
couch-auth
Powerful authentication for APIs and apps using CouchDB (or Cloudant) with Node >= 14
Stars: ✭ 50 (+85.19%)
Mutual labels:  pouchdb, offline-first
toggle-icon
toggle-icon is a custom element created with Polymer. It provides an extremely powerful and customizable switch that looks like a paper-icon-button.
Stars: ✭ 21 (-22.22%)
Mutual labels:  web-components
app
Source code of intencje.pl website and mobile/desktop apps based on Angular, Firebase, and Capacitor.
Stars: ✭ 12 (-55.56%)
Mutual labels:  offline-first
indieweb-components
VanillaJS-based Web Components for the IndieWeb
Stars: ✭ 13 (-51.85%)
Mutual labels:  web-components
magento2-module
FACT-Finder® Web Components for Magento 2
Stars: ✭ 13 (-51.85%)
Mutual labels:  web-components
vaadin-context-menu
The responsive Web Component for showing context dependent items for any element on the page. Part of the Vaadin components.
Stars: ✭ 26 (-3.7%)
Mutual labels:  web-components
paper-countries
Select Dropdown with list of countries with flags and autocomplete
Stars: ✭ 16 (-40.74%)
Mutual labels:  web-components
hello-web-components
A simple starter <hello-world /> web component written in typescript, using lit-html and lit-element. Unit tested with jest and e2e tested with puppeteer and jest-puppeteer.
Stars: ✭ 15 (-44.44%)
Mutual labels:  web-components
pharos
JSTOR's design system
Stars: ✭ 48 (+77.78%)
Mutual labels:  web-components
octo
Build your knowledge base
Stars: ✭ 252 (+833.33%)
Mutual labels:  offline-first

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
Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].