{"id":19624370,"url":"https://github.com/areksredzki/electron-app-base","last_synced_at":"2025-08-08T04:42:22.844Z","repository":{"id":73160426,"uuid":"112127235","full_name":"ArekSredzki/electron-app-base","owner":"ArekSredzki","description":"A base project for creating interactive desktop applications with Electron.","archived":false,"fork":false,"pushed_at":"2017-11-27T00:18:08.000Z","size":98,"stargazers_count":3,"open_issues_count":0,"forks_count":0,"subscribers_count":2,"default_branch":"master","last_synced_at":"2025-01-09T11:58:17.092Z","etag":null,"topics":["application","auto-update","electron","electron-app","electron-release-server","es6-javascript","js","starter-app","starter-project"],"latest_commit_sha":null,"homepage":"","language":"JavaScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/ArekSredzki.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE.md","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,"publiccode":null,"codemeta":null}},"created_at":"2017-11-27T00:08:05.000Z","updated_at":"2020-10-27T08:43:16.000Z","dependencies_parsed_at":null,"dependency_job_id":"707ccfb5-99b6-4b5c-a4eb-29ba5c1bbcd9","html_url":"https://github.com/ArekSredzki/electron-app-base","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/ArekSredzki%2Felectron-app-base","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ArekSredzki%2Felectron-app-base/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ArekSredzki%2Felectron-app-base/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ArekSredzki%2Felectron-app-base/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/ArekSredzki","download_url":"https://codeload.github.com/ArekSredzki/electron-app-base/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":240923413,"owners_count":19879305,"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":["application","auto-update","electron","electron-app","electron-release-server","es6-javascript","js","starter-app","starter-project"],"created_at":"2024-11-11T11:37:55.036Z","updated_at":"2025-02-26T19:35:35.031Z","avatar_url":"https://github.com/ArekSredzki.png","language":"JavaScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Electron App Base\n[![GitHub stars](https://img.shields.io/github/stars/ArekSredzki/electron-app-base.svg)](https://github.com/ArekSredzki/electron-app-base/stargazers)\n[![GitHub forks](https://img.shields.io/github/forks/ArekSredzki/electron-app-base.svg)](https://github.com/ArekSredzki/electron-app-base/network)\n\u003e A base project for creating interactive desktop application with [Electron](https://electron.atom.io/).\n\n## Basic Usage:\nAdd basic usage data for your application here.\n\n## Quick Start\n#### Production\nThe latest release is available here (add a link to your release server here).\n\nIf you do not already have a release server, consider using [electron-release-server](https://github.com/ArekSredzki/electron-release-server).\n\n#### Development\n\nEnsure that you have installed Node.js on your development machine.\n\n**Note:** Node.js version `\u003e= 8.x.x` is required.\n\n```shell\nnpm install\nnpm start\n```\n\n## The Stack\nThe App Stack includes various tools and frameworks. Below is a list of those items and their intended purpose:\n- **AngularJS**: Client Side Web-App Stack\n- **Bower**: Managing CSS/JS dependencies (i.e. AngularJS)\n- **Sass**: Enhanced Stylesheets (SCSS)\n- **Jade**: HTML Templating Engine\n- **Wiredep**: Injecting Bower dependencies into the Jade files\n- **Karma/Jasmine**: Testing framework for AngularJS + code coverage support\n- **Grunt**: Build Automation for compiling Sass + other resources before application is run\n- **Electron**: Application wrapper which enables native multi-platform support\n- **Node.js**: Running the Electron/Desktop Application\n- **Electron Builder**: Used to generate release artifacts (executables and installers) for all target platforms.\n\n## Adding new views\nThanks to the use of Grunt and Wiredep, resources are automatically included from the `main.jade` file. It is recommended that all views be written in the same directory as their controller, as`.jade` files.\n\n## Adding/Managing Bower Resources\nIn order to add a new resource, simply install + save it using bower. Below is an example using Angular\n\n```shell\nbower install --save angular\n```\n\nAnd that's it. Since we are using Grump + Wiredep, all bower dependencies will be included on pages supporting the Wiredep tags.\n\n## Adding/Managing NPM Resources\nThere are two package.json files for this project. One is found in this folder, the other in ./app\n\nThe package.json folder found in this folder contains only those node modules required for development, while all packages used by the app at runtime are in the app folder. This allows for more reliable packaging.\n\nIn order to add a new resource, simply install + save it using npm in the appropriate directory.\n\nBelow is an example using lodash for a package required at runtime\n\n```shell\ncd app\nnpm install --save lodash\n```\n\nHere is another example, this time using karma for testing during development\n\n```shell\nnpm install --save-dev karma\n```\n\n## Using the Desktop Application During Development\nTo compile the application and run it for development usage, type in the project root directory:\n\n```shell\nnpm start\n```\n\nIn order to additionally run the application with the ability to connect a debugger to the main and database processes, run the following:\n\n```shell\nnpm run debug\n```\n\nNote: The main process' debug port is `5858` whereas the database's is `5859`.\n\n\n## Building the Desktop Application\nThis project is setup to package Windows/Mac/Linux apps for distribution.\n\nFor doing so we use [electron-builder](https://www.npmjs.com/package/electron-builder). See the GitHub page for more information on the tool and it's dependencies.\n\nYou will first need to run `npm install` in this directory if you have not already. Afterwards, run the following to build the app for all architectures and distributions:\n\n```shell\nnpm run build\n```\n\n### Multi-Platform Builds\n**Important:** Be sure to read the requirements set out by [electron-builder](https://www.electron.build/multi-platform-build).\n\n### Distribution \u0026 Release Process\nRelease builds must be code signed and since all builds can be completed from OS X, it has been established that all release artifacts **must** be generated on the dedicated OS X build server.\n\nRelease artifacts will be generated on every commit pushed to the `master` branch. As a result, all changes to `master` must be submitted through a PR.\n\n**Note:** The automatically generated artifacts are **not** auto-published, this must be done by hand.\n\n#### Adding build machines\nIf a new build machine is to be used, it **must** have the code signing certificate applied to it.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fareksredzki%2Felectron-app-base","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fareksredzki%2Felectron-app-base","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fareksredzki%2Felectron-app-base/lists"}