Pumpkin Brush

What is the Software about?

This is a colloaborative whiteboard application that enables multiple users to collaborate over the network and express their ideas on a canvas just like how a group would do in an in-person meeting often termed as ‘Whiteboarding’. All the core components of the Software were developed from scratch that includes Networking, GUI, Concurrency, and more. Users have multiple options to choose from such as various brush sizes, brush types, multiple colors and also the power to change the background of the canvas. TL;DR It’s like a whiteboard in office but virtual and loaded with features to engage users.

Tech Stack

  1. C++ 17 for Networking and other core functions
  2. SFML for Cross-Platform Development
  3. Nuklear for GUI
  4. Catch2 for Testing
  5. CMake as a Build Tool

Why don’t you use the well known libraries out there such as Boost, Qt ,and wxWidgets?

Software Snapshots

GUI Toolbar

Image

Application Snapshot of two client running on a server

Image

Application Demo

Pumpkin Brush

A complete walkthrough of Software along with Codebase and Architecture

Walk Through

Code Architecture

The following docs below are generated through ‘Doxygen’ and gives you an overview of the code base and architecture of the software. Architecture Docs

How to run the application?

Motivation behind the project

This was Fall of 2020, the peak of Pandemic era. Amidst the chaos, the classes went remote. I was taking “CS 5500 Foundations of Software Engineering” and like every other student on this blue planet, I was having a hard time collaborating with classmates over online platform. The course was designed in such a way so students could collaborate and come up with a mini-prototype of a real world application while collaborating OFFLINE. The remote enviornment was not helping at all. To my surprise, I was not the only one who was struggling with the same problem. So here comes the gang, me along with 3 other students decided to make a collaborative whiteboard application for the milestone project. Google Jam was still in development, Microsoft Teams Whiteboard was buggy at it’s best. The market for such unique applications was narrow. Hence four like minded avengers Me, Andrew, Japher and Hao set on an adventure to develop a mini-protoype of collaborative whiteboard application where people could brainstorm and colloaborate in real-time.