Skip to content
Ri1tikPublic

About

DebateAI allows you to debate with other people and let your debate be evaluated by AI or practice your debate skills against AI.

Topics

Resources

Contributing

Stars

0 stars

Watchers

0 watching

Forks

 
 

Repository files navigation

AOSSIE Logo      DebateAI Logo

DebateAI Live at URL DebateAI Live at URL

Discord AOSSIE   X Badge   Telegram Badge   LinkedIn Badge   Subscribe to AOSSIE   Subscribe to Stability Nexus


About DebateAI

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.

Key Features

  • 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

Community & Discussion

If you have questions, feedback, or want to discuss ideas before building:


Project Setup Guide

You can run DebateAI locally using either Docker Compose (recommended for a one-command full-stack environment) or via Manual Local Setup.


Option 1: Quick Start with Docker (Recommended)

DebateAI includes pre-configured Dockerfiles for both frontend and backend along with a root docker-compose.yml that starts the Backend, Frontend, MongoDB, and Redis automatically.

1. Setup Environment Files

# 1. Setup Backend environment & config:
cd backend
cp .env.example .env
cp config/config.prod.sample.yml config/config.prod.yml
cd ..

# 2. Setup Frontend environment:
cd frontend
cp .env.example .env
cd ..

2. Run with Docker Compose

From the root project directory:

docker compose up --build

To stop:

docker compose down

Option 2: Manual Local Setup

Prerequisites

  • Go (version 1.20 or later, 1.24 recommended)
  • Node.js (version 20 or later) & npm
  • MongoDB (local instance or MongoDB Atlas)
  • Redis (local instance or cloud Redis)

Backend Configuration

1. Create Backend Config & Environment Files

cd backend
cp .env.example .env
cp config/config.prod.sample.yml config/config.prod.yml

2. Configure MongoDB

Update 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.

3. Configure Redis

Update backend/config/config.prod.yml with your Redis address:

redis:
  addr: "localhost:6379"
  password: ""
  db: 0

4. Configure Gemini API (Optional)

Configure your Gemini API key for AI debate features:

gemini:
  apiKey: "<YOUR_GEMINI_API_KEY>"

5. Run the Backend Server

From the backend directory, start the server:

go run cmd/server/main.go

The server will start on the port defined in the config file (default: 1313).

Note: Do not commit config.prod.yml or .env to version control.


Frontend Configuration (React + Vite)

1. Navigate to the Frontend Directory and Install Dependencies

cd frontend
npm install

2. Setup Environment Variables

Copy the example environment file:

cp .env.example .env

Ensure frontend/.env contains the required URLs:

VITE_BASE_URL="http://localhost:1313"
VITE_API_URL="http://localhost:1313"
VITE_GOOGLE_CLIENT_ID="<YOUR_GOOGLE_OAUTH_CLIENT_ID>"

3. Start the Development Server

npm run dev

The frontend will run on http://localhost:5173.


Contribution Guidelines

Thank you for your interest in contributing to DebateAI! Please refer to our detailed CONTRIBUTING.md for full contribution guidelines, testing procedures, coding standards, and Git workflows.

Quick Contribution Steps

  1. Fork the Repository: Fork DebateAI and clone your fork locally:
    git clone https://github.com/<your-username>/DebateAI.git
    cd DebateAI
  2. Create a Feature Branch:
    git checkout -b feat/your-feature-name
  3. Run Code Validation:
    • Backend: cd backend && go test ./... && go vet ./...
    • Frontend: cd frontend && npm run lint && npm run build
  4. Push and Open a Pull Request: Push to your fork and open a PR against main.

Submitting a Video Demonstration

To help maintainers review and understand your changes, please consider submitting a short video demo showcasing your feature or fix in your Pull Request description.


Reporting Issues

If you find a bug or have a feature request:

  • Open an issue on GitHub Issues.
  • Clearly describe the problem, steps to reproduce, and suggest solutions if possible.

License

MIT © AOSSIE

About

DebateAI allows you to debate with other people and let your debate be evaluated by AI or practice your debate skills against AI.

Topics

Resources

Contributing

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages