griffinht / scribbleshare Goto Github PK
View Code? Open in Web Editor NEWRealtime collaborative whiteboard
Home Page: https://scribbleshare.com
Realtime collaborative whiteboard
Home Page: https://scribbleshare.com
This project needs to have some sort of written license.
Currently the fat jar produced by the project is 10mb ish in size - this can be reduced if only necessary Netty components are included.
Currently Docker will sometimes decide Maven dependencies are out of date, where it will then proceed to download the entire internet to update the dependencies. Perhaps set up a local Maven repository server that will do all the caching?
The javax.activation dependency is only used for the mime file types. Additionally, it has been removed in Java 9. Thus, a replacement should be provided.
because why not?
how hard could it be?
maybe even offline support?
Set bad cookies to fuzz this in the future
There should be better ways to log things such as console output as well as network throughput, with the option to save to file?
Turn them in to a ByteBuffer class
SidebarItem.js should use ids instead of names.
Users should have names
Session management is currently poor - sessions are not revoked properly, nothing is tracked etc
Both "
and '
are found in JS files
Currently there is no way to zoom in and out, or pan across the board.
documents should be renamable
The current format is --key value
Change this to --key=value
Why not implement this to replace Jedis? Might be a little tricky.
The frontend and backend should be able to utilize variable length integers (for array sizes) and strings. Currently there is limited and hacky support for these.
The server should be modified to support https://
and wss://
protocols
Can be reproduced by modifying board-web-client to send DRAW packets before OPEN is sent.
Should be replaced with a warning in the console.
In the future clients that misbehave like this should possibly be disconnected.
WARNING: An exceptionCaught() event was fired, and it reached at the tail of the pipeline. It usually means the last handler in the pipeline did not handle the exception.
java.lang.NullPointerException
at net.stzups.board.room.PacketHandler.channelRead0(PacketHandler.java:30)
Currently, the coordinate system is based on a user's screen resolution. This needs to be standardized and scaled across different resolutions.
Shrinking the window after the page has loaded will introduce scroll bars because the canvas does not shrink enough. However, the canvas is still able to resize properly when the page loads.
The current system displays curves as many smaller straight paths between two points. Using some sort of actual curve would help with looks and compression.
Why not use Google's Protocol Buffer library? https://github.com/protobufjs/protobuf.js
Clients that are disconnected from the server should keep retrying the WebSocket connection
The HTTP server should be upgraded to use HTTP/2 (see stackoverflow.com/questions/53488601/)
please fix
Currently the server will attempt to handle any message from the client assuming the client has already sent a proper handshake and has opened a document. If the client sends these packets out of order, the server will throw some NPE.
Maybe some kind of state machine?
convert the whole project into typescript
Currently using multiple tabs can cause problems with user identity - either allow for multiple of the same user or log out old users?
Messy program arguments may not be the best way to handle configuring, perhaps switch to a config file or use better documentation?
This class is unused and unnecessary. Without this class, a proper shutdown mechanism may be added for netty
board-web-client has little documentation explaining various CSS and JavaScript quirks and functionalities.
Descriptive and helpful comments should be added to explain structure and hard to understand code.
The mouse of other users should be visible, along with their name.
origin and referer needs to be checked for certain requests
Sometimes when drawing out of bounds text will be selected. Fix by disabled text selection while drawing.
When drawing a long enough stroke, the offset will be messed up if it is long enough. This is due to certain rounding errors.
Possibly can be fixed by sending a full update every so often.
Room ids should be 123456 (6 long), but if the number is less than 100000 the id will be less than 6 characters (eg 245). Note that this bug does not seem to cause functionality problems, but should still be fixed.
Running stop in the terminal with the server running won't close the server - probably because of netty not being shut down properly.
Some sort of mechanism needs to be implemented to store lines that appear off the page, then draw them when the page comes into view
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.