Skip to content

javatcoding1/poc-v2

Β 
Β 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

70 Commits
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation


Helixque Header

Professional real-time video chat with preference-based matching

Discord Commit activity per month License

GitHub β€’ Releases β€’ Discord β€’ Deployment Guide

Meet Helixque, a professional real-time video chat application that pairs people based on their preferences. Built with WebRTC for secure, low-latency peer-to-peer media and Socket.IO for reliable signalingβ€”delivering a modern experience for networking, and collaboration. πŸŽ₯

Helixque is continuously evolving. Your suggestions, ideas, and reported bugs help us immensely. Do not hesitate to join the conversation on Discord or raise a GitHub issue. We read everything and respond to most.

πŸš€ Quick Start

Getting started with Helixque is simple:

  1. Clone the repository
git clone https://github.com/HXQLabs/Helixque.git
cd Helixque
  1. Install dependencies
# Backend
cd backend && npm install

# Frontend
cd ../frontend && npm install
  1. Configure environment variables
# Backend: Copy and edit .env.example
cp backend/.env.example backend/.env

# Frontend: Create .env.local
echo "NEXT_PUBLIC_BACKEND_URL=http://localhost:5001" > frontend/.env.local
  1. Start development servers
# Terminal 1 - Backend
cd backend && npm run dev

# Terminal 2 - Frontend
cd frontend && npm run dev

Open your browser at http://localhost:3000 and allow camera/microphone access. πŸŽ‰

🌟 Features

  • Enhanced UI & Layout Enjoy a cleaner, smoother interface with improved stability when switching between users. Seamless navigation and responsive design ensure a premium user experience.

  • Seamless Media Switching Toggle between video and audio effortlessly with smooth transitions for uninterrupted conversations. Real-time device management keeps your calls crystal clear.

  • Instant Messaging Send and receive messages in real time for seamless communication alongside video calls. Perfect for sharing links, notes, or quick thoughts during conversations.

  • One-on-One Video Calling Connect directly with other users for private, high-quality video conversations. WebRTC ensures low-latency, peer-to-peer connections for the best quality.

  • Random Connect with Professionals Meet and network with professionals from various fields instantly. Expand your connections effortlessly with intelligent preference-based matching.

  • Unlimited Skips No limits on finding the right match. Skip as many times as you need until you find the perfect conversation partner.

πŸ› οΈ Local Development

Frontend

The frontend is a Next.js application (App Router) that manages device selection, user preferences, UI state, and the RTCPeerConnection lifecycle.

Development commands:

cd frontend
npm install          # Install dependencies
npm run dev          # Start development server
npm run build        # Build for production
npm start            # Start production server

Environment variables:

Create frontend/.env.local:

NEXT_PUBLIC_BACKEND_URL=http://localhost:5001

Note: Frontend requires HTTPS in production for getUserMedia to function correctly. Device permissions must be granted by the user.

Backend

The backend is a Node.js + TypeScript server providing Socket.IO signaling, user presence, and preference-based matchmaking.

Development commands:

cd backend
npm install          # Install dependencies
npm run dev          # Start development server
npm run build        # Build for production
npm start            # Start production server

Environment variables:

Copy backend/.env.example to backend/.env:

PORT=5001
NODE_ENV=production
CORS_ORIGINS=http://localhost:3000
# Optional: REDIS_URL=redis://localhost:6379
# Optional: STUN/TURN server configuration

Note: Use a TURN server in production to ensure media relay when direct P2P is not possible. For multiple backend instances, configure Socket.IO Redis adapter.

βš™οΈ Built With

Next.js TypeScript Node.js Socket.io WebRTC Tailwind CSS

πŸ—οΈ Project Structure

