Giter VIP home page Giter VIP logo

spacedeck-open's Introduction

Spacedeck Open

Spacedeck 6.0 Screenshot

This is the free and open source version of Spacedeck, a web based, real time, collaborative whiteboard application with rich media support. Spacedeck was developed in 6 major releases during Autumn 2011 until the end of 2016 and was originally a commercial SaaS. The developers were Lukas F. Hartmann (mntmn) and Martin Güther (magegu).

The spacedeck.com online service was shut down on May 1st 2018. We decided to open-source Spacedeck to allow educational and other organizations who currently rely on Spacedeck to migrate to a self-hosted or local version.

MNT Research GmbH has restarted development of Spacedeck Open in 2020.

We appreciate filed issues, pull requests and general discussion.

Features

  • Create virtual whiteboards called Spaces with virtually unlimited size
  • Drag & drop images, videos and audio from your computer or the web
  • Write and format text with full control over fonts, colors and style
  • Draw, annotate and highlight with included graphical shapes
  • Turn your Space into a zooming presentation
  • Collaborate in realtime with teammates, students or friends
  • Share Spaces on the web or via email
  • Export your work as printable PDF or ZIP (currently being fixed, stay tuned)

Use Cases

  • Education: Virtual classwork with multimedia
  • Creative: Mood boards, Brainstorming, Design Thinking
  • Visual note taking and planning

Requirements, Installation

Spacedeck requires:

  • Node.js 18.x: Web Server / API. Download: https://nodejs.org
  • Graphicsmagick. On non-Linux, Download: http://www.graphicsmagick.org/ On Linux, install via package manager.
  • Optionally ffmpeg, audiowaveform and ghostscript. See "Optional Dependencies" below.

To run Spacedeck, you only need Node.JS 10.x.

To install all node dependencies, run (do this once) after cloning the repository:

npm install

Configuration

See config/default.json. Set storage_local_path for a local sqlite database or storage_region, storage_bucket, storage_cdn and storage_endpoint for AWS S3. mail_provider may be one of console or smtp. Also, omit a trailing / for the endpoint.

Disable DB logs

...
"db_logs_disabled": true
...

Configure color swatches

Add a custom array of swatches to your config/default.json.

You should include the swatch transparent (rgba(0,0,0,0)) so users can remove the color applied.

Configure default colors

You can define text, stroke and fill color in your config/default.json.

You also should include the default colors in your custom swatches palette.

...
"spacedeck": {
  "default_text_color": "#E11F26",
  "default_stroke_color": "#9E0F13",
  "default_fill_color": "#64BCCA",
  "swatches": [
    {"id":8, "hex":"#000000"},
    {"id":30, "hex":"rgba(0,0,0,0)"},
    {"id":31, "hex": "#E11F26"},
    {"id":32, "hex": "#9E0F13"},
    {"id":33, "hex": "#64BCCA"},
    {"id":34, "hex": "#40808A"},
    {"id":35, "hex": "#036492"},
    {"id":36, "hex": "#005179"},
    {"id":37, "hex": "#84427E"},
    {"id":38, "hex": "#6C3468"},
    {"id":39, "hex": "#F79B84"},
    {"id":40, "hex": "#B57362"},
    {"id":41, "hex": "#E7D45A"},
    {"id":42, "hex": "#ACA044"}
  ]
}
...

Run (web server)

node spacedeck.js

Then open http://localhost:9666 in a web browser.

Optional Dependencies

For advanced media conversion:

Data Storage

By default, media files are uploaded to the storage folder. The database is stored in database.sqlite by default.

Other databases (Not officially supported)

Postgres

Add the pg module and change the config/default.json to

"storage_dialect": "postgres",

Adapt the other values as needed

"storage_host": "localhost",
"storage_database": "spacedeck",
"storage_username": "username",
"storage_password": "password",

Run with Docker

  • configure config/default.json
  • adapt your docker-compose.yml if needed.
  • start the container with docker-compose up (use -d for background process and --build for rebuilding the image)

Hacking

To rebuild the frontend CSS styles:

gulp styles

License

