{"id":13698602,"url":"https://github.com/SenseNet/sn-react-redux-todo-app","last_synced_at":"2025-05-04T03:31:40.379Z","repository":{"id":68995413,"uuid":"76017948","full_name":"SenseNet/sn-react-redux-todo-app","owner":"SenseNet","description":"Example todo app built with React+Redux upon sensenet","archived":true,"fork":false,"pushed_at":"2018-12-11T12:31:57.000Z","size":3014,"stargazers_count":3,"open_issues_count":0,"forks_count":0,"subscribers_count":5,"default_branch":"master","last_synced_at":"2024-11-13T03:34:46.645Z","etag":null,"topics":["ecms","example","react","redux","sensenet","sn-client-js","sn-redux","todoapp"],"latest_commit_sha":null,"homepage":"https://www.sensenet.com/","language":"TypeScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"gpl-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/SenseNet.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":"CONTRIBUTING.md","funding":null,"license":"LICENSE.txt","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null}},"created_at":"2016-12-09T08:45:40.000Z","updated_at":"2023-01-28T19:22:30.000Z","dependencies_parsed_at":null,"dependency_job_id":"2a8439c0-2586-4aba-97c1-795ebaf57116","html_url":"https://github.com/SenseNet/sn-react-redux-todo-app","commit_stats":null,"previous_names":[],"tags_count":3,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SenseNet%2Fsn-react-redux-todo-app","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SenseNet%2Fsn-react-redux-todo-app/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SenseNet%2Fsn-react-redux-todo-app/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SenseNet%2Fsn-react-redux-todo-app/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/SenseNet","download_url":"https://codeload.github.com/SenseNet/sn-react-redux-todo-app/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":252283624,"owners_count":21723511,"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":["ecms","example","react","redux","sensenet","sn-client-js","sn-redux","todoapp"],"created_at":"2024-08-02T19:00:50.667Z","updated_at":"2025-05-04T03:31:38.884Z","avatar_url":"https://github.com/SenseNet.png","language":"TypeScript","funding_links":[],"categories":["Examples"],"sub_categories":[],"readme":"# Todo App example with SN7, React and Redux\n\n------\n### This package is not under active development. You can find our latest packages in the [sensenset/sn-client](https://github.com/sensenet/sn-client) monorepo.\n------\n\n[![Greenkeeper badge](https://badges.greenkeeper.io/SenseNet/sn-react-redux-todo-app.svg)](https://greenkeeper.io/)\n\n[![Build status](https://img.shields.io/travis/SenseNet/sn-react-redux-todo-app.svg?style=flat)](https://travis-ci.org/SenseNet/sn-react-redux-todo-app)\n[![Coverage](https://img.shields.io/codecov/c/github/SenseNet/sn-react-redux-todo-app.svg?style=flat)](https://codecov.io/gh/SenseNet/sn-react-redux-todo-app)\n[![Codacy Badge](https://api.codacy.com/project/badge/Grade/b09d599538fa49e9bb1cb92df4042ada)](https://www.codacy.com/app/herflis33/sn-react-redux-todo-app?utm_source=github.com\u0026amp;utm_medium=referral\u0026amp;utm_content=SenseNet/sn-react-redux-todo-app\u0026amp;utm_campaign=Badge_Grade)\n[![License](https://img.shields.io/github/license/SenseNet/sn-react-redux-todo-app.svg?style=flat)](https://github.com/SenseNet/sn-client-js/LICENSE.txt)\n[![semantic-release](https://img.shields.io/badge/%20%20%F0%9F%93%A6%F0%9F%9A%80-semantic--release-e10079.svg?style=flat)](https://github.com/semantic-release/semantic-release)\n[![Commitizen friendly](https://img.shields.io/badge/commitizen-friendly-brightgreen.svg?style=flat)](http://commitizen.github.io/cz-cli/)\n\nThis example is simple todo app built with React+Redux upon sensenet which has been prepared to demonstrate how to use the new sensenet related libraries [sn-client-js](https://github.com/SenseNet/sn-client-js)\nand [sn-redux](https://github.com/SenseNet/sn-redux). The app and a steps of the related tutorial are based on two awesome Redux courses of Dan Abramov: \n[Getting Started with Redux](https://egghead.io/courses/getting-started-with-redux) and [Building React Applications with Idiomatic Redux](https://egghead.io/courses/building-react-applications-with-idiomatic-redux). \nThese two courses are extremely helpful and essential, recommended for everyone who is interested in building scalable apps with [Redux](http://redux.js.org/).\n\n## Quick start\n\n```\n$ git clone https://github.com/SenseNet/sn-react-redux-todo-app.git\n$ cd sn-react-redux-todo-app\n$ npm install\n$ npm start\n```\n\n## Settings\n\nTo use this example you'll need a sensenet portal. To connect the app with the portal create a repository and set its RepositoryUrl\n```\nimport { Repository } from 'sn-client-js';\n\nconst repository = new Repository.SnRepository({\n  RepositoryUrl: 'https://sn-services/'\n});\n```\n\nIf you've created your app, with sn-client-cli you can set the RepositoryUrl in the related config file (sn.config.js in your projets root) too.\n\n```json\n{\n    RepositoryUrl: \"https://sn-services/\"\n}\n```\n\nIn this case you can define your repository the following way:\n\n```tsx\nimport { Repository } from 'sn-client-js';\nimport * as snConfig from './sn.config.js';\n\nconst repository = new Repository.SnRepository(snConfig);\n```\n\nTo allow outer origins go to your portal's Portal.setting (/Root/System/Settings/Portal.settings). To get the app working you have to add the app's domain as an allowed origin so that the app can send requests to the \nportal and get or set data.\n\n```\n{\n   AllowedOriginDomains: [ \"localhost:13505\" ]\n}\n```\n\nFor further information about CORS in sensenet check [this](http://community.sensenet.com/docs/cors/) article.\n\nThe example app uses a TaskList Content that should be created in sensenet portal. In the downloadable example it is '/Root/Sites/Default_Site/tasks' so if you want to try it with your custom sensenet install (no matter which one, eg, services, webpages, etc), you can create it at the same path, or modify it in the VisibleTodoList.tsx and the App.tsx files.\n\nThe example app demonstrates not only how to fetching data but also Content creation, edit and delete. The app provides authentication (for further information please check the docs with the ['jwt' tag](http://community.sensenet.com/tags/#jwt)), please check that the permission of the users are set correctly to run the mentioned applications.\n\nIf you are not familiar with sensenet's permission system check the following wiki articles:\n* [sensenet Permission System](http://wiki.sensenet.com/Permission_System)\n* [How to set permissions on a content in sensenet](http://wiki.sensenet.com/How_to_set_permissions_on_a_content)\n\n## Deployment\n\nThe app became now [create-react-app](https://github.com/facebookincubator/create-react-app) based, which means you can use its great tools with no extra configurations. Since all our related projects are written in Typescript we used here [create-react-app-typescript].(https://github.com/wmonk/create-react-app-typescript).\n\nTo build the project run\n\n```\nnpm build\n```\n\nIt will transpile the .ts and .tsx files to JavaScript and copy them along with the sourcemaps to the dist folder along with the .css files.\n\nTo run the tests\n\n```\nnpm test\n```\n\n## Related documents\n\n* [sn-client-js API reference](http://www.sensenet.com/documentation/sn-client-js/index.html)\n* [sn-redux API reference](http://www.sensenet.com/documentation/sn-redux/index.html)\n* [Redux](https://github.com/reactjs/redux)\n* [Getting Started with Redux](https://egghead.io/courses/getting-started-with-redux)\n* [Building React Applications with Idiomatic Redux](https://egghead.io/courses/building-react-applications-with-idiomatic-redux)\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2FSenseNet%2Fsn-react-redux-todo-app","html_url":"https://awesome.ecosyste.ms/projects/github.com%2FSenseNet%2Fsn-react-redux-todo-app","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2FSenseNet%2Fsn-react-redux-todo-app/lists"}