Code Monkey home page Code Monkey logo

deskreen's Introduction

Deskreen

Deskreen Logo

build-and-test codecov-generate codecov

Deskreen turns any device with a web browser to a second screen for your computer

Deskreen is an electron.js based application that uses WebRTC to make a live stream of your desktop to a web browser on any device. It is built on top of Electron React Boilerplate For better security mechanism, end-to-end encryption is implemented, which is inspired by darkwire.io. The difference is that it is rewritten in Typescript and transformed to use node-forge instead of window.crypto.subtle. Why this was made? Because a client served with http without SSL, which makes window.crypto. subtle unavailable. (TODO: write more docs about Deskreen architecture)

Get Started for Developers

Prerequisites

You will need to have node npm and yarn installed globally on your machine.

  1. git clone this repo
  2. yarn install
  3. yarn dev -- run in dev mode with live updates

Useful yarn commands

yarn start -- run in production mode to test, without packaging yarn package -- to package an app and make executables available in release folder

for more yarn commands look at package.json

How to run tests

yarn test -- run all unit tests yarn build-ux && yarn test-ux -- run User Experience tests (no tests for app/client yet)

TODO: add e2e tests with host + client app interaction

run tests of host app

yarn test-watch-not-silent -- run tests in watch mode with console logs only for host app, excluding app/client yarn test -- -u -- update snapshots

run tests for app/client

yarn test -- run client tests in watch mode test:nowatch -- run client tests a single time yarn test -- -u -- update snapshots

Generate test coverage results

yarn coverage -- when run from project root, generates a coverage report for host and app/client

Instruction for running a local Sonar Qube, community edition

Prerequisites

You need to install Sonar Qube community edition for your machine. And sonar-scanner. Then add sonar scanner to your PATH.

You need to run sonar-scanner separately on root directory and on app/client directory.

Luckily for you sonar scanner is automatically triggered after husky checks. So you only need to install and configure SonarCube locally and create two separate projects in SonarCube panel. First project for host app, and second project for client viewer app. TODO: add how to get started with local SonarCube for Deskreen in details.

Note on versioning:

  • All versions git tags should start with v ex. v1.0.0
  • Before making a new release with git push <version-tagname> set version to <version-tagname> ! without v in the beginning! (ex. 1.0.0 -- not start with v) in these three files:
    • package.json -- in version key ex. 1.0.0
    • app/package.json -- in version key ex. 1.0.0
    • app/package-lock.json -- in version key ex. 1.0.0

Maintainer

License

AGPL-3.0 License © Pavlo (Paul) Buidenkov

Copyright

Deskreen Logo PNG Image -- © Nadiia Plaunova

Apache 2.0 © blueprintjs

MIT © Electron React Boilerplate

simple-peer MIT. Copyright (c) Feross Aboukhadijeh.

Donate

Click to donate on Deskreen's Patreon page: DONATE!

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.