The Spacedeck logo and brand assets are registered trademarks of Spacedeck GmbH. All rights reserved.

Spacedeck Open source code is released under the GNU Affero General Public License Version 3 (GNU AGPLv3).

Spacedeck Open - Web-based Collaborative Whiteboard For Rich Media
Copyright (C) 2011-2018 Lukas F. Hartmann, Martin Güther
Icons and original CSS design copyright by Thomas Helbig

This program is free software: you can redistribute it and/or modify
it under the terms of the GNU Affero General Public License as
published by the Free Software Foundation, either version 3 of the
License, or (at your option) 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 Affero General Public License for more details.

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

spacedeck-open's People

Contributors

1337cookie avatar banglashi avatar codiflow avatar cynthia-rempel avatar dependabot[bot] avatar fkohrt avatar fnwbr avatar foramontano avatar hirunatan avatar juliandavidmr avatar luebbert42 avatar luzifer avatar m0ppers avatar mejans avatar mishkinberteig avatar mntmn avatar nblock avatar omidmaldar avatar ovari avatar p-bo avatar pjreed avatar purplebabar avatar ratulsharker avatar rds13 avatar superalex avatar thorgrimson avatar togir2 avatar yrammos avatar zzkt avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

spacedeck-open's Issues

preview needs working phantomjs and imagemagick

On commit a92b915 (HEAD -> mnt, origin/mnt)
a simple preview of the spaces failed, observation: permanently running spinner.

Log showed a problem with phantomjs.
Analysis (on Debian Buster) with

DEBUG=node-phantomjs* node spacedeck.js

and the first line of the following section to spacedeck-open-git/node_modules/node-phantom-simple/node-phantom-simple.js

    logger.debug('setting up phantom = spawn('+ options.path + ',' + args + ')');
    var phantom = spawn(options.path, args);
$ spacedeck-open-git/node_modules/phantomjs-prebuilt/lib/phantom/bin/phantomjs spacedeck-open-git/node_modules/node-phantom-simple/bridge.js
error while loading shared libraries: libfontconfig.so.1: cannot open shared object file: No such file or directory

so on Debian Buster at least the package libfontconfig1 is needed as optional requirement.

And the next error is

[space screenshot] resize error:  Error: Could not execute GraphicsMagick/ImageMagick: gm "identify" "-ping" "-format" "%[EXIF:Orientation]" "/tmp/b2bff430-9594-4ac5-bfe1-6e6d41436e6b.png" this most likely means the gm/convert binaries can't be found

hinting towards the need of package imagemagick

URGENT!!!

Why the upload function is not uploading something? It kepps on Converting media? Is there any fix on this?

Playing uploaded audio files requires page reload

Similar to the description in #25, after I upload some media file (e. g. Siesta or Bard solo fun) I get a nice waveform. But if I then click on the play button, the interface changes as if there's something playing, but there's no audible sound. Only after I reload the page I can click the play button and hear the sound. After the page reload, the waveforms appear in a darker blue than before.

Tested with node v10.20.1 and v12.16.3, both on Chromium 80 as well on Firefox 74.

edit I noticed a similar behaviour when choosing a background image: only a page reload shows it.

ImageMagick install instructions for Linux

Issue #12 suggests that GraphicsMagick needs to be installed and links to the Windows install instructions. On an Ubuntu 18.04 machine with ImageMagick installed and both identify and convert in the $PATH, uploading images results in:

gm: Error: Could not execute GraphicsMagick/ImageMagick: gm "identify" "-ping" "-format" "%wx%h" "/tmp/49315841813_d21d303cfa_k.jpg" this most likely means the gm/convert binaries can't be found
    at ChildProcess.<anonymous> (/home/hudson/build/spacedeck-open/node_modules/gm/lib/command.js:232:12)
    at ChildProcess.emit (events.js:189:13)
    at Process.ChildProcess._handle.onexit (internal/child_process.js:246:12)
    at onErrorNT (internal/child_process.js:415:16)
    at process._tickCallback (internal/process/next_tick.js:63:19) undefined
