Rotating Canvas — Technical Design Document

1) Project Overview

Rotating Canvas is a real-time, multiplayer drawing platform that showcases proficiency in full-stack development and real-time communication.

Key features include:

In addition to drawing, the platform integrates real-time chat and group audio calls, enabling rich communication among users. Guests can join instantly without registration, while authenticated users can create accounts to save and share their final drawing

2) System Architecture

graph LR
    %% Frontend
    subgraph Frontend
        client([Client - Flutter])
    end

    %% Backend
    subgraph Backend
        server[Server - Node.js]
    end

    %% Data Stores
    subgraph Data_Stores
        db[(Database - MongoDB)]
        cloud[/Cloud Storage - Cloudinary/]
    end

    %% Connections
    client -- HTTP API (Auth, Rooms, Save) --> server
    client -- WebSocket (Drawing & Chat) --> server
    server -- DB Connection --> db
    server -- Upload Final Drawing --> cloud
    client -- WebRTC (P2P Voice) --- client

The platform is built on a standard client-server architecture. A Flutter client communicates with a Node.js backend. The system leverages three distinct communication channels to achieve a seamless real-time experience.

All user and game data is persisted in a database, while final drawings are uploaded to a separate cloud storage service for efficiency.

3) Technology Stack