All Projects → GoogleChromeLabs → Sample Pie Shop

GoogleChromeLabs / Sample Pie Shop

Licence: apache-2.0
Example e-commerce site to explore PWA (Progressive Web App) use cases.

Programming Languages

javascript
184084 projects - #8 most used programming language

Projects that are alternatives of or similar to Sample Pie Shop

Angular Shoppingcart
ShoppingCart (Ecommerce) 🛒 Application using Angular10, Firebase, PWA, Drag&Drop, Materialized Bootstrap and i18n 🚀🔥👨‍💻
Stars: ✭ 483 (+134.47%)
Mutual labels:  ecommerce, pwa, progressive-web-app
Mix.core
🚀 Mixcore CMS is an open source CMS that support both headless and decoupled to easily build any kinds of app/web app/customisable APIs built on top of ASP.NET Core / Dotnet Core. It is a completely open source ASP.NET Core (Dotnet Core) CMS solution. https://mixcore.org
Stars: ✭ 304 (+47.57%)
Mutual labels:  ecommerce, pwa, progressive-web-app
Monitaure
🔔 A server uptime monitoring progressive web application - NO LONGER MAINTAINED
Stars: ✭ 135 (-34.47%)
Mutual labels:  pwa, progressive-web-app
Hello Pwa
The classic Hello World program as a Progressive Web App
Stars: ✭ 136 (-33.98%)
Mutual labels:  pwa, progressive-web-app
Graphql Genie
Simply pass in your GraphQL type defintions and get a fully featured GraphQL API with referential integrity, inverse updates, subscriptions and role based access control that can be used client side or server side.
Stars: ✭ 147 (-28.64%)
Mutual labels:  pwa, progressive-web-app
Storefront Ui
Customization-first, performance-oriented and elegant UI framework for eCommerce (and not only) based on Vue.js and Google Retail UX Playbook. Made with 💚 by Vue Storefront team and contributors.
Stars: ✭ 1,827 (+786.89%)
Mutual labels:  ecommerce, pwa
Pwa
Progressive Web Apps for Rails
Stars: ✭ 133 (-35.44%)
Mutual labels:  pwa, progressive-web-app
Vue Shoppingcart
ShoppingCart (Ecommerce) 🛒 Application using Vuejs, + Node.js + Express + MongoDB 🚀🤘
Stars: ✭ 141 (-31.55%)
Mutual labels:  ecommerce, progressive-web-app
Pwa Barcode Scanner
Information about food from the barcode, on your phone 🛒
Stars: ✭ 122 (-40.78%)
Mutual labels:  pwa, progressive-web-app
Cezerin
Cezerin is React and Node.js based eCommerce platform.
Stars: ✭ 1,985 (+863.59%)
Mutual labels:  ecommerce, pwa
Template React Ssr
Server-side rendering template using express and react 16
Stars: ✭ 166 (-19.42%)
Mutual labels:  pwa, progressive-web-app
Pwatter
Angular Progressive Web App using Workbox
Stars: ✭ 167 (-18.93%)
Mutual labels:  pwa, progressive-web-app
Service Worker Detector
This extension detects if a website registers a Service Worker.
Stars: ✭ 124 (-39.81%)
Mutual labels:  pwa, progressive-web-app
Storefront Integration Sdk
If You like to integrate Vue Storefront - PWA for eCommerce with 3rd party platform, use this SDK
Stars: ✭ 124 (-39.81%)
Mutual labels:  ecommerce, pwa
Saleor
A modular, high performance, headless e-commerce platform built with Python, GraphQL, Django, and React.
Stars: ✭ 14,720 (+7045.63%)
Mutual labels:  ecommerce, pwa
Https Localhost
HTTPS server running on localhost
Stars: ✭ 122 (-40.78%)
Mutual labels:  pwa, progressive-web-app
Preact Minimal
🚀 Minimal preact structure
Stars: ✭ 136 (-33.98%)
Mutual labels:  pwa, progressive-web-app
Shopware Pwa
Shopware PWA for eCommerce. Headless storefront solution for Shopware 6, which communicates through the SalesChannel-API. Always Open Source, MIT license. Made with 💙 by shopware AG & Vue Storefront.
Stars: ✭ 180 (-12.62%)
Mutual labels:  ecommerce, pwa
Generative.fm
A platform for playing generative music in the browser.
Stars: ✭ 1,534 (+644.66%)
Mutual labels:  pwa, progressive-web-app
Detoxify App
📱🙅 Generate a fake app to replace any addictive app
Stars: ✭ 122 (-40.78%)
Mutual labels:  pwa, progressive-web-app

Online store PWA sample

Build Status

This sample demonstrates best practices for e-commerce websites.

It also demonstrates some useful features enabled by new technologies and APIs on the web.

Development

Create a fork of the original project GoogleChromeLabs/sample-pie-shop and clone to your development environment.

Install dependencies

Change to the top level project directory run the following:

cd sample-pie-shop
npm ci

Note: This will install the dependencies as per the package-lock.json whereas npm install will update them. If you need to update the dependencies, submit the updated package-lock.json as a new PR.

Run the development server

The project uses Firebase Cloud Firestore for product data. You will need to create a project and download the JSON configuration for the Admin SDK. You can do this in the Firebase console using the Generate new private key button. Save this to src/data/firebase-admin-key.json.

The start:dev target will build the site and serve it locally while watching for any changes. Once the script completes the initial build, the site should be available at localhost:3000.

npm run start:dev

Note: You can override the default location for the config file by specifying a path in the FB_KEYS environment variable.

FB_KEYS=/path/to/alternative-key.json npm run start:dev

Check package.json for the other build targets.

Import data to the database

Sample data for products, product categories and homepage content is stored as JSON in the /src/data directory.

You can import (upload) this data to your remote Firestore database by running the following Node scripts from the /tools directory:

cd tools
node --experimental-modules import_home.mjs
node --experimental-modules import_products.mjs

This project uses ECMAScript Modules, which currently require the --experimental-modules flag.

Check your version of Node using node -v and update to the LTS or Current version if necessary. The import code above has been tested in versions 10.15.3 and 11.14.0.

Create a search index from your own data

This demo uses the Algolia search engine. This is free for open source projects with up to 100k records and 200k operations monthly.

The search functionality provided by this sample will work as-is for the product data in /src/data/products.json. In other words, if you're happy to use the sample product data as it is, you don't need to do anything!

However, if you want to use different product data, you will need to create your own Algolia application, then build a search index from your data. The index.js application in the /tools/algolia directory enables you to create an Algolia search index from a Firebase data source. It can also be used to monitor updates to your data, and update the Algolia search index in response.

Follow these steps to build a search index if you want to use your own data:

  1. Follow the Algolia tutorial to create a search application.
  2. Follow the tutorial instructions to create a .env configuration file in the /tools/algolia directory.
  3. Run node index.js in the same directory to get data from Firebase and create the index for the Algolia app.
  4. Update the APP_ID (Algolia app) and API_KEY (search key) values in /src/services/algolia.js.

Images

Images are served from Cloudinary and displayed responsively using the srcset and sizes attributes in combination with lazy-img for lazy loading.

Deploying

See DEPLOY.md.

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