This is a scalable, real-time workspace collaboration and event tracking system built with MariaDB, MongoDB, Redis, Kafka, WebSockets, Firebase, and Dockerized microservices.
-
β Real-time chat via WebSockets
-
β Workspace management with granular roles
-
β Task tracking integrated with MongoDB
-
β Geolocation tracking for event organizers
-
β Job fetching via Google Auth & Gmail API
-
β Event streaming with Kafka
-
β High Availability & Scalability using Docker
π Check out the deployed application here: Com Connect
π₯ Experience real-time collaboration, seamless chat, and powerful workspace management right in your browser!
ββββββββββββββββββββββββββββ
β Frontend (React) β
ββββββββββββ¬βββββββββββββββ
β
βββββββββββββββββββββββββββββββββββββββββ
β Backend (Node.js) β
ββββββββββββ¬ββββββββββββββββ¬βββββββββββ
β β
βββββββββββββββββββ΄ββββ ββββββββ΄ββββββββββββββ
β MariaDB (SQL) β β MongoDB (NoSQL) β
βββββββββββββββββββββββ ββββββββββββββββββββββ
β
βββββββββββββββββββ΄βββββββββββββββββββ
β Redis (Elasticache) β
ββββββββββββββββββββββββββββββββββββββ
β
βββββββββββββββββββ΄βββββββββββββββββββ
β Kafka + Zookeeper (EC2) β
ββββββββββββββββββββββββββββββββββββββ
β
βββββββββββββββββββ΄βββββββββββββββββββ
β WebSockets β
ββββββββββββββββββββββββββββββββββββββ
The system uses MariaDB for relational data and MongoDB for real-time operations.
MariaDB ensures ACID compliance, while MongoDB supports flexible, fast data access.
CREATE TABLE users (
id BIGINT PRIMARY KEY AUTO_INCREMENT,
uuid VARCHAR(36) NOT NULL UNIQUE,
name VARCHAR(100) NOT NULL,
email VARCHAR(255) UNIQUE NOT NULL,
password_hash VARCHAR(255) NOT NULL,
profile_pic VARCHAR(255) DEFAULT 'https://icon-library.com/images/anonymous-avatar-icon/anonymous-avatar-icon-25.jpg',
is_admin BOOLEAN DEFAULT FALSE,
fcm_token VARCHAR(255),
created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
updated_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
INDEX idx_email (email),
INDEX idx_uuid (uuid)
);CREATE TABLE workspaces (
id BIGINT PRIMARY KEY AUTO_INCREMENT,
uuid VARCHAR(36) NOT NULL UNIQUE,
name VARCHAR(255) NOT NULL,
description TEXT,
created_by BIGINT NOT NULL,
created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
updated_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
FOREIGN KEY (created_by) REFERENCES users(id) ON DELETE CASCADE,
INDEX idx_uuid (uuid)
);ββββββββββββββββ ββββββββββββββββ
β users β 1 *β workspaces β
ββββββββββββββββ ββββββββββββββββ
β β
β * * β
β β
ββββββββββββββββ ββββββββββββββββ
βworkspace_rolesβ 1 *βworkspace_membersβ
ββββββββββββββββ ββββββββββββββββ
Each microservice is designed for modularity and separation of concerns.
| Service | Technology Stack | Functionality |
|---|---|---|
| Auth Service | Node.js, JWT, MariaDB | Handles authentication & authorization |
| Chat Service | Node.js, WebSockets, MongoDB | Real-time messaging |
| Geo Service | Node.js, WebSockets, | Tracks organizers in real-time |
| Job Service | Node.js, Gmail API, MongoDB | Fetches job listings |
| Notification Service | Firebase, Kafka ,Redis | Push notifications & real-time updates |
| Component | Technology Used |
|---|---|
| Frontend | React, Tailwind |
| Backend | Node.js, Express.js |
| Database (SQL) | MariaDB (ACID) |
| Database (NoSQL) | MongoDB (Flexible) |
| Cache | Redis (Elasticache) |
| Message Queue | Kafka (on EC2) |
| Real-Time | WebSockets |
| Notifications | Firebase |
| Containerization | Docker |
| Deployment | AWS EC2, Elasticache |
version: "3.9"
services:
mariadb:
image: mariadb:latest
restart: always
environment:
MYSQL_ROOT_PASSWORD: root
MYSQL_DATABASE: workspace_db
ports:
- "3306:3306"
mongodb:
image: mongo:latest
restart: always
ports:
- "27017:27017"
redis:
image: redis:latest
restart: always
ports:
- "6379:6379"
backend:
build: .
restart: always
depends_on:
- mariadb
- mongodb
- redissocket.on('location-update', (data) => {
console.log(`User ${data.userId} moved to ${data.latitude}, ${data.longitude}`);
redisClient.set(`location:${data.userId}`, JSON.stringify(data));
});# Clone the repository
git clone https://github.com/your-repo/workspace-system.git
# Navigate to the project
cd comconnect
# Start services using Docker
1>npm install in frontend , backend directories
using docker : docker-compose up --build
or
cd frontend --> npm run start
cd backend --> npm run start
This project is licensed under MIT License.