Code-Snapshot-Tool — コードと実行結果の自動スクリーンショットツール

Tool

概要

Code-Snapshot-Toolは、授業で使うコードやその実行結果を自動的にスクリーンショットとして取得するためのツールです。ウェブページ(index.html)を用いたUIと、server.jsを使ったバックエンドで構成され、PDFやJavaプロジェクトのインポート機能、テーマ切替などの操作を備えています。READMEには「入力したコードはバックエンドで制限なく実行される」と明記されており、ローカルや管理された環境での利用を前提とした設計です。簡潔さが優先されており、教育用途に特化した自動化ワークフローを提供します。(約300字)

GitHub

リポジトリの統計情報

  • スター数: 1
  • フォーク数: 0
  • ウォッチャー数: 1
  • コミット数: 5
  • ファイル数: 4
  • メインの言語: HTML

主な特徴

  • コードとその実行結果を自動でスクリーンショット化するワークフローを提供。
  • PDFや単一のJavaプロジェクト、演習一式のインポート機能をサポートする設計(READMEの記述に基づく)。
  • フロントエンド(index.html)とバックエンド(server.js)で構成され、テーマ切替などのUIオプションを備える。
  • 注意喚起:入力したコードはバックエンドで無制限に実行されるため、サンドボックス化が必須。

技術的なポイント

本リポジトリはHTMLベースのUI(index.html)と、server.jsによるサーバー処理で構成されています。READMEの記述「The webpage uses the js for the backend.」「ALL CODE INPUTED WILL RUN WITHOUT RESTRICTION IN THE BACKEND」が示す通り、クライアントから受け取ったコードをサーバー側で実行し、その出力やレンダリング結果をキャプチャして画像化する流れが想定されます。実装詳細はserver.jsを確認する必要がありますが、一般的には以下の要素が関係します:コードの実行環境(Javaコンパイル実行やスクリプト実行)、標準出力・標準エラーの収集、レンダリング(ブラウザ描画/HTML生成)およびヘッドレスブラウザや画像ライブラリでのスクリーンショット取得。教育用途では複数のソースをまとめて取り込むインポート機能が便利ですが、任意コード実行は重大なセキュリティリスクを伴います。改善案としては、コンテナ/VMによる隔離、リソース制限(タイムアウト・CPU/RAM制限)、ファイルシステムアクセスの制御、ユーザー権限の低減、入力検査/ホワイトリスト化、ログと監査の強化が挙げられます。また、外部依存やサードパーティライブラリを利用している場合はバージョン固定と脆弱性チェックを推奨します。運用はローカル環境や信頼できるLAN内に限定し、公開サーバーでの無防備な運用は避けるべきです。(約700字)

プロジェクトの構成

主要なファイルとディレクトリ:

  • LICENSE: file
  • README.md: file
  • index.html: file
  • server.js: file

まとめ

教育用途に特化した自動スクリーンショットツールである一方、任意コード実行のため堅牢なサンドボックス化が必須です。(約50字)

リポジトリ情報:

READMEの抜粋:

Code-Snapshot-Tool

Program to take automatic screenshots of code and its results for my classes.

The webpage uses the js for the backend.

!!ALL CODE INPUTED WILL RUN WITHOUT RESTRICTION IN THE BACKEND, BE CAREFUL!!

Once set up you can select the theme to change the theme. You can import:

  1. Exercices PDF (Will probably only work with mine).
  2. A Singular Java project (will import its code automatically, probably will only work with mine).
  3. All the exercices (Java Project.zip) and wi…