All Projects → amazon-archives → aws-appsync-refarch-offline

amazon-archives / aws-appsync-refarch-offline

Licence: other
AWS AppSync offline reference architecture powered by the Amplify DataStore

Programming Languages

javascript
184084 projects - #8 most used programming language

Projects that are alternatives of or similar to aws-appsync-refarch-offline

aws-mobile-appsync-events-starter-ios
GraphQL starter application with Realtime and Offline functionality using AWS AppSync
Stars: ✭ 99 (+110.64%)
Mutual labels:  offline, appsync
Aws Mobile Appsync Chat Starter Angular
GraphQL starter progressive web application (PWA) with Realtime and Offline functionality using AWS AppSync
Stars: ✭ 449 (+855.32%)
Mutual labels:  offline, appsync
aws-appsync-iot-core-realtime-dashboard
This sample application demonstrates a React based web dashboard receiving real-time updates from IoT sensors. The solution is built with AWS AppSync, AWS Amplify, Amazon Location Service, and AWS IoT Core technologies.
Stars: ✭ 75 (+59.57%)
Mutual labels:  appsync, amplify-js
Aws Mobile Appsync Events Starter React Native
GraphQL starter application with Realtime and Offline functionality using AWS AppSync
Stars: ✭ 134 (+185.11%)
Mutual labels:  offline, appsync
Aws Mobile Appsync Events Starter React
GraphQL starter application with Realtime and Offline functionality using AWS AppSync
Stars: ✭ 337 (+617.02%)
Mutual labels:  offline, appsync
react-relay-appsync
AppSync for Relay
Stars: ✭ 19 (-59.57%)
Mutual labels:  offline, appsync
hexo-offline
Out-of-the-box hexo offline experience
Stars: ✭ 69 (+46.81%)
Mutual labels:  offline
offline-kanban
Kanban board that just works in your browser (even when you have no internet)
Stars: ✭ 40 (-14.89%)
Mutual labels:  offline
react-weather-app
⛅️ PWA Weather App made with ReactJS
Stars: ✭ 147 (+212.77%)
Mutual labels:  offline
HelpOff
Providing help via offline system : Runner-Up at NMIMS Hackathon 2018
Stars: ✭ 20 (-57.45%)
Mutual labels:  offline
Plotly Offline Python
This repository provide tutorials regarding using Plotly offline package in python.
Stars: ✭ 61 (+29.79%)
Mutual labels:  offline
aws-serverless-fullstack-swift-apple-carplay-example
This application demonstrates a full-stack Apple CarPlay app that uses Swift for both the UI and the backend services in AWS. The app accesses Lambda functions written in Swift and deployed from Docker images. The app accesses Amazon Location Service and a 3rd party weather api to display information in the vicinity of the user.
Stars: ✭ 84 (+78.72%)
Mutual labels:  appsync
SIES-Library
A simple catalog app for SIESGST Library using Google Books API
Stars: ✭ 34 (-27.66%)
Mutual labels:  offline
Atlas auto setline
a tool for automatic offline/online unusable slave node in Atlas open source software
Stars: ✭ 47 (+0%)
Mutual labels:  offline
AndroidOfflineMapLibrary
Offline OpenStreet Map Library (No Internet Required) You dont have to even one-time connect!
Stars: ✭ 16 (-65.96%)
Mutual labels:  offline
apt-mirror-docker
Up to date apt-mirror script, containerized for mirroring + serving.
Stars: ✭ 15 (-68.09%)
Mutual labels:  offline
node-libzim
Binding to libzim, read/write ZIM files in Javascript
Stars: ✭ 23 (-51.06%)
Mutual labels:  offline
TidalSwift
Tidal Music Streaming Client & Library written in Swift
Stars: ✭ 45 (-4.26%)
Mutual labels:  offline
UniqueBible
A cross-platform bible application, integrated with high-quality resources and amazing features, running offline in Windows, macOS and Linux
Stars: ✭ 61 (+29.79%)
Mutual labels:  offline
ethereum-client
ethereum rpc client
Stars: ✭ 34 (-27.66%)
Mutual labels:  offline

AppSync Offline Reference Architecture

This repository contains the code for a mobile app written in React Native that uses Amplify DataStore and AWS AppSync to provide offline and delta sync capabilities. Use this repository as an example to build your own application.

Read the Blog Post about this project for more information: AWS AppSync offline reference architecture – powered by the Amplify DataStore.

Point of Sale

The theme of this mobile application is a Point of Sale (POS) for a Coffee Shop. What better use case for offline capabilities than a POS app that handles sales and transactions. These type of applications are critical for a business and is important that they handle internet outages and data synchronization gracefully while continue to process transactions.

Screenshots

Architecture Overview

The code in this repository contains both the backend definition and the frontend mobile app. The backend is powered by a GraphQL API running on AWS AppSync with a set of managed resolvers that manipulate and query the data on DynamoDB tables. The frontend is a React Native application that uses Ampify DataStore to interact with the backend and handle the data synchronization with delta sync, local storage and conflict resolution.

Architecture

Amplify DataStore communicates with AWS AppSync using GraphQL queries, mutations and subscriptions, however this communication is abstracted away from the developer as you only need to interact with the DataStore API using standard JavaScript function invocations.

GraphQL Schema

The GraphQL schema definition is an important part of this project because is what Amplify uses to create the backend with the DynamoDB tables and AppSync resolvers. And also what you use to interact with Amplify DataStore on the device.

type Order @model {
  id: ID!
  total: Float
  subtotal: Float
  tax: Float
  createdAt: String!
  lineItems: [LineItem] @connection(name: "OrderLineItems")
}

type LineItem @model {
  id: ID!
  qty: Int
  order: Order @connection(name: "OrderLineItems")
  product: Product @connection
  description: String
  price: Float
  total: Float
}

type Product @model {
  id: ID
  sku: String
  name: String
  price: Float
  image: String
}

How to run it

If you want to run this project yourself, you need the following pre-reqs in your computer:

If you have them, then go ahead and clone the repository:

git clone https://github.com/aws-samples/aws-appsync-refarch-offline
cd aws-appsync-refarch-offline

Install the dependencies using yarn:

yarn install

Or using npm:

npm install

And now follow the next instructions to run both the Backend and Frontend.

Backend

Provisioning the backend is very simple with the Amplify CLI. Just run the following commands and make sure you have access to an AWS account:

amplify init

And then deploy to an AWS account:

amplify push

Wait for deployment to finish and then you can launch the frontend:

Frontend

Make sure you have the iOS or Android simulator running and then start the application with the following command:

yarn start 

or using npm:

npm start
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].