WEB版(Apache2サーバ用)
(未完成だけど、一応解説)
WEB版の場合で、Apache2サーバを使用する場合は、studyWorkMaker/webを使います。
Apache2サーバの他に、MySQL(自分の実行環境はmariaDB)、PHP環境、CGI環境が必要になります。
インストールは調べると色々分かるのですが、結構面倒くさいです。
自分もメモは大して残してないのですが、
Permission設定だけは気をつけてください。
利用者には実行権限が必要です。書き込み権限は不要です。
セットアップが終わったら、別の端末等でサーバと同じネットワークに入ってください。
http://(サーバのIPアドレス)/index.htmlでメインページに飛びます。
index.htmlには、「
問題解答データをアップロードするフォームと、
それらデータを使用して、クイズをしていくページに飛ぶフォームがあります。
問題解答データをアップロードするフォームでは、ファイル選択で、ファイルを選択し、
その中にある問題解答データを展開し、SQLに登録します。
SQLには、ただのInsert文への文字列結合しか入ってないので、
SQLインジェクション・不正アクセスなどの攻撃に無力です。サーバ公開は行わないでください。
この部分の処理はCGI(Perl)で書いてます。
クイズをしていくページでは、最初にランダムに選択された問題と、正解が1つ混じった4択ボタンが出現します。
正解のボタンを押下すると、正解数が、正解以外のボタンを押下すると不正解数が1増加し、結果画面に映ります。
結果画面では、次の問題へのリンクがあるので、このリンクをクリックすると、そのページを再読込して、
問題を再抽選するようにしています。
…これをただ延々と繰り返すだけです。
この部分は問題出題処理とボタンの選別はPHPで、押下後の処理はJavaScriptで書いてます。
事前にSQLに問題解答データを登録しないと、0択の中から問題を生成することになり、動きません。改善ポイント1
また、アップロードした問題解答データがすべて反映されます。
解答がダブったりすると判別つきません。
(同じ単語でも別問題判定なら不正解と見なしています)
改善ポイント2
問題解答データが多すぎると、めちゃくちゃな解答選択肢になり、簡単になります。改善ポイント3
URLで正解数と不正解数を示しています。
URLを変えればいくらでも不正をはたらけます改善ポイント4
問題の再抽選時、
前回の問題と同じ問題が出ることが多々あります。改善ポイント5
自分の環境ではラズパイでサーバ構築したので、ユザネはpi、パスはデフォルトのubuntuになっています。
ソースに書かないでください。改善ポイント6
と、こんな感じに結構ガバガバなので、改善点をあらいだして、改善していきたいですね(遠い目)
Issueに書いても良いんだけど…ね…?
「ね?」じゃないんだよ。改善あくしろよ。
個人的には言語も絞りたいですが、正直もう作り直すの面倒くさいのと、たくさん言語やってる方が経験値積めるので、
こいつが所有する言語格はたぶん増えます。
つまり、用意する環境も増えます。