Online Compiler
Браузерна IDE для редагування, запуску й налагодження коду з інтерактивною консоллю та симуляцією Arduino й ESP32.

Про проєкт
Online Compiler — браузерна IDE з власним серверним рушієм виконання програм. Код запускається сервером і локальними Docker-образами, а не передається до Judge0 чи Piston. Monaco Editor відповідає за редагування, xterm.js і WebSocket — за інтерактивну консоль із реальним PTY.
Окрім текстового коду, середовище охоплює Scratch 3 і Blockly, приклади програм, налагодження та симуляцію мікроконтролерів. Arduino Uno емулюється у браузері, а сценарії ESP32 використовують QEMU. У наданій версії портфоліо описані підтримка 41 мови, відладчики для 7 мов і бібліотека перевірених сніпетів.
Задача
Об’єднати редагування, виконання, введення в консоль та налагодження в одному браузерному середовищі з власним рушієм.
Що реалізовано
Monaco Editor, кілька файлів і бібліотека прикладів програм.
Справжній інтерактивний термінал: stdin, Ctrl+C та Ctrl+D.
Власне виконання коду та Docker-оточення для мов програмування.
Відладчики та автоматична перевірка еталонних сніпетів.
Blockly, Scratch 3, сцена та спрайти для візуального програмування.
Симуляція Arduino / ESP32 та CI-перевірки середовища.
Технології
Архітектура та роль технологій
- Python
- Обробка даних, автоматизація та серверні компоненти.
- Django
- Серверні маршрути, моделі даних і логіка вебзастосунку.
- PostgreSQL
- Реляційне зберігання пов’язаних даних і транзакційна узгодженість.
- WebSocket
- Двосторонній обмін подіями без постійного опитування сервера.
- Monaco Editor
- Редактор коду всередині браузерного середовища.
- xterm.js
- Інтерфейс інтерактивного термінала в браузері.
- Docker
- Відтворювані середовища й контейнерний запуск компонентів.
Як це працює
- Вибрати мову, приклад або блокове середовище.
- Написати програму та запустити власний рушій.
- Взаємодіяти з консоллю чи дослідити виконання у відладчику.
Галерея проєкту
Є задача? Знайдемо рішення.
Розкажіть, що потрібно зробити. Уточнимо деталі та запропонуємо наступний крок.
Обговорити проєкт