GitHunt
FI

FixeQD/ExamAssist

AI cheating extension to pass tests ;)

๐Ÿง  ExamAssist - AI Test Helper

Browser extension for capturing screenshots and analyzing test questions using AI. Supports Chrome, Edge, Brave, and Firefox.

๐Ÿ“‹ Description

ExamAssist is a Chrome extension that allows you to:

  • Select an area on a page and copy it as an image to the clipboard
  • Analyze test questions using AI (Pollinations API)
  • Automatically recognize question types (single choice, multiple choice, text)
  • Receive answers in your selected language (Polish/English)
  • Bypass testportal.pl/testportal.net protections

โœจ Features

  • Area Selection: Click the extension icon and select any area on the page
  • AI Analysis: Automatic analysis of test questions from images
  • Clipboard Copy: Image is automatically copied to the clipboard
  • Answer Modes: Recognition of different question types (text/select_one/multi_select)
  • Multilingual: Full support for Polish and English languages (UI and AI prompts)
  • Security Bypass: Bypass testportal.pl protections

๐Ÿš€ Installation

Requirements

  • Node.js (version 16 or newer)
  • Chrome/Edge/Brave (supported Chromium browsers) OR Firefox (version 109 or newer)

Installation Steps

  1. Clone the repository
git clone https://github.com/FixeQD/ExamAssist.git
cd ExamAssist
  1. Install dependencies
npm install
  1. Build the extension

For Chrome/Edge/Brave:

# Standard build
npm run build

# Build with obfuscation
npm run build:obfuscate

For Firefox:

# Standard build
npm run build:firefox

# Build with obfuscation
npm run build:firefox:obfuscate
  1. Load into browser

Chrome/Edge/Brave:

  • Open chrome://extensions/
  • Enable "Developer mode"
  • Click "Load unpacked"
  • Select the dist folder from the project

Firefox:

  • Open about:debugging#/runtime/this-firefox
  • Click "Load Temporary Add-on"
  • Navigate to the dist-firefox folder and select the manifest.json file
  • Note: In Firefox, temporary add-ons are removed when you close the browser. For permanent installation, you need to sign the extension through Mozilla Add-ons.

โš™๏ธ Configuration

Enabling AI

By default, AI features are turned off to keep the extension discreet and minimal. To enable AI analysis:

  1. Right-click the extension icon and select "Options".
  2. In the bottom-right corner of the Options page there's a subtle AI toggle (a small floating control).
    • Hover to reveal it and click to turn on AI features.
  3. When AI is enabled, the Model dropdown and (if required) the API Key fields become available.
    • If the selected model's tier requires an API key (e.g. "seed"), you'll need to enter it to use that model.
  4. If the toggle is off, the extension will act as a standard screenshot tool and simply copy the cropped image to your clipboard.

If you want AI to be enabled automatically on install, you can toggle it on in the Options page after installing the extension.

Note: Not all AI models require an API key - some models are public/anonymous and can be used without a key. When you select a model in the Options page, the UI will display the model's tier; models with the "seed" tier require an API key while others may not.

Language Selection

The extension supports full internationalization (i18n):

  • UI Language: All interface elements (buttons, labels, messages) are translated
  • AI Prompts: The AI system receives instructions in the selected language
  • AI Responses: The AI provides answers in the selected language

Supported languages:

  • Polish (Polski): Full UI and AI prompts in Polish
  • English: Full UI and AI prompts in English

To change the language, go to the Options page and select your preferred language from the dropdown menu.

๐Ÿ“– Usage

Basic Usage

  1. Click the extension icon in the Chrome toolbar
  2. Select an area on the page you want to capture
  3. Automatic analysis: If you have an API key configured, you'll receive:
    • Detected question
    • Answer type
    • Suggested answer

AI Analysis Result

The extension returns data in JSON format:

{
	"question": "detected question",
	"answer_type": "text|select_one|multi_select",
	"answer": "answer"
}

Answer Types

  • text: Open-ended questions requiring text answers
  • select_one: Single choice questions (A, B, C, D)
  • multi_select: Multiple choice questions (select all correct)

๐Ÿ—๏ธ Project Structure

ai-cheat/
โ”œโ”€โ”€ src/
โ”‚   โ”œโ”€โ”€ background.js      # Main extension logic
โ”‚   โ”œโ”€โ”€ content.js         # Content script
โ”‚   โ”œโ”€โ”€ bypass-inject.js   # Testportal bypass
โ”‚   โ”œโ”€โ”€ options.js         # Options page
โ”‚   โ”œโ”€โ”€ options.html       # Options page UI
โ”‚   โ””โ”€โ”€ locales/           # Translation files
โ”‚       โ”œโ”€โ”€ pl.json        # Polish translations
โ”‚       โ””โ”€โ”€ en.json        # English translations
โ”œโ”€โ”€ build.js               # Build script
โ”œโ”€โ”€ manifest.json          # Chrome extension manifest
โ”œโ”€โ”€ manifest_firefox.json  # Firefox extension manifest
โ”œโ”€โ”€ package.json           # npm dependencies
โ””โ”€โ”€ LICENSE                # MIT License

๐Ÿ”จ Build Scripts

Chrome/Edge/Brave:

# Build without obfuscation
npm run build

# Build with obfuscation
npm run build:obfuscate

Firefox:

# Build without obfuscation
npm run build:firefox

# Build with obfuscation
npm run build:firefox:obfuscate

What Does Building Do?

  1. Compiles JavaScript files using esbuild
  2. (Optionally) Obfuscates code using javascript-obfuscator
  3. Copies the appropriate manifest file (manifest.json for Chrome, manifest_firefox.json for Firefox)
  4. Copies static files (options.html, LICENSE, README.md)
  5. Creates dist/ folder (Chrome) or dist-firefox/ folder (Firefox) with ready extension

๐Ÿ”’ Security and Privacy

  • API Key: Stored securely in Browser Storage API (Chrome Storage API / Firefox Storage API)
  • Permissions: Extension requires minimal permissions:
    • activeTab: Access to active tab
    • scripting: Script injection
    • storage: API key storage
  • Host Permissions: Access only to testportal.pl/net and Pollinations API

๐Ÿ“ API

Pollinations AI API

The extension uses Pollinations API for image analysis:

  • Endpoint: https://text.pollinations.ai/openai/v1/chat/completions
  • Model: openai (If I'm right then it's OpenAI GPT-5 Nano)
  • Format: OpenAI-compatible API

๐Ÿ› Troubleshooting

Extension Not Working

  1. Chrome/Edge/Brave: Check if the extension is enabled in chrome://extensions/
  2. Firefox: Check if the extension is enabled in about:addons
  3. Reload the page after installing the extension
  4. Check the browser console (F12) for errors

AI Not Returning Answers

  1. Check if you have an API key configured in options
  2. Check your internet connection
  3. Verify that the API key is correct

Image Not Being Copied

  1. Check clipboard permissions in the browser
  2. Try selecting a larger area (min. 10x10 px)

๐Ÿ“„ License

MIT License - see LICENSE file

โš ๏ธ Disclaimer

This tool was created solely for educational purposes. The user bears full responsibility for how this extension is used. The author is not responsible for misuse of this software.

Note

README.md made by AI lol

FixeQD/ExamAssist | GitHunt