EduToolkit is a platform developed as the core of a Bachelor Thesis at the Faculty of Technical Sciences in Novi Sad, dedicated to advancing digital education through AI.
It empowers educators and students to rapidly create, customize, and deploy interactive learning tools using automation driven by Large Language Models (LLMs).
All educational tools generated by EduToolkit are web-based, standalone .html files. They are self-contained, including all visual elements, logic, and interactions, requiring no additional installation, server, or external dependencies to run, simply open them in any modern browser.
Project Demonstration: Watch the Demo on YouTube
- Support Digital Education: Facilitate interactive learning experiences beyond static content.
- Zero-Code Tool Creation: Enable teachers to generate custom, high-quality tools without programming skills.
- Modular & Scalable System: Design an extensible architecture for diverse school subjects (e.g., Biology, Geography, History, Mathematics).
- AI-Driven Automation: Leverage LLMs to automate the complex process of generating functional, interactive web content.
EduToolkit uses a model LLM assistant (defaulting to GPT-5 Mini) to generate content. The generation process is highly controlled and structured:
- Structured JSON Prompts: Defines the tool's goal and behavioral constraints.
- System-Level Behavioral Rules: Ensures output adherence to educational and technical standards (e.g., standalone HTML).
- Wizard Input: Guides the user through collecting pedagogical requirements.
- Image-to-Form Assistance: Converts uploaded images into description for tool creation.
- Chat-Based Post-Editing: Allows users to refine or modify generated tools without full regeneration.
| Feature | Description |
|---|---|
| Interactive Tool Generator | Generates complete, standalone .html files with integrated CSS and JavaScript. |
| Wizard Form | Step-by-step, intuitive interface for defining educational requirements (title, audience, objects, initial state and interactions). |
| IF–THEN Interaction Rules | Custom logic engine for defining object behavior and guided learning sequences (e.g., IF object clicked, THEN reveal next step). |
| Image-based Description & Autofill | Upload an image (e.g., a cell diagram) -> LLM describes it and extracts objects -> Auto-populates wizard data. |
| Chat Editor | Modify the styling or logic of an already generated tool via natural language instructions ("Change the background color to blue," "Make the nucleus larger"). |
| Expandable Toolbox | Designed with a modular structure for easy integration of new subjects, content types, and feature enhancements. |
The System Prompt is the fundamental instruction set given to the Large Language Model (LLM). Its primary role is to enforce the technical constraints and the overall goal of generating a single, standalone, interactive HTML file. The system constraints are delivered to the LLM in a structured JSON format to ensure rigid adherence.
This JSON object defines the mandatory technical output requirements for the LLM:
<goal>
Generate a standalone ".html" document representing a complete interactive educational tool.
The document must include embedded CSS and JavaScript code, and optionally use p5.js or D3.js libraries if needed.
The tool should visually and interactively illustrate the educational concept described by the input data, using IF-THEN logic for object behaviors.
In the initial view, the title, description, and initial state of the elements should be clearly visible, while user interactions through clicks trigger the appropriate reactions.
The output must be a single functional ".html" file, ready to run directly in a web browser without additional setup.
</goal>
<instruction>
Process each key from the JSON input according to the following meaning and instructions:
- **"title"**: Represents the name of the interactive tool. Use this text as the main page heading (e.g., inside an "<h1>" tag), visibly displayed at the top of the tool. It should clearly identify the topic or functionality of the tool.
- **"audience"**: Describes the target group for which the tool is intended (e.g., elementary students, university students, teachers). This information is metadata and is not intended for display in the user interface, but you may include it as a comment in the HTML code for developer orientation.
- **"description"**: Textual description of the educational concept illustrated by the tool. Display this content as a paragraph (e.g., inside a "<p>") below the title as an introduction to the tool. It should be easily readable and clearly explain the purpose and function of the tool.
- **"initial"**: Defines the initial visual state of objects on the screen — their positions, shapes, sizes, colors, and layout. Based on this description, generate the initial view using HTML canvas, SVG, or libraries like p5.js or D3.js. This is the initial scene the user sees before interacting.
- **"interactions"**: An array of rules that define how objects respond to user actions. Each rule contains the following fields:
- **"if"**: The condition that triggers the rule (e.g., click on a specific object or position).
- **"then_first"**: The action executed the first time the condition is met (e.g., change color, display text).
- **"then_next"**: A list of actions executed sequentially each subsequent time the same condition is triggered.
- **"position"**: The initial position of the object on the screen, usually in (x, y) coordinates. Used for precise placement of interactive elements.
- **"style"**: Object styling — includes visual properties like color, borders, shape, and size. Used for the initial rendering of the object.
Implement a mechanism that detects clicks and tracks the number of clicks per object to correctly change behavior through the "then_first" and "then_next" sequences.
- **"extras"**: A field with additional functionalities such as animations, extra visualizations, text appearance, audio effects, etc. Include them as enhancements to the basic behaviors, according to the semantics of the given descriptions.
Finally, generate a single ".html" document that includes all necessary elements (HTML, embedded CSS, embedded JavaScript), fully functional and ready for local opening in a browser.
Do not add any extra comments, introductory sentences, explanations, or text outside the HTML code. The output must consist solely of a single valid HTML document without any header, introduction, or interpretation.
</instruction>
When a user defines a new tool via the interactive wizard, the LLM assistant receives a structured JSON object that defines all necessary parameters, including the title, audience, initial state, and critical IF-THEN logic.
Example Tool Specification (JSON)
This example illustrates how a user specifies an interactive tool for visualizing trigonometric functions (Maths/Geometry subject):
{
"title": "Interaktivno iscrtavanje trigonometrijske funkcije",
"audience": "srednjoškolci",
"description": "This interactive tool allows students to visually explore trigonometric functions...",
"initial": "The screen displays a coordinate system and the basic function y = sin(x)...",
"interactions": [
{
"if": "pomeranje klizača 'Amplituda'",
"then_first": "graf se ponovo iscrta sa novom amplitudom (y = A * sin(x))",
"then_next": [ "funkcija postaje viša ili niža u zavisnosti od vrednosti" ],
"position": "kontrole ispod grafa",
"style": "horizontalni klizač sa oznakom A"
},
// ... other interactions (Frequency, Phase Shift)
],
"extras": "By combining parameter changes, students can explore more complex forms...",
}
The workflow is designed to be simple and accessible for both technical and non-technical users:
-
Create an Interactive Tool
- Launch the Wizard
- Select an educational subject
- (Optional) Upload an image to automatically generate descriptions and object suggestions
- Define objects and IF–THEN interaction rules
- Click Generate to produce the standalone tool
-
Preview & Refine
- Review the generated interactive tool directly in the browser
- Use the integrated Chat Editor to make improvements
(e.g., “Increase the font size of all elements”) - Export the finalized
.htmlfile
-
Distribute
- Share the single
.htmlfile with teachers or students - It runs instantly in any modern web browser - no installation required!
- Share the single