1.0.0 • Published 12 months ago

collab.js v1.0.0

Weekly downloads
-
License
MIT
Repository
-
Last release
12 months ago

collab.js

collab.js is a comprehensive real-time collaboration tool designed for modern applications. It provides essential features for real-time communication, version control, user role management, and notifications, allowing multiple users to collaborate on documents simultaneously.

Features

  • WebSocket Communication: Enables real-time updates and interaction between users.
  • Version Control: Track and manage changes made to documents.
  • User Role Management: Define and control user roles and permissions.
  • Notifications: Receive real-time alerts about document changes.

Installation

To get started with collab.js, you need to install it via npm:

npm install collab.js

Usage

Initialize Server

You can use collab.js by importing it into your Node.js application and setting up the server:

const { app, server, websocketService } = require('collab.js');

// Configure your server and WebSocket
const PORT = process.env.PORT || 3000;
server.listen(PORT, () => {
    console.log(`Server is running on port ${PORT}`);
});

API Endpoints

Authentication

  • Register: POST /api/auth/register

    • Registers a new user.
  • Login: POST /api/auth/login

    • Logs in a user and returns a JWT token.

Collaboration

  • Save Change: POST /api/collaboration/changes

    • Saves a change to a document. Requires a valid JWT token.
  • Get Document: GET /api/collaboration/documents/:id

    • Retrieves a document by its ID. Requires a valid JWT token.

WebSocket

To enable real-time updates, establish a WebSocket connection:

const WebSocket = require('ws');
const ws = new WebSocket('ws://localhost:3000');

// Handle incoming messages
ws.onmessage = (event) => {
    const data = JSON.parse(event.data);
    console.log('Received:', data);
};

// Send a change message
ws.send(JSON.stringify({
    type: 'change',
    data: { documentId: 'doc123', change: 'Updated content' }
}));

Environment Configuration

You can customize the following environment variables by creating a .env file in the root of your project:

PORT=3000
MONGODB_URI=mongodb://localhost/collabjs
ACCESS_TOKEN_SECRET=your_jwt_secret
  • PORT: The port on which the server will run (default: 3000).
  • MONGODB_URI: MongoDB connection URI (default: mongodb://localhost/collabjs).
  • ACCESS_TOKEN_SECRET: JWT secret for authentication (default: your_jwt_secret).

Modify these values according to your needs.

License

This project is licensed under the MIT License.