Project Place

Welcome to Project Place!

This is something that's been in development for a while, centered around the bare essentials I would always need when working with a team.

Share files, draw up outlines, videochat, text, and more!

Thank you for trying it out!

Chat

Description

The main area of discussion.
Edit or delete messages as you communicate with your team!

Long conversations are supported, as the chat utilizes a custom form of *virtualization and even supports *infinite scroll.

You'll have the ability to send almost any file type, including images, videos, zip files, and much more. However, there is a 25MB limit per file.

*Virtualization: Only the messages actually seen are rendered. This can cause jitter, so a custom implementation displays message ranges.

*Infinite Scroll: Messages load as you scroll up in the chat, so you do not receive the entire chat history at once.

Whiteboard

Description

View your team's changes in real time.
The whiteboard is a completely shared space, and a big focus of this project.

A place to visualize and share your thoughts. Alternatively, it can be a fun place to experiment, with or without others!

There are many classical operations such as draw, erase, bucket fill, and others, all of which have been heavily optimized.
Ex) A full canvas fill has gone from 700ms to ≈25ms.

Some special operations include:
  • Undo / Redo
  • Import images
  • Move selected area
  • Save entire canvas (as PNG)
  • Save selected area (as PNG)

Videochat

Description

What is a collaboration platform without the option to hold actual meetings?

Join the team in a call with the option of showing video and audio! *Mediasoup is used to scale with the number of call participants.

Alternatively, call a specific team member. This flow does not use mediasoup, and instead uses a direct peer to peer connection for better performance!

*Mediasoup: A library that implements an SFU, or Selective Forwarding Unit. All video and audio is sent to this server first and then forwarded to the other call participants.