POST /api/spaces/afa2dd39-f0db-4a7e-bf8b-7cc6461890c0/artifacts/9f1c510e-1032-416c-a39f-e61773c401e2/payload?filename=49315841813_d21d303cfa_k.jpg 400 209.143 ms - 2

Running that command in the shell produces the expected result:

"identify" "-ping" "-format" "%wx%h" "/tmp/49315841813_d21d303cfa_k.jpg
2048x1536

Separately, a UI improvement would be to cancel the upload and let the user know it failed in the case that the server couldn't process the image. Currently the client shows an hourglass that never finishes, rather than reporting the 400 error:

image

Way to annotate large images

I set a large image as the canvas background, but found that I could not use it effectively for annotation because of (what I assume) is a dynamic background. This feature makes a lot of sense to support an infinite whiteboard. However, is there some way to include the ability to have either a locked canvas, or a locked non-scaled image for shared annotation?

Glad you guys are keeping this somewhat updated, it has a lot of potential, and I just don't see a lot of similar options out in the wild :-) Thanks again.

Lock Full Space

Is there any option where we can lock the entire space so that nobody can edit it after locking(not even who created it)?if not how can we achieve this(my take on this is we will take another column in database which checks whether locked or not).. is there any other way

Download Space as Zip

Dear developers,
I bring forward and make a separate issue from previous #29. As noted I've tried to pinpoint and fix some issues I reported but not being a developer per se have not been able to progress any further. The main issue I believe, and one that seems to have been an impetus for making Spacedeck "open", is the ability to import saved spaces but also equally important to save spaces for reuse in educational settings.

