{"id":13822029,"url":"https://github.com/edulan/react-app-example","last_synced_at":"2025-08-30T15:32:19.256Z","repository":{"id":66722504,"uuid":"65683387","full_name":"edulan/react-app-example","owner":"edulan","description":"Electron application example using React and MobX","archived":false,"fork":false,"pushed_at":"2016-09-28T20:34:23.000Z","size":81,"stargazers_count":21,"open_issues_count":1,"forks_count":1,"subscribers_count":2,"default_branch":"master","last_synced_at":"2024-12-15T02:03:11.911Z","etag":null,"topics":["electron","mobx","react"],"latest_commit_sha":null,"homepage":"","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/edulan.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,"governance":null,"roadmap":null,"authors":null}},"created_at":"2016-08-14T19:42:42.000Z","updated_at":"2022-04-01T18:04:59.000Z","dependencies_parsed_at":"2023-03-06T04:00:57.484Z","dependency_job_id":null,"html_url":"https://github.com/edulan/react-app-example","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/edulan%2Freact-app-example","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/edulan%2Freact-app-example/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/edulan%2Freact-app-example/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/edulan%2Freact-app-example/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/edulan","download_url":"https://codeload.github.com/edulan/react-app-example/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":231501581,"owners_count":18386285,"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":["electron","mobx","react"],"created_at":"2024-08-04T08:01:38.807Z","updated_at":"2024-12-27T15:03:37.992Z","avatar_url":"https://github.com/edulan.png","language":"JavaScript","funding_links":[],"categories":["JavaScript"],"sub_categories":[],"readme":"# React application example\nThis is an example of a desktop application using Electron, React and MobX.\n\nThis project is based on create-react-app, but has been ejected and further configured to suite its special needs.\n\n## Usage\nStart dev server\n```\nnpm run build:watch\n```\n\nStart electron application (development mode)\n```\nnpm start\n```\n\nRun tests\n```\nnpm test\n```\n\n## Application\n\n### Folder structure\n* config\n* src\n  * components\n  * stores\n  * services\n  * queries\n  * index.js (react app entry point)\n* test\n* index.js (electron app)\n\n### Architecture\nThis applications follows MobX conventions, in which everything is based on state and changes in the UI are reactions to state changes.\n\nComponents only receive stores via props and interact with the external world via those stores. Stores are globally available for components via a `Provider`.\n\nStores exposes a simple API to abstract components from outside world. Stores uses services to perform all actions that mutate state.\n\nServices are responsible of retrieving/sending current state from/to persistance layer. Queries functions are used to communicate with persistance engine.\n\nQueries encapsulates persistance specific domain language. They are kind of adapter.\n\n### Bootstrap\nBootstrap process is responsible of setting up all the needed engines for application to start. Currently there are 2 main ones:\n\n* Prepare DB migrations\n* Initialize routing\n\n### DB\nIndexedDB is used as persistance engine. Dexie is the wrapper around it that the application uses to commmunitcate with DB storage.\n\n### Routing\nBased on state\n\n### Authentication\nUses hashed passwords\n\n### I18n\nIn progress. Evaluating react-intl\n\n### Tests\nUses Electron and Mocha for testing. Enzyme is the framework election for testing components\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fedulan%2Freact-app-example","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fedulan%2Freact-app-example","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fedulan%2Freact-app-example/lists"}