Skip to content

Web-server allowing viewers to view Shower slides in sync with presenter

License

Notifications You must be signed in to change notification settings

cy6erskunk/shower-server

Repository files navigation

Dependency Status

shower-server

shower-server is a node.js-based server allowing multiple clients to view Shower slides in sync with presenter.

Kickstart

At the moment three steps are required to start showing presentation

It is assumed, that machine you're installing shower-server on is called example.com and you have node and npm installed.

  1. install shower-server by running

     $> git clone git://github.com/cy6erskunk/shower-server.git && cd shower-server && npm install
    
  2. copy your Shower presentation to presentation folder (presentation file along with theme stuff)

  3. start shower-server by running ./bin/shower-server and remember masterKey it shows in the console:

    Presentation  "presentation/index.html" is served at / with masterKey=403926033d001b5279df37cbbe5287b7c7c267fa

You can now open your presentation in browser (default port is 8080, remember to add master parameter to the url with masterKey value from the step 3 to let shower-server know that you're presenter, not a viever, e.g.:

http://example.com:8080/?master=403926033d001b5279df37cbbe5287b7c7c267fa

Viewers can simply open the presentation URL (in the example earlier it would be http://example.com:8080/) and have slides changing after the presenter.

CONFIG

Filename: config.json

Sample config:

```json
{
    "host" : "",
    "port" : 8080,
    "presentations" : [
        {
            "folder" : "presentation",
            "master" : "lol"
        },
        {
            "folder" : "presentations/presentation1",
            "url"    : "ololo",
            "master" : "lol"
        },
        {
            "folder" : "presentations/presentation2",
            "url"    : "lol"
        },
        {
            "folder" : "presentation",
            "url"    : "nyan",
            "master" : "lol",
            "file"   : "index.html"
        }
    ]
}
```

Properties:

host

Type: String

Default: ''

Hostname. Default means to accept connections directed to any IPv4 address

port

Type: Number

Default: 8080

presentations

Type: Array

Optional. When absent, it's assumed that presentation is server at / from ./presentation/index.html with auto-generated master-key (so-called singleMode).

singleMode

This mode is enabled when there's no presentations array or there's only one object in it. presentation.url is ignored and server serves presentation at /. Other options perform in usual way.

presentation

Type: Object

Description of presentation: folder, file, url, masterKey

presentation.folder

Type: String

Default (in singleMode): 'presentation'

Optional in singleMode.

Path to folder containing presentation, relative to shower-server folder.

presentation.master

Type: String

Optional. String to pass as GET parameter to indicate presenter connection. In case of absence is auto-generated and its value is shown in console when server starts.

presentation.url

Type: String

Default: '/' in singleMode, '/' + presentation.folder + '/' otherwise

Optional.

presentation.file

Type: String

Default: 'index.html'

Optional.

Some features

Disconnect button

Master

  • stops master from emitting page changes when disconnected
  • send additional update when master connects back

Viewer

  • unsubscribe from updates when disconnected
  • try to get current page when connecting back

DEPENDENCIES

Versions

0.2.1

  • 'disconnect' button added

0.2.0

  • single/multi presentation modes
  • no manual editing of presentaion html file to include scripts
  • config file required

0.1.1

Multiple-presentations dirty proof of concept

0.1.0

Proof of concept

LICENSE

For the full copyright and license information, please view the LICENSE file that was distributed with this source code.

About

Web-server allowing viewers to view Shower slides in sync with presenter

Resources

License

Stars

Watchers

Forks

Packages

No packages published