Is the issue with saving spaces (receiving "ZIP export problem 500)" simply a path, permission, missing module issue or requires code fixes?

Appreciate any pointers or a possible fix for this or any other issues I reported previously.

scribble

when we draw a scribble..it takes couple of second or have to hold the mouse for some time to actualy draw.. how to reduce that time??

Not able to install Spacedeck

I'm not able to install the spacedeck. When I try to run server, I get this error.

[2020-05-17T10:22:17.368Z] Executing (default): DROP TABLE `memberships_backup`;
[2020-05-17T10:22:17.371Z] Executing (default): DROP TABLE `artifacts_backup`;
[2020-05-17T10:22:17.372Z] Executing (default): DROP TABLE `messages_backup`;
[2020-05-17T10:22:17.409Z] Executing (default): CREATE TABLE IF NOT EXISTS `SequelizeMeta` (`name` VARCHAR(255) NOT NULL UNIQUE PRIMARY KEY);
[2020-05-17T10:22:17.412Z] Executing (default): PRAGMA INDEX_LIST(`SequelizeMeta`)
[2020-05-17T10:22:17.413Z] Executing (default): PRAGMA INDEX_INFO(`sqlite_autoindex_SequelizeMeta_1`)
[2020-05-17T10:22:17.434Z] Executing (default): INSERT INTO `SequelizeMeta` (`name`) VALUES ('01-spaces-delete-cascade.js');
[2020-05-17T10:22:17.444Z] Executing (default): CREATE TABLE IF NOT EXISTS `SequelizeMeta` (`name` VARCHAR(255) NOT NULL UNIQUE PRIMARY KEY);
[2020-05-17T10:22:17.445Z] Executing (default): PRAGMA INDEX_LIST(`SequelizeMeta`)
[2020-05-17T10:22:17.446Z] Executing (default): PRAGMA INDEX_INFO(`sqlite_autoindex_SequelizeMeta_1`)
[2020-05-17T10:22:17.447Z] Executing (default): SELECT `name` FROM `SequelizeMeta` AS `SequelizeMeta` ORDER BY `SequelizeMeta`.`name` ASC;
[2020-05-17T10:22:17.452Z] Executing (default): ALTER TABLE `users` ADD `api_token` VARCHAR(255);
[2020-05-17T10:22:17.455Z] Unhandled rejection SequelizeDatabaseError: SQLITE_ERROR: duplicate column name: api_token
    at Query.formatError (/home/harshit/spacedeck-open/node_modules/sequelize/lib/dialects/sqlite/query.js:431:16)
    at afterExecute (/home/harshit/spacedeck-open/node_modules/sequelize/lib/dialects/sqlite/query.js:119:32)
    at wrappedAfterExecute (/home/harshit/spacedeck-open/node_modules/sequelize/lib/dialects/sqlite/query.js:256:39)
    at replacement (/home/harshit/spacedeck-open/node_modules/sqlite3/lib/trace.js:19:31)
    at Statement.errBack (/home/harshit/spacedeck-open/node_modules/sqlite3/lib/sqlite3.js:14:21)

Production deployment

Dear developers,
thank you for sharing the source code. The look and feel is really awesome.

However, your production deployment requires js/... minified in the dist folder minifing the js. What deployment pipeline do you use here?

thank you

Simon

Login Issue

I dont get redirected after logging in. I changed the gulp-sass version in the packages.json file to 3.1.0 because it isnt compatible with windows 10. How can I fix it?

Sharing of folders

When I ran node spacedeck.js and register two users I'm not able to share a folder between these users.
On the command line I see the emails which should be sent. Currently they won't be sent. Where can I configure how to sent the emails?
If I click on the link printed there, nothing happens.

First test with Spacedeck

Hello,
I used to use Spacedeck for educational purposes (musical education). I am not a professional programmer (I know basics and can tweak one thing or two).
For a start, trying to create a local web site on my computer that can integrate animated files, videos, MIDI, etc and I used Spacedeck.
Interactive environment is interesting also, but one problem at a time.

I used electron to launch Spacedeck, it works for audio files, doesn't play immediately (must reload).
However, cannot "upload" pdf (either methods) files or videos (tried mp4 format and failed). I tried with the storage dependencies but don't know how to install them (I use windows 10 and ubuntu studio).

I also tried to load Spacedeck to my web browser (localhost) but failed also (node spacedeck.js, missing packages, asking to install sqlite3 manually).

I can search tutorials for the simple issues, but need advice.

My students and I thank you.
Sincerely.

NO CONFIG

There is no config file in the code

SQLITE_ERROR: duplicate column name: api_token

I get the following error when I launch spacedeck-open:
Unhandled rejection SequelizeDatabaseError: SQLITE_ERROR: duplicate column name: api_token
at Query.formatError (/Users/ram/Git/spacedeck-open/node_modules/sequelize/lib/dialects/sqlite/query.js:431:16)
at afterExecute (/Users/ram/Git/spacedeck-open/node_modules/sequelize/lib/dialects/sqlite/query.js:119:32)
at wrappedAfterExecute (/Users/ram/Git/spacedeck-open/node_modules/sequelize/lib/dialects/sqlite/query.js:256:39)
at replacement (/Users/ram/Git/spacedeck-open/node_modules/sqlite3/lib/trace.js:19:31)
at Statement.errBack (/Users/ram/Git/spacedeck-open/node_modules/sqlite3/lib/sqlite3.js:14:21)

Please help.

Access via public ip not possible

Hi,

i am running spacedeck on a vm an try to access it via its public ip. Unfortunately the initial request returns a 404 and shows a "Page not found" site. I try to set some configuration parameters in config/default and spacedeck.html but nothing worked.

We would like to run it in development mode to profit from nodemon.

Terminate account not working

Not sure if this is normal behavior in this "open" version, some links and buttons are not clickable, not visible or don't trigger the expected result. Most notably:

  1. "Terminate" under "Delete Account" is not clickable
  2. Email confirmation link with token does not validate account and does not route correctly (blank page)
  3. Resend confirmation email creates email containing link with "null" token
  4. "Duplicate" Space does not do anything
  5. Cannot see any link or button to import downloaded zip from spacedeck.com

and most importantly:

  1. Download Space as ZIP button from dialog returns: "ZIP export problem (500)" in the same dialog box.

To the best of my knowledge all required and optional dependencies are successfully installed and major functions are all fully in place.

Would appreciate any advice.

Deleting space/user is not possible

When trying to delete a space or user the spacedeck server prints the following error:

[2018-05-14T11:22:38.131Z] getUserRoleInSpace 69b1b428-3c9d-4f93-8a42-8f6ad43ea9fb fed40758-4a5a-4a7b-a9ee-46774f8e516b ca48697a-1993-4b9e-bda4-df36a030337f
[2018-05-14T11:22:38.135Z] Executing (default): DELETE FROM spaces WHERE rowid IN (SELECT rowid FROM spaces WHERE _id = '69b1b428-3c9d-4f93-8a42-8f6ad43ea9fb' LIMIT 1)
[2018-05-14T11:22:38.144Z] Unhandled rejection SequelizeForeignKeyConstraintError: SQLITE_CONSTRAINT: FOREIGN KEY constraint failed
at Query.formatError (/root/spacedeck-open/node_modules/sequelize/lib/dialects/sqlite/query.js:374:18)
at Statement.afterExecute (/root/spacedeck-open/node_modules/sequelize/lib/dialects/sqlite/query.js:119:32)
at Statement.replacement (/root/spacedeck-open/node_modules/sqlite3/lib/trace.js:19:31)
at Statement.replacement (/root/spacedeck-open/node_modules/sqlite3/lib/trace.js:19:31)

My system:

  • linux server with CentOS 7.4
  • nodejs http server: SSL port 443
  • development version of spacedeck-open
  • no AWS S3
  • GPL Ghostscript 9.07 (2013-02-14)
  • nodejs-version: 9.11.1
  • nodejs: [email protected]

Redirecting on real server

Hi,
I installed spacedeck on a server in the internet, changed "endpoint" to http://:9666.
When I open the site on my browser at home (not on the webserver), I get the initial page with "Registrieren" ... "Anmelden" but whatever I click from the both, it redirects my browser to http://localhost:9666.
Any help ?
BR
Frédéric

Localhost

its only working with localhost..i have replaced localhost with my system ip (in config and spacedeck.html)
its giving me 404 error.. Do i need to do anything else ?

URGENT!!!

Hi I'm going to use this for educational purpose. How can I add video conference with this? I mean in a SPACE there is a video with other users? That's my suggestion on how to improve this. Hope you notice me. Thanks!!

Chrome issues: Wrong event listener binding

Hey guys,

We found a bug that causes that several elementary listeners are bound to touch events on non touch devices. This is because the browser will always offer touch events despite of the device type. The result is that spacedeck does not react on anything. Please check your code in spacedeck_whiteboard.js. The part which is responsible for detecting touch devices and registering the event listeners should be updated. It is better to register events for touch and non touch devices always because of hybrid devices. Your touch detection routine seems to be outdated too.

Thanks for this nice piece of code

SMTP sending failed

Hey,
I am trying to setup the E-mail sending by SMTP. However, I am getting the following error:

POST /api/users/bb345eca-65cb-4bbf-bfe6-b3869716df58/confirm 201 78.658 ms - 7 [2020-04-04T19:10:36.977Z] Error sending email: { Error: Hostname/IP doesn't match certificate's altnames: "Host: . is not in the cert's altnames: DNS:*, DNS:" at Object.checkServerIdentity (tls.js:223:17) at TLSSocket.<anonymous> (_tls_wrap.js:1111:29) at emitNone (events.js:106:13) at TLSSocket.emit (events.js:208:7) at TLSSocket._finishInit (_tls_wrap.js:639:8) at TLSWrap.ssl.onhandshakedone (_tls_wrap.js:469:38) reason: 'Host: is not in the cert\'s altnames: DNS:*, DNS:', host: '', cert: { subject: { OU: [Array], CN: '*' }, issuer: { C: 'GB', ST: 'Greater Manchester', L: 'Salford', O: 'COMODO CA Limited', CN: 'COMODO RSA Domain Validation Secure Server CA' }, subjectaltname: 'DNS:*, DNS:', infoAccess: { 'CA Issuers - URI': [Array], 'OCSP - URI': [Array] }, modulus: 'CBD9B08056EFEFA14C09FE5FFF27281EC5D4301B6BD6E06E98F024C6F16179962365077EC772D1B1C1CE8BF15E9FCCF405029FBFA477F4E818398585318F596EA38926A0709EC8279297C2F79E188A6C7157E984F0C0D1FDEEEE3120DA1F707BFB69AC0A10B3B647EF1666C71A666076685740E1B83D0158D6011EF38A8DFB8AB3750B813BF7930368D26097BE16A71AEDC58E60B227B491885FE64A79297AEB08AA46B4EBB007F508029468B999F450F807D9EFDAC7769F469C593F9730E67FBF4FDFB3293898B93804A77B9163A31620F1667DFB5D8BD6F2E2F47131C606BF6EF12320A2C07411834081F35B8A87F6FFE4C5EB3A87A8CF96477131B8D85DFD', exponent: '0x10001', valid_from: 'Jul 19 00:00:00 2017 GMT', valid_to: 'Jul 18 23:59:59 2020 GMT', fingerprint: 'E0:D6:61:61:D9:F6:F4:C1:49:43:D2:F1:3E:93:FE:5A:D8:01:D6:D7', ext_key_usage: [ '1.3.6.1.5.5.7.3.1', '1.3.6.1.5.5.7.3.2' ], serialNumber: 'D532DC23F08853259FA81D4FA0874678', raw: <Buffer 30 82 05 5b 30 82 04 43 a0 03 02 01 02 02 11 00 d5 32 dc 23 f0 88 53 25 9f a8 1d 4f a0 87 46 78 30 0d 06 09 2a 86 48 86 f7 0d 01 01 0b 05 00 30 81 90 ... > }, code: 'ESOCKET', command: 'CONN' }

What can I do to make it work?

Undefined variable "subdomainTeam"

Hi,

thanks for the quick fix last time :). I had another problem as spacedeck was included as iframe. I did a quick and dirty fix because the undefined variable seems to be never accessed or setted. I hope it helps you to find the reason for this:
bildschirmfoto 2018-05-04 um 08 32 39

