Skip to content

Varun-Kumar-Code/ProComm

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

14 Commits
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

ProComm - Video Conference Application

A modern, feature-rich video conferencing application built with React, Node.js, Socket.IO, and WebRTC.

🌟 Features

  • HD Video & Audio Calls with WebRTC technology
  • Real-time Chat with message history
  • Screen Sharing for presentations
  • Reactions & Emojis for interactive meetings
  • Participant Management with user controls
  • Built-in Code Space for real-time coding and technical interviews
  • Advanced Assessment Mode with secure assignments, live proctoring, question randomization, negative marking, and customizable evaluation settings
  • More Tools including Notepad and Whiteboard
  • Mobile Responsive design for all devices
  • Professional UI with modern design

πŸš€ Live Demo

Visit: https://procomm-india.vercel.app

Screenshot

πŸ› οΈ Tech Stack

  • Frontend: React 18, TailwindCSS, Lucide React Icons
  • Backend: Node.js, Express, Socket.IO
  • WebRTC: PeerJS for peer-to-peer connections
  • Styling: TailwindCSS with responsive design
  • Deployment: Vercel for production hosting

πŸš€ Features

  • Modern React Frontend with responsive design
  • Dark/Light Theme Toggle with localStorage persistence
  • Interactive Chatbot Widget with voice input and text messaging
  • Real-time Video Conferencing using WebRTC and Socket.IO
  • Meeting Management - Create, join, and manage video meetings
  • Participant Management - Email-based meeting invitations and validation
  • Screen Sharing capabilities
  • Chat Messaging during meetings
  • Professional UI/UX with smooth animations and transitions

πŸ› οΈ Tech Stack

Frontend

  • React 18 with functional components and hooks
  • React Router for navigation
  • Tailwind CSS for styling
  • Framer Motion for animations
  • Lucide React for icons
  • Socket.IO Client for real-time communication
  • PeerJS for WebRTC connections

Backend

  • Node.js with Express server
  • Socket.IO for real-time messaging
  • UUID for meeting ID generation
  • CORS for cross-origin requests
  • Helmet for security
  • Compression for performance

πŸ“ Project Structure

procomm-app/
β”œβ”€β”€ client/                 # React frontend
β”‚   β”œβ”€β”€ public/
β”‚   β”œβ”€β”€ src/
β”‚   β”‚   β”œβ”€β”€ components/     # Reusable components
β”‚   β”‚   β”‚   β”œβ”€β”€ Navbar.js
β”‚   β”‚   β”‚   β”œβ”€β”€ Chatbot.js
β”‚   β”‚   β”‚   β”œβ”€β”€ JoinMeetingModal.js
β”‚   β”‚   β”‚   └── CreateMeetingModal.js
β”‚   β”‚   β”œβ”€β”€ pages/          # Page components
β”‚   β”‚   β”‚   β”œβ”€β”€ Login.js
β”‚   β”‚   β”‚   β”œβ”€β”€ Home.js
β”‚   β”‚   β”‚   β”œβ”€β”€ Profile.js
β”‚   β”‚   β”‚   β”œβ”€β”€ Support.js
β”‚   β”‚   β”‚   └── VideoRoom.js
β”‚   β”‚   β”œβ”€β”€ context/        # React contexts
β”‚   β”‚   β”‚   └── ThemeContext.js
β”‚   β”‚   β”œβ”€β”€ App.js
β”‚   β”‚   β”œβ”€β”€ index.js
β”‚   β”‚   └── index.css
β”‚   └── package.json
β”œβ”€β”€ server/                 # Node.js backend
β”‚   β”œβ”€β”€ routes/
β”‚   β”‚   β”œβ”€β”€ auth.js         # Authentication routes
β”‚   β”‚   └── meetings.js     # Meeting management routes
β”‚   β”œβ”€β”€ server.js           # Main server file
β”‚   └── package.json
└── package.json            # Root package.json with scripts

🎯 Key Features Implemented

1. Theme System

  • Toggle between Light and Dark modes
  • Persistent theme settings using localStorage
  • Smooth transitions between themes

2. Chatbot Widget

  • Minimizable/maximizable widget
  • Voice input using Web Speech API
  • Text messaging capabilities
  • Positioned at bottom-right corner

3. Meeting Management

  • Create meetings with participant invitations
  • Join meetings with email validation
  • Real-time participant management
  • Meeting access control

4. Video Conferencing

  • WebRTC peer-to-peer connections
  • Camera and microphone controls
  • Screen sharing functionality
  • Real-time chat during meetings

5. Modern UI/UX

  • Responsive design for all screen sizes
  • Professional color palette maintained
  • Smooth animations and transitions
  • Clean, modern interface

6. Code Space

  • Built-in collaborative code editor inside the meeting room
  • Supports writing and editing code during live meetings
  • Ideal for coding interviews, technical discussions, and pair programming
  • Provides a distraction-free coding environment

7. Assessment Mode

Create and manage assessments with multiple question types:

  • Multiple Choice (Checkbox)
  • True or False
  • Paragraph/Descriptive

