DebateAI is an AI-enhanced, real-time debating platform designed to sharpen communication skills. Whether competing against human opponents or LLM-powered AI challengers, users can participate in structured debates that mimic formal competitions.
-
User vs. User Debates
-
Real-time debates via WebSockets, WebRTC (audio/video/text)
-
Structured formats: opening, cross-exam, and closing
-
User vs. AI Debates
-
LLM-generated counterarguments that adapt to your input
-
Custom Debate Rooms
-
Create private, topic-specific debate spaces
- Go (version 1.20 or later)
- MongoDB (local instance or MongoDB Atlas)
The backend expects a config.prod.yml file at runtime.
Only a sample config file is provided in the repository.
Create the required config file by copying the sample:
cd backend/config
cp config.prod.sample.yml config.prod.ymlUpdate backend/config/config.prod.yml with a valid MongoDB connection string:
database:
uri: "<YOUR_MONGODB_URI>"Without a valid MongoDB URI, the backend will fail to start.
If the Gemini API key is not configured, the backend will still run, but AI-related features will be disabled.
gemini:
apiKey: "<YOUR_GEMINI_API_KEY>"From the backend directory, start the server:
go run cmd/server/main.goThe server will start on the port defined in the config file (default: 1313).
- Do not commit
config.prod.ymlto version control. - Only
config.prod.sample.ymlshould remain committed.
-
In the
frontend/directory, create a file named.env. -
Add the following environment variables to the
.envfile:
VITE_BASE_URL="http://localhost:1313"
VITE_GOOGLE_CLIENT_ID="<YOUR_GOOGLE_OAUTH_CLIENT_ID>"
- Replace
<YOUR_GOOGLE_OAUTH_CLIENT_ID>with your actual Google OAuth Client ID from Google Cloud Console.
Note: Do not commit this file to a public repository. Add
.envto your.gitignoreto keep it secure.
-
Open a new terminal and navigate to the frontend directory:
cd frontend -
Install dependencies:
npm install -
Create a
.envfile and add:VITE_BASE_URL="http://localhost:1313" -
Start the development server:
npm run dev
Thank you for your interest in contributing to DebateAI! We appreciate your efforts in making this project better. Please follow these best practices to ensure smooth collaboration.
- Navigate to the DebateAI repository.
- Click the Fork button in the top right corner.
- Clone the forked repository to your local machine:
git clone https://github.com/your-username/DebateAI.git
cd DebateAI- Always create a new branch for your contributions:
git checkout -b feature-name- Follow coding best practices and maintain code consistency.
- Write clear commit messages:
git commit -m "Added [feature/fix]: Short description"- Push your changes to your forked repository:
git push origin feature-name- Navigate to the original repository and open a Pull Request (PR).
- Provide a detailed description of the changes in the PR.
- Code Quality: Ensure your code is clean, readable, and consistent with the existing codebase.
- Testing: Test your changes locally before submitting a PR.
- Security: Never commit sensitive information (e.g., API keys or passwords).
- Communication: Be responsive to reviews and update your PRs as requested.
To help maintainers understand your changes, consider submitting a short video showcasing the feature or fix:
- Record a short demo (you can use tools like Loom or OBS).
- Upload and include the video link in your Pull Request description.
If you find a bug or have a feature request:
- Open an issue here.
- Clearly describe the problem and, if possible, suggest solutions.
We look forward to your contributions!
MIT © AOSSIE