Keep current tool while editing space

Similar issue to #22 .
Spacedeck is the best collaborative self-hosted solution I could find in more than a week of daily research.
However, the "Scribble" tool is almost useless since to draw every single line you have to select the tool again from the toolbar, every time.

A solution I suggest is to just leave the tool "active" until told otherwise: when I click on "Scribble", I should be able to draw as many lines as I want. Then, when I'm done drawing lines, I can just click again on the "Scribble" tool to disable it.

This could very well be applied to all tools, however I think "Scribble" is the most used one and would be affected positively the most.

Undo

Undo is not working properly..have to press CTRL+Z many times if have to revert the changes..and how the undo will work on mobile as there is no option in mobile of CTRL+Z

Scroll page on mobile

When a "space" is opened on mobile, the user is unable to scroll through the page by using two fingers. Instead, the two fingers are registered as the same one and the cursor keeps bouncing from finger to finger, messing up everything.

PDF import not working

When importing a PDF file (grid import) the spacedeck server crashes with the following error:

/root/spacedeck-open/routes/api/spaces.js:469
var a = new Artifact({
^

ReferenceError: Artifact is not defined
at gm. (/root/spacedeck-open/routes/api/spaces.js:469:27)
at gm.emit (events.js:180:13)
at gm. (/root/spacedeck-open/node_modules/gm/lib/getters.js:82:14)
at cb (/root/spacedeck-open/node_modules/gm/lib/command.js:322:16)
at ChildProcess.onExit (/root/spacedeck-open/node_modules/gm/lib/command.js:305:9)
at ChildProcess.emit (events.js:180:13)
at maybeClose (internal/child_process.js:936:16)
at Process.ChildProcess._handle.onexit (internal/child_process.js:220:5)

My system:

  • linux server with CentOS 7.4
  • nodejs http server: SSL port 443
  • development version of spacedeck-open
  • no AWS S3
  • GPL Ghostscript 9.07 (2013-02-14)

Delete Scribble

Suppose we draw a line which contains many points..if we want to delete some points in between in mean erasing some line(mainly inbetween the line)..i knw we can use white color but that would not be appropriate solution..how can we achieve this(like erasing line from middle)

Write API Docs

The RESTful API should be documented, preferrably with a generator.

Have you ever tested the `Dockerfile`?

Problem:

Step 19/22 : RUN gulp all
 ---> Running in 7b5af99f7b62
[04:12:29] Local gulp not found in /usr/src/app
[04:12:29] Try running: npm install gulp
The command '/bin/sh -c /usr/local/bin/gulp all' returned a non-zero code: 1
ERROR: Job failed: Process exited with: 1. Reason was:  ()

Solution:

RUN npm install --save-dev gulp

Next problem:

$ gulp all
module.js:472
    throw err;
    ^

Error: Cannot find module 'gulp-sass'
    at Function.Module._resolveFilename (module.js:470:15)
    at Function.Module._load (module.js:418:25)
    at Module.require (module.js:498:17)
    at require (internal/module.js:20:19)
    at Object.<anonymous> (/usr/src/app/Gulpfile.js:2:12)
    at Module._compile (module.js:571:32)
    at Object.Module._extensions..js (module.js:580:10)
    at Module.load (module.js:488:32)
    at tryModuleLoad (module.js:447:12)
    at Function.Module._load (module.js:439:3)

Solution:

npm install gulp-sass

Next Problem:

$ gulp all
module.js:472
    throw err;
    ^

Error: Cannot find module 'gulp-concat'
    at Function.Module._resolveFilename (module.js:470:15)
    at Function.Module._load (module.js:418:25)
    at Module.require (module.js:498:17)
    at require (internal/module.js:20:19)
    at Object.<anonymous> (/usr/src/app/Gulpfile.js:3:14)
    at Module._compile (module.js:571:32)
    at Object.Module._extensions..js (module.js:580:10)
    at Module.load (module.js:488:32)
    at tryModuleLoad (module.js:447:12)
    at Function.Module._load (module.js:439:3)

Solution

npm install gulp-concat

Next problem:

$gulp all
[07:52:22] Using gulpfile /usr/src/app/Gulpfile.js
[07:52:22] Task 'all' is not in your gulpfile
[07:52:22] Please check the documentation for proper gulpfile formatting

Are you kidding me???

Space: Keyboard shortcuts

Each tool should have a keyboard shortcuts to allow for faster editing. Spacedeck used to have this at some point. This also needs an easy reachable help window to see all shortcuts (or title attributes of buttons).

Scribble Mouseup

This tool is amazing, minus one very important thing: Scribble is almost useless if you can't perform multiple scribbles within one scribble object.

Example: If I click my mouse down, draw a linne, and release the mouse, I have to create a whole new scribble object just to create a new line that intersects the first one.

What purpose is scriblle supposed to serve? I'd assume it fills the gap as a whiteboard-esque quick drawing feature, but that's not quite the case here.

pdf from backend

i see the options of uploading image/pdf from backend using phantom secret key.. i am successfull in uploading image from backend too.. but how to upload pdf.. if i upload pdf(by api) it doesnt show there

SMTP configuration for emails

Currently, email sending and thus inviting members doesn't really work (requires Amazon SES). Emails should be sent via simple SMTP accounts configurable in config.json.

Lint Backend Code

The node.js backend code has a mixture of different code styles. Introduce a linter and port everything to ES6.

Support

Below are some features I need to implement.

  1. When I create pdf it only takes shapes and images in pdf, scribbled drawing or arrows are not shown in pdf.
    
  2. Is it possible to show the freehand drawing in real-time to other users? Current behavior – drawings get rendered on another side on the mouse click release. We want this to be in real-time, with the drag of the mouse.
  3. Eraser tool – can we implement an eraser/rubber tool to rub a portion of freehand drawing?
  4. Multiple boards- right now we can add multiple spaces and in a space, there’s only one whiteboard. So can we implement it in such a way that user can add multiple whiteboards as per it’s needed in a single space? Similar to adding new sheet tabs on Google Sheet.
  5. Text highlighter.
  6. Rotation of shapes that are placed on the board.

Thanks in advance

Not able to upload media on Windows Server

Everything else works perfectly fine. Just when I upload an image (or drag n drop in an image), the loading placeholder keeps spinning. There's nothing put into the "storage" folder except the empty my_spacedeck_bucket folder.

The upload works completely fine using the compiled version. Same Windows server.

Any idea?

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.