Helixque/
β”œβ”€ backend/              # Signaling server (Node.js + TypeScript)
β”‚  β”œβ”€ src/
β”‚  β”‚  β”œβ”€ managers/       # UserManager, RoomManager
β”‚  β”‚  └─ index.ts        # Entry point
β”‚  β”œβ”€ .env.example
β”‚  └─ package.json
β”œβ”€ frontend/             # Next.js app (TypeScript)
β”‚  β”œβ”€ app/               # App Router pages
β”‚  β”œβ”€ components/        # UI + RTC components
β”‚  β”œβ”€ .env.local
β”‚  └─ package.json
β”œβ”€ assets/               # Images and static files
└─ README.md

Core Components

  • UserManager (backend) β€” Queue management, matching logic, presence tracking, and session state
  • RoomManager (backend) β€” Room lifecycle, signaling orchestration, and cleanup operations
  • Room (frontend) β€” RTCPeerConnection lifecycle, media controls, and UI state management

πŸ“‘ Socket.IO Events

Client β†’ Server

Event Description Payload
offer Send WebRTC offer { sdp: string, roomId: string }
answer Send WebRTC answer { sdp: string, roomId: string }
add-ice-candidate Send ICE candidate { candidate: RTCIceCandidate, roomId: string, type: 'sender' | 'receiver' }
queue:next Request next match β€”
queue:leave Leave queue / room β€”

Server β†’ Client

Event Description Payload
lobby User joined lobby β€”
queue:waiting Waiting for a match β€”
send-offer Instruct client to create/send offer { roomId: string }
offer Deliver remote offer { sdp: string, roomId: string }
answer Deliver remote answer { sdp: string, roomId: string }
add-ice-candidate Deliver remote ICE candidate { candidate: RTCIceCandidate, type: 'sender' | 'receiver' }
partner:left Remote peer disconnected { reason?: string }

🚒 Deployment

Backend (Render / Railway / Heroku)

Platform Guide
Render Deploy Node.js app with environment variables
Railway Auto-deploy from GitHub with build commands
Heroku Use Procfile with npm start

Deployment steps:

  1. Set environment variables (PORT, NODE_ENV, CORS_ORIGINS, optional REDIS_URL and TURN_*)
  2. Build and run:
cd backend
npm run build
npm start

Frontend (Vercel / Netlify)

Platform Guide
Vercel Automatic Next.js deployment from GitHub
Netlify Configure build command: npm run build

Deployment steps:

  1. Set NEXT_PUBLIC_BACKEND_URL to your backend's HTTPS endpoint
  2. Deploy using your platform's Next.js build pipeline

Docker: Container examples are included in the project for advanced deployments.

❀️ Community

Join the Helixque community on Discord and GitHub Discussions.

Feel free to ask questions, report bugs, participate in discussions, share ideas, request features, or showcase your projects. We'd love to hear from you!

πŸ›‘οΈ Security

If you discover a security vulnerability in Helixque, please report it responsibly instead of opening a public issue. We take all legitimate reports seriously and will investigate them promptly.

To disclose any security issues, please contact the maintainers through Discord or open a private security advisory on GitHub.

🀝 Contributing

There are many ways you can contribute to Helixque:

  • ⭐ Star the repository to support the project
  • πŸ› Report bugs or submit feature requests via GitHub Issues
  • πŸ“– Review and improve documentation
  • πŸ’¬ Talk about Helixque in your community and let us know
  • πŸ‘ Show your support by upvoting popular feature requests

Contribution Guidelines

  • Open an issue to discuss larger features before implementing
  • Use small, focused pull requests with descriptive titles and testing notes
  • Maintain TypeScript types and follow existing code style
  • Run linters and formatters before committing
  • Join our Discord to coordinate work and get faster PR reviews

Important: Signing up and completing the brief onboarding in the app is required for all contributors. Maintainers will use registered accounts to verify changes.

Repo Activity

Helixque Repo Activity

We Couldn't Have Done This Without You

πŸ“„ License

This project is licensed under the Apache License 2.0. See the LICENSE file for details.

License

Acknowledgments

Thanks to the open-source projects that made Helixque possible:

About

Resources

License

Code of conduct

Contributing

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • TypeScript 95.8%
  • JavaScript 2.2%
  • CSS 2.0%