-
Notifications
You must be signed in to change notification settings - Fork 59
Implemented real-time online debate platform with structured phases and AI judgment using WebSocket and WebRTC #73
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Open
rixitgithub
wants to merge
23
commits into
AOSSIE-Org:main
Choose a base branch
from
rixitgithub:feat/user_vs_user_debate
base: main
Could not load branches
Branch not found: {{ refName }}
Loading
Could not load tags
Nothing to show
Loading
Are you sure you want to change the base?
Some commits from the old base branch may be removed from the timeline,
and old review comments may become outdated.
Open
Implemented real-time online debate platform with structured phases and AI judgment using WebSocket and WebRTC #73
rixitgithub
wants to merge
23
commits into
AOSSIE-Org:main
from
rixitgithub:feat/user_vs_user_debate
Conversation
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
FE Refactoring
git ignore in main folder
Merge pull request AOSSIE-Org#1 from AOSSIE-Org/main
Refactored backend
Project Setup Documentation
…-Hide-Password-Functionality-46 password hide-visible feature added ( issue AOSSIE-Org#46 )
…DebateAI - Added seamless post-sign-in user flow with navigation logic in React - Implemented profile UI and /user backend routes with edit functionality - Built leaderboard UI and /leaderboard API, sorting users by EloRating - Created user and debate schemas in MongoDB with Go integration - Seeded test data; updated config, auth, and dependencies for full stack support
…d AI-driven judgment.
…es and AI judgment using WebSocket and WebRTC
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Implemented real-time online debate platform with structured phases and AI judgment using WebSocket and WebRTC
Description
This pull request introduces a comprehensive, real-time debate platform that enables human-vs-human debates with structured phases, integrated speech recognition, and AI-driven judgments. Users can now enjoy seamless live video/audio communication, automatic transcript generation, and detailed performance evaluation powered by the Gemini AI model.
These enhancements transform the debate application from a basic text-based system into an immersive, interactive platform with robust room management, clear turn indicators, and precise scoring feedback.
Context
Previously, the debate system lacked a dedicated environment for human-vs-human interactions. Users were unable to:
This PR addresses these issues by:
These changes create a robust, accessible, and engaging debate environment for users looking to improve their debating skills.
Changes Made
Frontend (React/TypeScript)
Online Debate Room (OnlineDebateRoom.tsx):
RTCPeerConnection
for seamless peer-to-peer video and audio streaming.Debate Phases & Timers:
DebatePhase
enum (e.g., Setup, OpeningFor, OpeningAgainst, CrossForQuestion, CrossAgainstAnswer, CrossAgainstQuestion, CrossForAnswer, ClosingFor, ClosingAgainst, Finished).useEffect
hooks to manage timers and automatically transition phases.isMyTurn
) to highlight the active debater.Role Selection & Readiness (Setup Popup):
toggleReady
function via WebSocket.Speech Recognition for Transcript Generation:
SpeechRecognition
orwebkitSpeechRecognition
) for real-time voice-to-text transcription.Judgment System Integration:
/api/submit-transcripts
endpoint.JudgeDebateHumanVsHuman
function to analyze transcripts using the Gemini AI model and return detailed scores and feedback.User Interface Enhancements:
Backend (Go)
Real-Time Communication:
WebsocketHandler
to support real-time messaging and manage debate room sessions.API Endpoints & Data Management:
JudgeDebateHumanVsHuman
function using the Gemini AI model to evaluate transcripts and generate structured feedback.Security & Connection Handling:
How to Test
Setup
localhost:5173
.Test Cases
Debate Room Functionality:
Debate Phases & Timers:
Role Selection & Readiness:
Speech Recognition & Transcript Submission:
UI and Visual Feedback:
Edge Cases:
Video Comparison
Before Implementation:
Please refer to the attached video for a demonstration of the current implementation issues.
user_vs_user_before.mp4
After Implementation:
Please refer to the attached video for a demonstration of the new real-time debate platform in action.
user_vs_user_after.mp4
Screenshots
Checklist
Reviewers
Additional Notes
Closes #72