Overview
Contribute Cloud is a zero-install, browser-based classroom collaboration and screen-casting platform built as part of TouchIT Technologies’ interactive LED display ecosystem. It lets a teacher run a live session that any student can join from a browser on any device - casting screens, drawing on a shared whiteboard, sharing files, running polls, and playing educational games together in real time, with no software to install. The system is three React front-ends (a teacher client, a student “join” client, and a standalone OpenVidu video app) on top of a single Node.js/Express + MongoDB API, with real-time collaboration over Socket.io and live video/casting over OpenVidu WebRTC. Built and maintained solo across roughly seven years, it grew from an initial whiteboard/casting tool into a full digital-classroom suite.
Key Achievements
The real-time collaboration layer runs on Socket.io: live whiteboard drawing sync, slide/presentation sync, group and private chat, teacher-to-student tool broadcasting (pushing a calculator, abacus, dice roller, and more to student screens), screen-cast quality and audio controls, and live voting events. OpenVidu (WebRTC) handles live video and screen casting - teacher webcam broadcast, screen sharing, and a “multi-cast” mode that displays multiple student streams simultaneously in a scrollable grid.
The interactive whiteboard is built on Fabric.js with pen, shapes, text, eraser, and select/pan tools, synchronized across participants in real time. A Content Gallery combines live web image search (via the Qwant Images API), user uploads, and imports from Google Drive, Dropbox, OneDrive, webcam, and screen capture, powered by Uppy with tus resumable uploads. A workbook/lesson builder stores multi-format slides (images, PDFs, videos, and Office documents) and exports lessons to PDF via a server-side wkhtmltoimage + ImageMagick pipeline, backed by an AWS Lambda function (TouchIT-prod-d2p) that converts uploaded Office/PDF documents into lesson slides. Live voting and polling pushes real-time bar-chart results (Chart.js) to all participants over sockets, and an OpenAI GPT-3.5-turbo endpoint adds AI-assisted lesson creation, generating titled slide content from a lesson topic.
Beyond the core collaboration features: 15 in-browser teaching tools (calculator, protractor, abacus, periodic table, dictionary, piano, stopwatch, dice roller, spreadsheet, spotlight, typing tutor, function machine, sum creator, tally marks, and a content holder), 42 educational games (38 standalone HTML5 bundles plus 4 React games) across math, language, memory, and counting categories, Passport.js authentication (local plus Google, Facebook, Twitter, and Outlook OAuth) with email verification and password reset, a cloud-drive file manager with hierarchical folders, class/session email invitations and code/QR-based joining, Firebase Admin SDK integration to register devices and push signage/schedule content, internationalization (English, Spanish, and Portuguese), and an installable PWA with a Workbox service worker for resilience on classroom networks.
Technical Implementation
Backend - A Node.js/Express server (run via babel-node, managed by PM2 in production) backed by MongoDB through Mongoose. Socket.io drives bidirectional real-time events for drawing, slides, chat, tools, and voting. The OpenVidu Node client manages WebRTC rooms and access tokens, with the media server hosted separately (cast3.contribute.cloud). Passport.js handles local and social authentication; nodemailer sends verification, password-reset, and class-invitation emails. The Firebase Admin SDK syncs device/signage data, OpenAI generates slide content, and an AWS Lambda function handles document-to-slide conversion. Uploaded files (workbook attachments, gallery images, lecture attachments) are persisted to disk through symlinked storage directories and served statically over HTTPS.
Frontend - Three Create React App front-ends: the teacher client and the student “join” client (built with react-app-rewired, Redux, and Ant Design), plus a standalone OpenVidu “cloud-call” video app. Fabric.js powers the collaborative whiteboard, Chart.js renders live poll results, Uppy handles uploads and cloud imports, and Workbox provides PWA/offline support. react-device-detect adapts the UI for Chromebooks, tablets, and mobile.
Architecture - Rather than microservices, the platform is a multi-app system: one Express/MongoDB API serving multiple React clients, plus dedicated supporting services on their own subdomains - an OpenVidu media server (cast3.contribute.cloud) for WebRTC video and screen casting, and a tus server (tus.contribute.cloud) for resumable file uploads. It is deployed to a self-managed Linux VPS, served over HTTPS, and run under PM2 with per-environment configuration.
Impact & Results
Contribute Cloud has been a long-lived production platform since 2016, bundled with TouchIT interactive LED displays and deployed to schools as part of the company’s classroom ecosystem. It is zero-install and OS-agnostic, running in any modern browser across PC, Mac, Chromebook, and tablet with no client software to deploy, which reduces IT overhead and enables BYOD classrooms. It packs a complete teaching toolkit into one browser tab: screen casting, a collaborative whiteboard, live polling, 15 teaching tools, and 42 games, all real-time. Firebase-driven device signage and scheduling ties the collaboration platform into TouchIT’s wider LED display and digital-signage ecosystem. Across it all, the platform was maintained and evolved solo for roughly seven years, spanning backend and real-time infrastructure, three front-ends, WebRTC integration, AI features, and production deployment.
Share