Sign inSign up

zibdie/catchgpt

By zibdie

•Updated over 1 year ago

Image
0

916

zibdie/catchgpt repository overview

⁠CatchGPT - AI Detection System

CatchGPT is a tool designed to generate PDF assignments with hidden tracking URLs. These URLs can be used to detect when students are using AI chatbots to complete their assignments.

⁠How It Works

  1. Professors/teachers generate a PDF with an essay assignment
  2. Hidden within the PDF (in white text) is a tracking URL
  3. When a student copies the assignment into an AI tool, the AI processes the hidden URL
  4. The AI tool visits the URL, revealing that the assignment was processed by AI
  5. The system logs the visit with details including timestamp, user agent, and IP address

⁠Getting Started

The Docker method sets up a container with all required libraries and software.

There are images available for both x86-x64 (Intel) and ARM device (M-series Macs, Raspberry Pi's) via Docker Hub.

⁠Prerequisites
  • Docker (and Docker Compose if you wish to use that method)
⁠Using Docker Compose
  1. Clone the repository:
git clone https://github.com/zibdie/CatchGPT
cd CatchGPT
  1. Ensure you have Docker Compose. You can test by running this command in your Command Prompt or Terminal
> docker-compose version  
Docker Compose version v2.33.1-desktop.1

Tip: You may need to run it as docker compose

  1. Build and start the container:
docker-compose up -d

The application will be available at http://localhost:3000⁠. All tracking data is stored in a SQLite database that persists between container restarts thanks to a Docker volume.

  1. To stop the container:
docker-compose down
⁠Using Docker Directly
  1. Pull the latest image from Docker Hub:
docker pull zibdie/catchgpt:latest
  1. Run the container with a volume for the SQLite database:
docker run -p 3000:3000 -e NEXT_PUBLIC_SERVER_URL=http://localhost:3000 -v catchgpt_data:/app/data -d zibdie/catchgpt:latest

The application will be available at http://localhost:3000⁠.

⁠Running Locally

⁠Prerequisites
  • Node.js 18+ and npm
⁠Installation
  1. Clone the repository:
git clone https://github.com/zibdie/CatchGPT
cd CatchGPT
  1. Install dependencies:
npm install
  1. Create a .env.local file in the root directory with your server URL:
NEXT_PUBLIC_SERVER_URL=http://your-domain.com

If not provided, it will default to http://localhost:3000.

⁠Running the Application
npm run dev

The application will be available at http://localhost:3000⁠.

⁠Data Persistence

This application uses SQLite to store tracking data in the /app/data directory. When running with Docker, the data is persisted using a Docker volume named catchgpt_data.

⁠Features

  • PDF Generator: Create assignment PDFs with hidden tracking URLs
  • Dashboard: View all tracking records with basic information
  • Detailed Views: See complete details for each tracking instance
  • Fake Data Generation: Returns convincing but fake information to AI tools

⁠Tech Stack

  • Next.js (App Router)
  • TypeScript
  • Material UI
  • jsPDF for PDF generation
  • FakerJS for generating fake data
  • SQLite for data storage

⁠Notes

This tool is intended for educational purposes to demonstrate how AI detection can work. In a production environment, you would want to:

  1. Implement a more robust database solution for larger scales
  2. Add authentication to protect the dashboard
  3. Set up proper logging and monitoring
  4. Consider legal and privacy implications in your jurisdiction

Tag summary

Content type

Image

Digest

sha256:a6e535738…

Size

497.3 MB

Last updated

over 1 year ago

docker pull zibdie/catchgpt