AOSSIE-Org / AOSSIE-Org/DebateAI
[BUG]: WebSocket URLs hardcoded to ws://localhost:1313 — breaks any non-local deployment
- Dominant language
- TypeScript
- Stars
- 84
- Forks
- 198
- Avg merge
- 2d 19h
- Merged PRs (30d)
- 30
Description
### Bug Description
Several frontend WebSocket call sites hardcode the backend address instead of deriving it from `VITE_BASE_URL`:
- `frontend/src/components/Matchmaking.tsx` line 62
- (same pattern in other raw `new WebSocket(...)` call sites: `ChatRoom.tsx`, `TeamDebateRoom.tsx`, `Game.tsx`, `gamificationService.ts`)
`frontend/src/components/DebatePopup.tsx` line 31 also hardcodes `http://localhost:1313` for room creation.
## Impact
Matchmaking, chat, and room creation silently fail on any deployed environment (or even when the backend runs on a different port). The UI shows a permanent "connecting"/"Searching…" state with no error.
## Suggested Fix
Build WS URLs from `import.meta.env.VITE_BASE_URL` (swapping `http` → `ws`), in one shared helper.
### Steps to Reproduce
_No response_
### Logs and Screenshots
_No response_
### Environment Details
_No response_
### Impact
Critical - Application is unusable
### Code of Conduct
- [x] I have joined the [Discord server](https://discord.gg/hjUhu33uAn) and will post updates there
- [x] I have searched existing issues to avoid duplicates
Contributor guide
No contributing guide indexed for this repository
Research direction
Start with the raw new WebSocket(...) call sites in frontend/src/components/Matchmaking.tsx, ChatRoom.tsx, TeamDebateRoom.tsx, Game.tsx, and gamificationService.ts, then inspect frontend/src/components/DebatePopup.tsx and the VITE_BASE_URL usage. Confirm the shared URL approach works for deployed and non-default backend addresses, and verify that matchmaking, chat, and room creation no longer use hardcoded localhost URLs.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- typescript, vite
- Domain
- api, frontend
- Issue type
- Bug
- Difficulty
- 3/5
- Estimated time
- 1-2 days
- Activity status
- Quiet
- Clarity
- Clearly specified
- Newbie friendliness
- 72/100