The Whiteboard Application is a collaborative drawing tool that allows users to create and join real-time whiteboard sessions. With a focus on simplicity and user experience, this application enables users to draw using various colors and brush sizes, undo/redo actions, and save the whiteboard content as images or PDFs. The implementation includes secure user authentication using Keycloak, ensuring that only authorized users can access and contribute to whiteboard sessions.
Create and join whiteboard sessions. Drawing functionality with color and brush size options. Undo/redo actions for seamless user experience. Real-time cursor movements for connected users. Save whiteboard content as images or PDFs. Responsive design for both desktop and mobile devices.
-
React for front-end development.
-
WebSocket, Node Express for back-end development.
-
Keycloak for authentication.
-
Native canvas for drawing capabilities. Keycloak via Docker for secure user authentication.
-
Bootstrap 5.0 for a clean and fluidic layout. For detailed setup instructions, feature documentation, and screenshots, please refer to the respective sections below.
- Run this Docker commaand to set up Keycloak on your local system
docker run -p 8080:8080 -e KEYCLOAK_ADMIN=admin -e KEYCLOAK_ADMIN_PASSWORD=admin quay.io/keycloak/keycloak:24.0.0 start-dev
- Set up the account with the following configuration
Keycloak({
url: "http://localhost:8080",
realm: "whiteboard-realm-react",
clientId: "whiteboard-client-react",
});
-
Change the Keycloak public key to the
.env
file from your dashboard. -
Go to
http:localhost:8080
to check whether it is correctly setup or not. -
Refer to this Keycloak document for setup incase of any error.
- Run this command in your local computer to clone the repo.
git clone https://github.com/olifarhaan/board-verse.git
-
Open the folder with an IDE (VSCode preferred)
-
Open the terminal and run
cd client
and thennpm i
to install the dependency of the front end -
Then, open another terminal and run
cd api
and thennpm i
to install the dependency of the backend end -
Run
npm run dev
on both the terminal -
Go to
http://localhost:5173