A collaborative meeting app that allows users to schedule and host meetings remotely, whiteboard over documents in real-time, and take personal notes. Audio streaming and text chats are enabled in the meeting room for communication. Marked up documents and notes are saved to users' dashboards for future reference.
A hosted version of this project is available at theDrawingBoard.site. The steps below outline the steps to create a local development version of the application.
Run npm install
to install dependencies, and then run npm start
to tun the app in the development mode.
Open http://localhost:3000 to view it in the browser.
Run npm install
to install dependencies. If you would like to have PDF support for the server, you must also install ImageMagick, Ghostscript, and poopler. The commands to do so are:
On OSX:
sudo apt-get install imagemagick ghostscript poppler-utils
On Ubunutu
brew install imagemagick ghostscript poppler
Finally the server may be run using the command npm run local
(runs on port 8080 by default).
- Users are able to register and login with an e-mail, username, and password.
- Search global users (by username or e-mail) to add contacts or remove contacts
- Users are able to send messages to each other
- Messages persist between sessions.
- Notifications are displayed to the relevant user whenever the following actions occur:
- New contact is added/requested
- A dm is sent
- A meeting is started (sent to all invitees)
- 5 minutes before a meeting is scheduled to start (sent to the owner)
- A meeting concluded (sent to invitees who were not able to participate in the meeting)
- Notifications persist in the database and are stored in the notifications tab until a user dismisses them
- Notifications are categorized and are optionally disimissable individually, by category, or all.
- The dashboard will show the user with all their scheduled meetings
- A meeting can be created with a title, description, date/time, list of invitees, and a set of images (supports jpg, png).
- When a meeting starts an audio connection is made between the parties using a WebRTC connection.
- The expanded meeting card allows users to accept or decline meeting invitations as well as view the details about the meeting/
- The owner is able to start the meeting early
- Once a meeting has started users are able to collaboratively markup a document
- Users are assigned a color for the tools they draw with. Their colours are displayed on the upper left
- In addition to audio chat, users may also use the in-meeting chat to communicate
- The application supports multiple page documents, and the owner of the meeting is able to cylce between the documents.
- Users can choose between a highlighter, pen, or pointer tool. They may optionally change the size of their tool
- An undo option is available to remove any pen or highlighter strokes users made by accident
- The 'write notes' options allows users to type of their own personal notes
- A user can type personal notes that can be retrieved.
- After a meeting has concluded, it will appear in the history tab with all the details, the personalized notes, in addition to all the markedup documents which can be downloaded for later reference.
- React
- Node
- Express
- Socket.io
- PostgreSQL
- WebRTC
- HTML
- Canvas
@tammiec, @ojripley, @ThilakshanArulnesan