Advanced assessment features:

  • Negative marking support
  • Configurable retake attempts
  • Live AI/WebRTC-based proctoring during assessments
  • Question and answer shuffling for each candidate
  • Assign assessments only to selected candidates
  • After publishing, assigned assessments automatically appear in the candidate's "Assigned to Me" section
  • Candidates can start and complete assessments directly from their dashboard

πŸš€ Getting Started

Prerequisites

  • Node.js (v16 or higher)
  • npm or yarn
  • Firebase account (for authentication and database)
  • Cloudinary account (for image uploads)

Installation

  1. Clone the repository
git clone <repository-url>
cd procomm-app
  1. Install all dependencies
npm run install-all
  1. ⚠️ IMPORTANT: Set up environment variables

Create a .env file in the client directory:

# Firebase Configuration
REACT_APP_FIREBASE_API_KEY=your_firebase_api_key
REACT_APP_FIREBASE_AUTH_DOMAIN=your_project.firebaseapp.com
REACT_APP_FIREBASE_PROJECT_ID=your_project_id
REACT_APP_FIREBASE_STORAGE_BUCKET=your_project.appspot.com
REACT_APP_FIREBASE_MESSAGING_SENDER_ID=your_sender_id
REACT_APP_FIREBASE_APP_ID=your_app_id
REACT_APP_FIREBASE_MEASUREMENT_ID=your_measurement_id

# Cloudinary Configuration
REACT_APP_CLOUDINARY_CLOUD_NAME=your_cloudinary_cloud_name
REACT_APP_CLOUDINARY_UPLOAD_PRESET=your_upload_preset

How to get these credentials:

  • Firebase: Go to Firebase Console β†’ Your Project β†’ Project Settings β†’ General β†’ Your apps
  • Cloudinary: Sign up at Cloudinary β†’ Settings β†’ Upload β†’ Create unsigned upload preset

⚠️ NEVER commit the .env file to Git! It's already in .gitignore.

  1. Start the development environment
npm run dev

This will start:

  • React frontend on http://localhost:3000
  • Node.js backend on http://localhost:3001
  • PeerJS server on http://localhost:3002

Individual Commands

  • Frontend only: npm run client
  • Backend only: npm run server
  • PeerJS server only: npm run peer

πŸ”§ Configuration

Environment Variables (Server)

Create a .env file in the server directory:

NODE_ENV=development
PORT=3001
CLIENT_URL=http://localhost:3000
PEER_HOST=localhost
PEER_PORT=3002

πŸ“± Usage

Creating a Meeting

  1. Go to the Dashboard
  2. Click "New Meeting"
  3. Add meeting title and description
  4. Invite participants by email
  5. Start the meeting or share the meeting link

Joining a Meeting

  1. Click "Join Meeting" on the Dashboard
  2. Enter the meeting ID or link
  3. Provide your name and email
  4. Join the meeting (email must be on the invited list)

Using the Chatbot

  1. Click the chat icon in the bottom-right corner
  2. Type messages or use the microphone for voice input
  3. Get help with ProComm features and troubleshooting

Theme Toggle

  1. Go to Profile β†’ Settings
  2. Use the Theme toggle to switch between Light/Dark mode
  3. Setting is automatically saved to localStorage

🎨 Design System

Color Palette

  • Primary Blue: #2563eb (maintained from original)
  • Success Green: #28a745
  • Gray Scale: Various shades for backgrounds and text
  • Dark Mode: Adjusted colors for dark theme

Typography

  • Font: 'Segoe UI', Arial, sans-serif
  • Responsive text sizes
  • Consistent font weights

πŸš€ Deployment

Production Build

npm run build
npm start

Environment Setup

  • Set NODE_ENV=production
  • Configure proper CORS origins
  • Set up SSL certificates for production

βœ… Security Audit Completed (January 2, 2026)

🀝 Contributing

  1. Fork the repository
  2. Create a feature branch
  3. Make your changes
  4. Test thoroughly
  5. Submit a pull request

πŸ“„ License

This project is licensed as All Rights Reserved Β© 2026 Varun Kumar R.

You may not use, copy, modify, or distribute this project without prior permission.
For permission requests, please contact me: enquiretovarun@gmail.com

See the LICENSE file for details.


πŸ‘¨β€πŸ’» Author

Varun Kumar R - Software Developer


πŸŽ‰ What's New

  • Complete React Migration - Converted from HTML/CSS/JS to modern React
  • Enhanced UI/UX - Professional, modern design with improved user experience
  • Theme System - Dark/Light mode toggle with persistence
  • Interactive Chatbot - AI-powered assistant with voice and text input
  • Better Architecture - Clean separation between frontend and backend
  • Improved Performance - Optimized code and better resource management
  • Mobile Responsive - Works seamlessly on all device sizes

The application maintains the same core functionality while providing a much more modern, professional, and user-friendly experience.

About

Video Conference Application designed to deliver seamless virtual communication experiences. Built with a robust backend infrastructure and an intuitive, beautifully crafted user interface, our platform ensures smooth and high-quality video meetings for both personal and professional use.

Topics

Resources

Stars

Watchers

Forks

Releases

Packages

Contributors

Languages