Skip to content

Folders and files

NameName
Last commit message
Last commit date

Latest commit

ย 

History

4 Commits
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 

Repository files navigation

๐Ÿ“ Real-Time Collaborative To-Do Board

A cloud-deployed collaborative task management application that enables multiple users to create, update, and synchronize tasks in real time using Node.js, Express.js, Socket.IO, and Render.


๐Ÿ“– Overview

Modern teams often collaborate remotely and require task management systems where updates made by one user are immediately visible to everyone else.

Traditional web applications rely on repeated page refreshes or periodic polling to fetch updates, leading to unnecessary network requests and delayed synchronization.

This project demonstrates how real-time communication using WebSockets can eliminate these limitations by instantly broadcasting task updates to every connected client.

The application is deployed on the cloud using Render, allowing users to access the system through a web browser without local installation.


๐ŸŽฏ Objectives

  • Build a collaborative task management application.
  • Synchronize tasks across multiple users in real time.
  • Understand WebSocket-based communication.
  • Deploy a Node.js application on the cloud.
  • Demonstrate client-server architecture using Express.js and Socket.IO.

โœจ Features

  • โœ… Create new tasks
  • โœ… Delete completed tasks
  • โœ… Real-time synchronization across connected users
  • โœ… Instant updates without page refresh
  • โœ… Lightweight and responsive interface
  • โœ… Cloud deployment using Render
  • โœ… Browser-based access
  • โœ… Multi-user collaboration

๐Ÿ—๏ธ System Architecture

                  Client A
                     โ”‚
                     โ”‚
                     โ–ผ
              Socket.IO Client
                     โ”‚
                     โ”‚
        โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”
        โ”‚                         โ”‚
        โ–ผ                         โ–ผ
          Express.js + Node.js Server
                    โ”‚
                    โ”‚
         Socket.IO Event Broadcasting
                    โ”‚
        โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”
        โ–ผ                       โ–ผ
 Socket.IO Client          Socket.IO Client
      Client B                 Client C

๐Ÿ”„ Workflow

  1. A user opens the collaborative board.
  2. The browser establishes a Socket.IO connection with the server.
  3. When a task is created or updated, an event is sent to the server.
  4. The server broadcasts the update to every connected client.
  5. Every user immediately sees the updated task list without refreshing the page.

๐Ÿš€ Why Socket.IO?

Traditional HTTP follows a request-response model.

Client

โ†“

Request

โ†“

Server

โ†“

Response

If another user updates the task list, your browser does not know about it unless it requests the latest data again.

Socket.IO establishes a persistent WebSocket connection, allowing the server to push updates instantly.

Benefits include:

  • Low latency
  • Real-time communication
  • Reduced network overhead
  • Better collaboration experience

๐ŸŒ Why Express.js?

Express.js was used because it provides a lightweight and efficient framework for building Node.js web applications.

It simplifies:

  • Route handling
  • Static file serving
  • Middleware integration
  • HTTP request processing

โ˜๏ธ Cloud Deployment

The application is deployed using Render.

Deployment workflow:

GitHub Repository

        โ”‚

        โ–ผ

Render

        โ”‚

Automatic Build

        โ”‚

        โ–ผ

Live Application

Advantages of using Render:

  • Free cloud hosting
  • Automatic deployments
  • GitHub integration
  • HTTPS support
  • Easy Node.js deployment

๐Ÿ–ฅ๏ธ Technology Stack

Frontend

  • HTML5
  • CSS3
  • JavaScript

Backend

  • Node.js
  • Express.js

Real-Time Communication

  • Socket.IO

Deployment

  • Render

Version Control

  • Git
  • GitHub

๐Ÿ“‚ Project Structure

RT-Collaborative-ToDo-App/

โ”œโ”€โ”€ public/
โ”‚   โ”œโ”€โ”€ css/
โ”‚   โ”œโ”€โ”€ js/
โ”‚   โ””โ”€โ”€ index.html
โ”‚
โ”œโ”€โ”€ server.js
โ”œโ”€โ”€ package.json
โ”œโ”€โ”€ package-lock.json
โ””โ”€โ”€ README.md

โš™๏ธ Installation

Clone the repository

git clone https://github.com/SemesterProjects/RT-Collaborative-ToDo-App.git

Navigate to the project

cd RT-Collaborative-ToDo-App

Install dependencies

npm install

Start the server

npm start

The application will be available at:

http://localhost:3000

๐Ÿ“ก Real-Time Communication Flow

User Adds Task

        โ”‚

        โ–ผ

Browser emits Socket.IO event

        โ”‚

        โ–ผ

Node.js Server receives event

        โ”‚

        โ–ผ

Server broadcasts update

        โ”‚

        โ–ผ

Every connected client updates instantly

๐Ÿ”ฎ Future Improvements

Potential enhancements include:

  • User authentication
  • Task priorities
  • Due dates
  • Persistent database storage
  • Team workspaces
  • Drag-and-drop task organization
  • Notifications
  • Activity logs
  • Mobile responsiveness
  • Docker deployment

๐Ÿ“š Learning Outcomes

Through this project, I gained practical experience with:

  • Client-Server Architecture
  • Real-Time Web Applications
  • WebSockets
  • Socket.IO
  • Express.js
  • Node.js
  • Cloud Deployment
  • GitHub Integration
  • Event-Driven Programming

๐Ÿ‘จโ€๐Ÿ’ป Author

Visha Yadav

Computer Engineering Student

Interested in Software Engineering, Cloud Computing, and Full-Stack Development.


๐Ÿ“„ License

Copyright (c) 2026 Visha Yadav

All rights reserved.

This source code is provided for viewing purposes only.

No permission is granted to copy, modify, distribute, sublicense, use in academic submissions, or present this work as your own without prior written permission from the copyright holder.

Unauthorized academic submission or plagiarism of this work may constitute copyright infringement and academic misconduct.

About

Cloud-deployed real-time collaborative TODO board using Node.js, Express, Socket.IO, and Render for multi-user task management.

Topics

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages