{"id":21744279,"url":"https://github.com/embermn/ember-rpi-demo-2019","last_synced_at":"2026-04-05T20:37:37.449Z","repository":{"id":84209053,"uuid":"213275325","full_name":"EmberMN/ember-rpi-demo-2019","owner":"EmberMN","description":"Files for Jacob's October 2019 meetup presentation","archived":false,"fork":false,"pushed_at":"2019-10-08T22:14:23.000Z","size":21,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":2,"default_branch":"master","last_synced_at":"2025-01-25T22:22:03.520Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"Shell","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/EmberMN.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,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2019-10-07T01:53:30.000Z","updated_at":"2019-10-08T22:14:25.000Z","dependencies_parsed_at":null,"dependency_job_id":"4e0e1142-cad6-4242-8101-54b77031e92b","html_url":"https://github.com/EmberMN/ember-rpi-demo-2019","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/EmberMN%2Fember-rpi-demo-2019","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/EmberMN%2Fember-rpi-demo-2019/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/EmberMN%2Fember-rpi-demo-2019/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/EmberMN%2Fember-rpi-demo-2019/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/EmberMN","download_url":"https://codeload.github.com/EmberMN/ember-rpi-demo-2019/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":244722652,"owners_count":20499151,"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-11-26T07:10:59.451Z","updated_at":"2025-12-31T00:03:42.787Z","avatar_url":"https://github.com/EmberMN.png","language":"Shell","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Ember.js + RPi\n\n## Introduction / background\n\nThis presentation came about because I (jacobq) had recently been tasked by my employer to add a simple, flexible web interface to one of our products. Although this instrument had a [PLC](https://en.wikipedia.org/wiki/Programmable_logic_controller) that included an Ethernet [NIC](https://en.wikipedia.org/wiki/Network_interface_controller), it was quite limited in its capabilities. We don't currently produce enough of these units per year to justify designing custom electronics just for this, so I decided to try integrating a [Raspberry Pi](https://www.raspberrypi.org/) (RPi) [SBC](https://en.wikipedia.org/wiki/Single-board_computer). I used [nginx](https://nginx.org/) to serve a static [ember.js](https://emberjs.com/) app and map requests for URLs matching `/ws` to a [node.js](https://nodejs.org/en/) back-end using [WebSocket](https://developer.mozilla.org/en-US/docs/Web/API/WebSockets_API)s and was pleased with the results. Having learned a lot along the way I thought that I ought to share about the experience.\n\nIt should be noted that the design choices in this example are not the only--or even the best--ones. Different applications will benefit from different choices. Hopefully, however, what I've provided here is sufficiently modular that others can adapt it to their needs.\n\n\n## File structure\n\n* [`back-end/`](./back-end/) Source code for Node.js back-end\n* [`front-end/`](./front-end/) Source code for Ember.js front-end\n* [`rpi/`](./rpi) Content related to setup of the RPi\n* ~~[`slides/`](./slides/) Presentation (made with [reveal.js](https://github.com/hakimel/reveal.js))~~ (sorry, ran out of time)\n\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fembermn%2Fember-rpi-demo-2019","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fembermn%2Fember-rpi-demo-2019","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fembermn%2Fember-rpi-demo-2019/lists"}