{"id":15143790,"url":"https://github.com/contentful/guide-app-sw","last_synced_at":"2025-09-29T12:31:14.355Z","repository":{"id":28037338,"uuid":"31532903","full_name":"contentful/guide-app-sw","owner":"contentful","description":"A generic guide app for shop guides","archived":true,"fork":false,"pushed_at":"2018-09-04T15:22:57.000Z","size":33,"stargazers_count":27,"open_issues_count":0,"forks_count":5,"subscribers_count":10,"default_branch":"master","last_synced_at":"2024-09-27T10:04:04.760Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"JavaScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/contentful.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2015-03-02T09:32:21.000Z","updated_at":"2023-01-28T20:05:33.000Z","dependencies_parsed_at":"2022-09-04T07:31:26.523Z","dependency_job_id":null,"html_url":"https://github.com/contentful/guide-app-sw","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/contentful%2Fguide-app-sw","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/contentful%2Fguide-app-sw/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/contentful%2Fguide-app-sw/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/contentful%2Fguide-app-sw/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/contentful","download_url":"https://codeload.github.com/contentful/guide-app-sw/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":234619457,"owners_count":18861456,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2024-09-26T10:04:13.460Z","updated_at":"2025-09-29T12:31:09.071Z","avatar_url":"https://github.com/contentful.png","language":"JavaScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"\n# Deprecation notice\n \nThis repository is deprecated and no further maintenance is planned. For an React example, please see https://github.com/contentful/gallery-app-react\n\n\nguide-app-sw\n=========\n\nA generic guide app for shop guides\n\n**This is a project created on an internal hackathon as an example of how to use Contentful and React.js. It's not officially supported, so if you find issues or have questions you can let us know via issues but don't expect a quick and prompt response.**\n\n**This is loosely based on an [another version](https://github.com/contentful/guide-app) of this app created at a previous\nhackathon**\n\nA [React.js](http://facebook.github.io/react/) based app, using [Contentful](https://www.contentful.com/) as a data storage. Renders from\nthe server on initial load and it renders on the client on subsequent\nloads, making use of [react-router-component](andreypopp.viewdocs.io/react-router-component).\n\nSee the [Contentful Developer Documentation](https://www.contentful.com/developers) to learn more about the API.\n\nThe app is built according to the [Flux architecture](https://facebook.github.io/flux/) using [RefluxJS](https://github.com/spoike/refluxjs).\n\nIt makes heavy use of ES6 features using [Babel](https://babeljs.io/).\n\nThe app also makes use of [Service Worker](http://jakearchibald.com/2014/using-serviceworker-today/) to persist assets locally and allow for offline usage.\n\nHowever, before the features below are completed we can't really enjoy\nthe full potential of the possibilities SW gives us.\n\n# TODO\n\nThese features are in progress but hampered by an issue on the\nContentful client library which we will fix soon:\n\n* Add sync via the Contentful sync api\n* Persist synced data to PouchDB\n\nAlso:\n* Add live demo\n* More styling and functionality\n* Write an in depth blog post about how the app is structured\n\n# Usage\n\nInstall with\n\n```\nnpm install\n```\n\nAfterwards, copy `config.json.default` to `config.json`.\n\nBuild assets with\n\n```\nmake all\n```\n\nRun with\n\n```\nnode server.js\n```\n\nor\n\n```\nnodemon server.js\n```\n\nand visit [http://localhost:6001](http://localhost:6001)\n\n# Using it with your own data\n\nThe credentials provided above in config.json are read only and they allow you to access data from a demo Space. If you want to create your own data, you should get a Contentful account and then get a Content Delivery API key from the API section.\n\n# The content structure\n\nThis app uses only one content type. It looks like this:\n\n```json\n{\n  \"sys\": {\n    ...\n  },\n  \"name\": \"Location\",\n  \"displayField\": \"name\"\n  \"fields\": [\n    {\n      \"name\": \"Name\",\n      \"id\": \"name\",\n      \"type\": \"Text\"\n    },\n    {\n      \"name\": \"Type\",\n      \"id\": \"type\",\n      \"type\": \"Text\"\n    },\n    {\n      \"name\": \"Address\",\n      \"id\": \"address\",\n      \"type\": \"Location\"\n    },\n    {\n      \"name\": \"Phone number\",\n      \"id\": \"phoneNumber\",\n      \"type\": \"Symbol\"\n    },\n    {\n      \"name\": \"Email\",\n      \"id\": \"email\",\n      \"type\": \"Symbol\"\n    },\n    {\n      \"name\": \"URL\",\n      \"id\": \"url\",\n      \"type\": \"Symbol\"\n    },\n    {\n      \"name\": \"Opening times\",\n      \"id\": \"openingTimes\",\n      \"type\": \"Text\"\n    },\n    {\n      \"name\": \"Description\",\n      \"id\": \"description\",\n      \"type\": \"Text\"\n    },\n    {\n      \"name\": \"Rating\",\n      \"id\": \"rating\",\n      \"type\": \"Integer\"\n    },\n    {\n      \"name\": \"Pictures\",\n      \"id\": \"pictures\",\n      \"type\": \"Array\",\n      \"items\": {\n        \"type\": \"Link\",\n        \"linkType\": \"Asset\",\n        \"validations\": [\n          {\n            \"linkMimetypeGroup\": \"image\"\n          }\n        ]\n      }\n    }\n  ]\n}\n```\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fcontentful%2Fguide-app-sw","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fcontentful%2Fguide-app-sw","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fcontentful%2Fguide-app-sw/lists"}