Code Monkey home page Code Monkey logo

paradisepi's Introduction

ParadisePi

Test Build GitHub repo size GitHub release (latest by date)

Logo

A facility control panel for sACN & OSC, in Electron.

Made up of an electron app, with a websocket server serving an admin interface

Read about it on the website

Stack

Installation

Pre-built packages are provided for Windows, MacOS (Intel) and Linux at the Latest Release


Developing

Docs

The Paradise website is hosted on Cloudflare Pages, and is built using Docusaurus. The source is in the /docs directory.

Running locally

For the OSC library windows build tools are needed. See the instructions here: https://github.com/nodejs/node-gyp#on-windows

npm install
npm start

To restart the app (hot reloading doesn't work for the preload process itself, only the rendered output) type rs into the command line opened by the start command. Hot reloading also doesn't work for the main process, you need to restart it fully.

You can access the rendered output of the app in a browser as well (if helpful) by visiting http://localhost:9001/main_window/#/main/help. This doesn't work in production builds.

Building Releases

npm run make

Releasing

Releases are automatically generated whenever a tag is pushed to the main branch. You can them check them over and publish them.

Architecture

flowchart TB
    subgraph ElectronProcess ["Electron Main Process (node.js)"]
    db[(Database)]-->repo([Database Repository])-->rt[Router]
    rt-->repo-->db
    models([Database Models])-->repo
    rt-->osc{{OSC Output}} & e131{{"sACN (E1.31) Output"}} & http{{"HTTP Output"}}
    samp{{sACN Sampler}}-->repo
    end
    subgraph Clients ["Clients"]
      subgraph ElectronWindow ["Electron Window"]
      react1(React)-.->rd1 & apiCall1
      rd1(Redux) & apiCall1(Api Call Function)-->wrap1{API Wrapper}
      end
   
      subgraph BrowserWindow ["Browser Window (e.g. over Wifi)"]
      react2(React)-.->rd2 & apiCall2
      rd2(Redux) & apiCall2(Api Call Function)-->wrap2{API Wrapper}
      end
    end
    
      wrap2-->socket>Socket.io]-->rt
      socket-- Callback -->wrap2
      repo-->socket-- Push -->rd2

      wrap1-->ipc>IPC Channel]-->rt
      ipc-- Callback -->wrap1
      repo-->ipc-- Push -->rd1
      
    ElectronProcess --> ElectronWindow
    ElectronProcess --> ws>Webserver] --> BrowserWindow

Licence

This program is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation, either version 3 of the License, or 
any later version.

This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
GNU General Public License for more details.

You should have received a copy of the GNU General Public License
along with this program.  If not, see <https://www.gnu.org/licenses/>.

paradisepi's People

Contributors

jbithell avatar dependabot[bot] avatar cherry-john avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.