buchholztim / whitebird Goto Github PK
View Code? Open in Web Editor NEWOpen-Source, collaborative, digital Whiteboard
License: GNU General Public License v3.0
Open-Source, collaborative, digital Whiteboard
License: GNU General Public License v3.0
Currently the UI provides Feature which are not available. These have to be removed, to not confuse the user.
General UI Features:
Whiteboard-Tools:
A Documentation in the Wiki should be provided to illustrate to Key-Features and at least a How-To and Get-Started
If you change the StickyNote, it is not updated correctly for the second person.
first Person: Create a StickyNote change the Text
second Person: sees no change but the console object has been changed
It should be possible to just dragn'n'drop images into the canvas.
Code demo looks like this: https://codepen.io/dizzyluo/pen/LZbzYv
marked lines position themselves incorrectly
make two or more drawing lines and mark them
Project should be completely executable in docker.
We need a updated gif in our wiki/startpage
Data from MongoDB is not mounted outside docker and thereby not persisted through restarts.
When creating editing a note the application crashes.
Create a note and edit the text.
client.js?06a0:97 TypeError: Cannot read property 'whitebirdData' of undefined
at Vue.eval (FabricJS.vue?bd43:110)
at invokeWithErrorHandling (vue.runtime.esm.js?2b0e:1854)
at Vue.$emit (vue.runtime.esm.js?2b0e:3888)
at VueComponent.leaveEditingMode (StickyNoteTool.vue?0cee:67)
at klass.eval (StickyNoteTool.vue?0cee:38)
at klass.fire (fabric.js?7a94:313)
at klass._handleEvent (fabric.js?7a94:12655)
at klass.__onMouseDown (fabric.js?7a94:12858)
at klass._onMouseDown (fabric.js?7a94:12432)
Create a note and edit the text without a crash. Also the initial Note should be empty.
Whiteboard should be sharable through a Link.
This can be achieved by using a Page/Folder named like _NAME
, which represents a custom Parameter.
Routes get dynamically created like this <NuxtLink :to="
PAGE/${dynamicID}">Link to PAGE</NuxtLink>
Canvas should be reloadable.
Hovering over the Tools in the Toolbar should yield some additional Information what the Tool does.
In our production build swagger should be turned off.
Swagger should not be in the production build. See nestjs/swagger#184.
The Menues on the Whiteboard for the tools should automatically collapse if another tool gets selected.
Drawing throws an error message.
Draw on on a whiteboard. And the drawn lines disappear.
DrawingTool.vue?3cc9:29 Uncaught TypeError: Cannot read property 'type' of undefined
at klass.eval (DrawingTool.vue?3cc9:29)
at klass.fire (fabric.js?7a94:313)
at klass._handleEvent (fabric.js?7a94:12655)
at klass.__onMouseUp (fabric.js?7a94:12590)
at klass._onMouseUp (fabric.js?7a94:12473)
Drawing should work without error and without disappering.
The App should be available in multiple languages.
This can be achieved with i18n
, which is not complex, but costly in a timely sense.
All strings have to be exported in seperate files, loaded dynamically and an option to change the language has to be provided.
When you copy and paste text into sticky notes. The copy and pasted text has its old format.
MTI-Projekt
sounds not good and does not reflect what we are doing.
Please comment appropriate ideas.
If the Font of a StickyNote gets changed, the change is only reflected at other clients after moving the StickyNote.
When the first milestone is reached we should contribute our project on some developer communities.
ideas:
If the Font size is kinda big after resizing the Note, it gets small again when entering the Edit-Mode
We suggest to the user to view his changes with history control but we don´t have such a thing
Go to the landing page and browse to the feature section
A feature that we really have, so change it in the locale files and in the landing page
Vuex-Store is not persisted through reloads.
create and delete a StickyNote
the StickToolBox will not be deleted
in FabricJS.vue
use the method "object:remove" to see which object are deleted
resize Rect does`t work
press spacebar
Canvas should be Exportable as Image
ATM building a production build will throw errors. That need to be fixed, so that docker can use the optimized production build of the backend instead of the dev build.
nest build
node dist/main
Also have a look in the package.json
"prebuild": "rimraf dist",
"build": "nest build",
"format": "prettier --write \"src/**/*.ts\" \"test/**/*.ts\"",
"start": "nest start",
"start:dev": "nest build --webpack --webpackPath webpack-hmr.config.js",
"start:debug": "nest start --debug --watch",
"start:prod": "node dist/main",
"lint": "eslint \"{src,apps,libs,test}/**/*.ts\" --fix",
"test": "jest",
"test:watch": "jest --watch",
"test:cov": "jest --coverage",
"test:debug": "node --inspect-brk -r tsconfig-paths/register -r ts-node/register node_modules/.bin/jest --runInBand",
"test:e2e": "jest --config ./test/jest-e2e.json"
Production build should work without errors. Related to #29
The Current Feature-Set is nice, but incomplete.
Users seem to expect / want more Tools to use on the Board.
For Example:
Logger in Backend loggs two times
Start Backend and look at the logs
Logger loggs just one time
If a client is editing a StickyNote and another Client moves that StickyNote it will crash for the Client in Editing-Mode.
TypeError: obj.item(...) is undefined
updateObjectFromServer FabricJS.vue:362
updateObjectFromServer FabricJS.vue:361
updateObjectFromServer FabricJS.vue:356
mounted FabricJS.vue:245
VueJS 2
default socketStoreInjecter.js:8
_callee5$ canvas.js:85
tryCatch runtime.js:63
invoke runtime.js:293
defineIteratorMethods runtime.js:118
Babel 4
updateCanvasObjectServer canvas.js:76
wrappedActionHandler vuex.esm.js:851
dispatch vuex.esm.js:516
boundDispatch vuex.esm.js:406
_callee9$ NuxtJS
tryCatch runtime.js:63
invoke runtime.js:293
defineIteratorMethods runtime.js:118
Babel 2
client.js:97
enliven
in FabricJS). This means all custom Listeners have to be applied after restoring an Object from a JSON (see Stickynote for best example)demoPage.vue
for current example)demoPage.vue
for current example)When on the main page when clicking on join and entering the join code nothing happens.
Go to the main page click on Join and enter the corresponding Join-Code.
You will get redirected to http://ipadress:port/Whiteboard and join the room via sockets.
The Background Image on the Whiteboard should be replacable by preconfigured templates.
(e.g. Eisenhower-Matrix)
When the user drag and drop an unsupported file type into the canvas the standard alert - without any stlying - pops up.
Drag & Drop something different than svg, jpeg/jpg or png on the canvas
Better looking alert
We need a explicit route for getting all objects on whiteboard. This route will be used if a user refreshes his site (related to #21).
Route delievers all objects on a whiteboard.
When creating StickyNote, replace Hello World with something suitable
Nuxt Cleanup
A click on the White-Logo should, just like the 'Home'-Button, redirect to the Homepage
If too many Objects get deleted at once some objects don't get deleted, as they for some reason, have their WhiteBirdData undefined. Due to this issue the Backend-Server cannot remove it from the database.
channel
in nuxt-socket-io)mtiID
-Validation should now validate custom JSON-Property mtiData
Update .gitignore for new .env locations
When rotating a note. The synced object on the other clients doesn't work as intended.
The note should be editable and should behave exactly like on the source client.
Share-Link is hardcoded to localhost:3000
.
Joining Share-Link in Docker results in 404
Text-Tool and StickyNote-Tool should provide an Option to change its desing.
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.