Онлайн веб-приложение для написания и выполнения кода на JavaScript и Python. Разработано с использованием React, Monaco Editor и современных веб-технологий.
- Редактирование кода в реальном времени с подсветкой синтаксиса
- Поддержка JavaScript и Python
- Мгновенное выполнение кода
- Чистый и интуитивно понятный интерфейс
- Горячие клавиши для быстрого выполнения (⌘/Ctrl + Enter)
- Система обучения на основе задач с различными программированными упражнениями
- React 18
- TypeScript
- Vite
- Monaco Editor
- MirageJS (для имитации API)
- Tailwind CSS
- Компоненты shadcn/ui
src/
├── components/
│ ├── Editor/
│ ├── Layout/
│ ├── Results/
│ ├── TaskList/
│ └── ui/
├── hooks/
├── store/
│ └── slices/
│ ├── editorStore.ts
│ ├── executionStore.ts
│ └── taskStore.ts
├── services/
│ └── interpreter/
│ └── pythonInterpreter.ts
├── constants/
└── mocks/
├── server.ts
├── handlers.ts
└── types.ts
- Node.js (версия 16 или выше)
- npm или yarn
- Клонируйте репозиторий:
git clone https://github.com/your-username/code-craft.git
cd code-craft
- Установите зависимости:
npm install
# или
yarn install
- Запустите сервер разработки:
npm run dev
# или
yarn dev
- Откройте браузер и перейдите по адресу
http://localhost:5173
npm run build
# или
yarn build
Проект настроен для деплоя на Firebase Hosting:
- Установите Firebase CLI:
npm install -g firebase-tools
- Войдите в Firebase:
firebase login
- Инициализируйте проект Firebase:
firebase init hosting
- Задеплойте на Firebase:
firebase deploy
- Ограниченная поддержка стандартной библиотеки
- Нет поддержки внешних пакетов/импортов
- Поддержка только базовых арифметических операций и команд print
- Нет поддержки операций с файлами
- Ограниченные возможности обработки ошибок
- Нет сохранения кода между сессиями
- Нет аутентификации пользователей
- Поддержка только одного файла для выполнения
- Нет поддержки многократных файлов или проектов
- Нет ограничения по времени выполнения
- Аутентификация пользователей и профили
- Возможности для обмена кодом
- Сохранение фрагментов кода
- Поддержка нескольких файлов
- Совместная работа в реальном времени
- Поддержка дополнительных языков программирования
- Пользовательские тестовые кейсы
- Настройки форматирования кода
- Темы для редактора
- Исполнение Python через WebAssembly (Pyodide)
- Улучшенная обработка ошибок с номерами строк
- Анализ кода и предложения
- Функция авто-сохранения
- Реализация модульных тестов
- Улучшенная мобильная отзывчивость
- Настройки горячих клавиш
- Полная реализация бэкенда
- Мониторинг производительности
- Дополнительные программные задания
- Уровни сложности задач
- Отслеживание прогресса
- Система достижений
- Возможности для рецензирования кода
- Интерактивные уроки
Для производственных приложений включите lint-правила, учитывающие типы:
- Настройте параметры парсера:
export default tseslint.config({
languageOptions: {
parserOptions: {
project: ['./tsconfig.node.json', './tsconfig.app.json'],
tsconfigRootDir: import.meta.dirname,
},
},
})
- Обновите конфигурацию ESLint:
// eslint.config.js
import react from 'eslint-plugin-react'
export default tseslint.config({
settings: { react: { version: '18.3' } },
plugins: {
react,
},
rules: {
...react.configs.recommended.rules,
...react.configs['jsx-runtime'].rules,
},
})