{"id":19908990,"url":"https://github.com/abdellaui/soplan","last_synced_at":"2026-05-13T00:35:15.955Z","repository":{"id":125287983,"uuid":"149174483","full_name":"abdellaui/SoPlan","owner":"abdellaui","description":"[LIVE-DEMO] covers a real usecase of \"Landesverband Mathematikwettbewerbe NRW e.V.\" (https://mathe-nrw.de) as a standalone executable, implemented with Electron Inter-Process-Communication + TypeScript (backend), Angular 7 (frontend) and an external connectivity to MySQL database | click here:","archived":false,"fork":false,"pushed_at":"2023-10-10T23:10:51.000Z","size":6209,"stargazers_count":2,"open_issues_count":1,"forks_count":1,"subscribers_count":1,"default_branch":"master","last_synced_at":"2025-11-29T04:34:08.033Z","etag":null,"topics":["angular","electron","executable","live-demo","nebular-theme","open-source","opensource","project","typeorm","voluntary"],"latest_commit_sha":null,"homepage":"https://github.com/abdellaui/SoPlan/releases/latest","language":"TypeScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"lgpl-3.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/abdellaui.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","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,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2018-09-17T19:06:01.000Z","updated_at":"2025-01-30T23:07:32.000Z","dependencies_parsed_at":null,"dependency_job_id":"77745300-8946-45a2-b9de-380302c97474","html_url":"https://github.com/abdellaui/SoPlan","commit_stats":null,"previous_names":[],"tags_count":6,"template":false,"template_full_name":null,"purl":"pkg:github/abdellaui/SoPlan","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/abdellaui%2FSoPlan","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/abdellaui%2FSoPlan/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/abdellaui%2FSoPlan/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/abdellaui%2FSoPlan/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/abdellaui","download_url":"https://codeload.github.com/abdellaui/SoPlan/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/abdellaui%2FSoPlan/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":32963172,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-05-12T23:30:32.555Z","status":"ssl_error","status_checked_at":"2026-05-12T23:30:18.191Z","response_time":102,"last_error":"SSL_read: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"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":["angular","electron","executable","live-demo","nebular-theme","open-source","opensource","project","typeorm","voluntary"],"created_at":"2024-11-12T21:14:06.832Z","updated_at":"2026-05-13T00:35:15.945Z","avatar_url":"https://github.com/abdellaui.png","language":"TypeScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# SoPlan\n\n## install tools\n- nodejs\n- git\n- sourcetree  (gui for git)\n- mysql\n- mysqlworkbranch (gui for mysql)\n(perhaps we'll use postresql)\n\n## features for vscode\n- Angular Files ^1.6.2\n- Debugger for Chrome ^4.10.1\n- EditorConfig for VS Code ^0.12.4\n- TSLint ^1.0.39\n- TypeScript Hero ^2.3.2\n- TypeScript Import ^1.17.0\n\n## run for init project\n```\ngit clone https://github.com/abdellaui/SoPlan.git\ncd SoPlan/\nnpm i -g @angular/cli\nnpm install\nnpm install @angular/core@7.1.0\nnpm install @angular/animations@7.1.0\nnpm start\n```\n## libaries\n**Please** read the apis of following frameworks/libs:\n* typescript (javascript)\n    * rx/js\n* angular\n    * testing languages:\n        * jasmine\n        * protractor\n* electron\n    * testing:\n        * spectron\n* typeorm\n    * decorators:\n        * relation\n        * validation\n* bootstrap\n* nebular (ui-kit)\n    * theme: components\n\n## mock-server\nangular is just a client-side framework, but we want to use native resources etc. So we need a bridge between backend and fronted.\nWe are communicating on ipc (inter-process-communication), which is a module of electron api. Electron is not aviable on the browser.\nThe communication is between `ipcRendererServices` (inside angular) and `**/*.slot.ts` files.\n`./backend/slot.ts` shows adaptering the ipcMain to a http-server (express).\n`./src/app/services/ipcRendererServices.ts` shows adaptering the ipcRenderer to a http-client.\n\nWhy we not use http always? so, we want to create a standalone executable application, which doesnt only wrap a webpage into a webview and we wont let run a ghost server which listen always to a port, and how we can know to handle with taken ports? \n\n## *.slot.ts file\nuse following schema for *.slot.ts files!\n```javascript\nimport { on, send } from './../../slots';\n\nexport function init() {\n\n    on('get/channel/name', (event: any, arg: any) =\u003e {\n        // doSmth();\n        send(event, 'get/channel/name', arg);\n\n        // end(event);\n    });\n    \n    // ...\n}\n\n```\n\n## how to use git\n**please** always develop on the `develop` branch. Do your experiments always on a new branches spawned from `develop` branch. if your experiment goals, then merge it back to `develop`. run the test, if anything causes problem, merge it to `master`. never branch from `master` for solving new problems. \n\n**please** set your editor correctly, `.editorconfig` will help you. maybe you can import it directly, otherwise check if your auto-formatter changes some correct codes or change you editor, `vscode` is good option. If nothing changes on auto-formatting, you're ready to use git. **This step is very important to save useless change-reports by git.**\n\n**use sourcetree!**\n\n## nice to know\n\nelectron starts at `main.ts`. On `serve mode` it will just wrap `http://localhost:4200`, on `build mode` it will wrap and include `/dist`.\n\nyou can disactivate \"Developer Tools\" by commenting `win.webContents.openDevTools();` in `main.ts`.\n\nlibrary imported in `main.ts` (electron) should be installed per npm dependencies (not devDependencies) with `npm install --save`. It will be loaded by electron during build phase and added to the final package.\n\n\n## browser mode\nnote that you can't use electron or nodejs native libraries in this case inside angular.\n\n## commands\n\n|Command|Description|\n|---|---|\n|`npm start`| Execute the app (electron on `serve mode`) |\n|`npm run electron:local`| Execute the app (electron on `build mode`) |\n|`npm run ng:web`| Execute the app in the browser |\n|`npm run clear`|  Removes `/out-tsc` `/release` `/dist` folders |\n|`npm run test`| Runs angular unit-testing |\n|`npm run e2e`|  Rungs angular end-to-end testing |\n|`npm run compile:linux`| Builds your application and creates an app consumable on linux system |\n|`npm run compile:windows`| On a Windows OS, builds your application and creates an app consumable in windows 32/64 bit systems |\n|`npm run compile:mac`|  On a MAC OS, builds your application and generates a `.app` file of your application that can be run on Mac |\n\n** Application is optimised. Only `/dist` folder and node dependencies are included in the executable.**\n\n## keep calm\nnpm will show something like `scroll to bottom`, because we use packages like karma and protractor, which are test-frameworks. it is usual, that test-frameworks arent safe.\n\n````\nfound 36 vulnerabilities (6 low, 22 moderate, 8 high) in 45411 scanned packages\n````\n\n\n## some nice screenshots:\n![screen_dashboard.png](./_doc/screen_dashboard.png)\n![bescheining.png](./_doc/bescheinigung.png)\n![login.png](./_doc/login.png)\n![er-model.png](./backend/er-model.png)\n\nfor more information check [./_doc/presentation.pdf](./_doc/presentation.pdf)\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fabdellaui%2Fsoplan","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fabdellaui%2Fsoplan","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fabdellaui%2Fsoplan/lists"}