Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
80 changes: 49 additions & 31 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -8,37 +8,38 @@

---

## About DebateAI
## 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
### 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
- **User vs. User Debates**
- Real-time debates via **WebSockets**, **WebRTC** (audio/video/text)
- Structured formats: **opening**, **cross-exam**, and **closing**

- **Custom Debate Rooms**
- Create private, topic-specific debate spaces
- **User vs. AI Debates**
- LLM-generated counterarguments that adapt to your input

- **Custom Debate Rooms**
- Create private, topic-specific debate spaces

---

## Project Setup Guide
## Project Setup Guide

### Backend Configuration
### Backend Configuration

1. Create a file named `config.prod.yml` in the `backend/config/` directory.

Paste the following configuration:

```
server:
port: 1313 # The port number your backend server will run on

database:
uri: "mongodb+srv://<username>:<password>@<cluster-url>/<database-name>"
uri: "mongodb+srv://<username>:<password>@<cluster-url>/<database-name>"
# Replace with your MongoDB Atlas connection string
# Get this from your MongoDB Atlas dashboard after creating a cluster and database

Expand All @@ -52,45 +53,47 @@ jwt:
# A secret string used to sign JWT tokens
# Generate a strong random string (e.g. use `openssl rand -hex 32`)

expiry: 1440
expiry: 1440
# Token expiry time in minutes (e.g. 1440 = 24 hours)

smtp:
host: "smtp.gmail.com"
host: "smtp.gmail.com"
# SMTP server host for sending emails (example is Gmail SMTP)

port: 587
port: 587
# SMTP server port (587 for TLS)

username: "<YOUR_EMAIL_ADDRESS>"
username: "<YOUR_EMAIL_ADDRESS>"
# Email username (your email address)

password: "<YOUR_EMAIL_PASSWORD_OR_APP_PASSWORD>"
password: "<YOUR_EMAIL_PASSWORD_OR_APP_PASSWORD>"
# Password for the email or app-specific password if 2FA is enabled

senderEmail: "<YOUR_EMAIL_ADDRESS>"
senderEmail: "<YOUR_EMAIL_ADDRESS>"
# The 'from' email address used when sending mails

senderName: "DebateAI Team"
senderName: "DebateAI Team"

googleOAuth:
clientID: "<YOUR_GOOGLE_OAUTH_CLIENT_ID>"
clientID: "<YOUR_GOOGLE_OAUTH_CLIENT_ID>"
# Google OAuth Client ID for OAuth login
# Obtain from Google Cloud Console (APIs & Services > Credentials > OAuth 2.0 Client IDs)
```

> **Note**: Do **not** commit this file to a public repository. Use `.gitignore`.
> **Note**: Do **not** commit this file to a public repository. Use `.gitignore`.

---

### Running the Backend (Go)
### Running the Backend (Go)

1. Navigate to the backend folder:

```
cd backend
```

2. Initialize Go modules (if not already done):

```
go mod tidy
```
Expand Down Expand Up @@ -119,19 +122,22 @@ VITE_GOOGLE_CLIENT_ID="<YOUR_GOOGLE_OAUTH_CLIENT_ID>"

---

### Running the Frontend (React + Vite)
### Running the Frontend (React + Vite)

1. Open a new terminal and navigate to the frontend directory:

```
cd frontend
```

2. Install dependencies:

```
npm install
```

3. Create a `.env` file and add:

```
VITE_BASE_URL="http://localhost:1313"
```
Expand All @@ -140,47 +146,57 @@ VITE_GOOGLE_CLIENT_ID="<YOUR_GOOGLE_OAUTH_CLIENT_ID>"
```
npm run dev
```

---

## Contribution Guidelines
## Contribution Guidelines

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.

### How to Contribute
### How to Contribute

#### 1. Fork the Repository

- Navigate to the [DebateAI repository](https://github.com/AOSSIE-Org/DebateAI).
- Click the **Fork** button in the top right corner.
- Clone the forked repository to your local machine:

```sh
git clone https://github.com/your-username/DebateAI.git
cd DebateAI
```

#### 2. Create a Feature Branch

- Always create a new branch for your contributions:

```sh
git checkout -b feature-name
```

#### 3. Make Changes and Commit

- Follow coding best practices and maintain code consistency.
- Write clear commit messages:

```sh
git commit -m "Added [feature/fix]: Short description"
```

#### 4. Push Changes and Open a Pull Request

- Push your changes to your forked repository:

```sh
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.

---

### Best Practices
### Best Practices

- **Code Quality**: Ensure your code is clean, readable, and consistent with the existing codebase.
- **Testing**: Test your changes locally before submitting a PR.
Expand All @@ -189,25 +205,27 @@ git push origin feature-name

---

### Submitting a Video Demonstration
### Submitting a Video Demonstration

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.

---

### Reporting Issues
### Reporting Issues

If you find a bug or have a feature request:

- Open an issue [here](https://github.com/AOSSIE-Org/DebateAI/issues).
- Clearly describe the problem and, if possible, suggest solutions.

We look forward to your contributions!
We look forward to your contributions!

---

## License
## License

MIT © [AOSSIE](https://aossie.org)

Expand Down
Loading