Skip to content

shoma249/nishikubo_sotsuken

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

nishikubo_sotsuken

概要

課題に対するコード実装をベースとした複数人で使用するプログラミング学習ツールです 未経験のプログラミング言語学習支援,他者が理解しやすいコードの作成スキル向上を目的としています.


セットアップマニュアル

  1. Node.js(https://nodejs.org/ja/ )をインストールしてください
  2. コマンドプロンプト上で,npmコマンドを使い,path,body-parser,express,http,socket.io,fs,ip,mysqlをインストールしてください(例: npm install path )

Inkednpmインストール_LI

  1. 本リポジトリのmainブランチをローカルPCの任意の場所にクローンしてください

クローン

***コード交換機能無しのアプリをセットアップするには,single_versionブランチをクローンしてください***

singleバージョン

  1. MySQL(https://dev.mysql.com/downloads/windows/installer/5.7.html )をインストールしてください(server Onlyでインストールしてください)
  2. PCアイコンを右クリックし,プロパティ⇒システムの詳細設定⇒環境変数に移動してください

PC右クリック

システムの詳細設定

環境変数

  1. 環境変数のパスを編集し,C:\Program Files\MySQL\MySQL Server 5.7\bin\を新規追加してOKボタンをクリックしてください

Inkedpath_LI path2

  1. コマンドプロンプトを管理者として実行し,net start mysql57を入力してmysql57を起動してください

コマンドプロンプト

DB起動

  1. mysql -u root -pを入力し,mysqlをインストールする際に設定したパスワードを入力しログインしてください

mysqlログイン

  1. create database questions; を入力してquestionsデータベースを作成してください

create_DB

  1. create table question(id int primary key auto_increment not null, task mediumtext, testnum int);を入力してquestionテーブルを作成してください

create_question

  1. create table testcase(id int primary key auto_increment not null, test1 mediumtext, test2 mediumtext, test3 mediumtext, test4 mediumtext, test5 mediumtext, test6 mediumtext, test7 mediumtext, test8 mediumtext);を入力してtestcaseテーブルを作成してください

create_textcase

  1. create table answer(id int primary key auto_increment not null, answer1 mediumtext, answer2 mediumtext, answer3 mediumtext, answer4 mediumtext, answer5 mediumtext, answer6 mediumtext, answer7 mediumtext, answer8 mediumtext);を入力してanswerテーブルを作成してください

create_answer

  1. OneDrive(https://oskit-my.sharepoint.com/personal/hiroshi_igaki_oit_ac_jp/_layouts/15/onedrive.aspx?FolderCTID=0x0120004A6087FF5B53FE4FB6552B4572075364&id=%2Fpersonal%2Fhiroshi%5Figaki%5Foit%5Fac%5Fjp%2FDocuments%2FIgakiLabDir%2Figakilab2022%2F%E5%8D%92%E6%A5%AD%E7%A0%94%E7%A9%B6%2F%E3%83%93%E3%82%B8%E3%83%A5%E3%82%A2%E3%83%AB%E3%82%B2%E3%83%BC%E3%83%A0%E3%83%97%E3%83%AD%E3%82%B0%E3%83%A9%E3%83%9F%E3%83%B3%E3%82%B0 )にある,西窪卒研_questionsDBデータを各テーブルに格納してください(コマンド:insert into テーブル名(カラム,カラム・・・) values(データ,データ・・・);) (例:insert into question(task,testnum) values("長さ 19 の文字列 s を入力します。文字列 s の形式は [英小文字 (5) 文字],[英小文字 (7) 文字],[英小文字 (5) 文字] で表されます.カンマで区切られた文字列 s を、スペースで区切られた文字列に変換してください.入力例1: happy,newyear,enjoy 出力例1: happy newyear enjoy 入力例2: haiku,atcoder,tasks 出力例2: haiku atcoder tasks", 3);)

insert_question

  1. exitを入力してmysqlからログアウトしてください

exit

  1. app.jsを編集し,データベース接続処理部分のコードをmysqlインストールの際に設定したパスワードに変更してください

code変更


運用マニュアル

アプリ起動方法

  1. コマンドプロンプトを管理者として実行し,net start mysql57を入力し,mysqlデータベースをスタートさせてくださいDB起動
  2. コマンドプロンプトを起動させ,本リポジトリをクローンした任意の場所に移動し,リポジトリ内のappフォルダに移動した上でnpm startコマンドを入力してください
  3. コマンドを入力するとURLが表示されるので,そのURLにブラウザでアクセスすることでwebアプリを使用できます Inkedサーバ起動_LI

アプリ不具合

  • ユーザがブラウザをリロードするとサーバが強制的に落ちることがある
  • ゲーム中に他のユーザがアプリにアクセスする,ゲーム終了後にサーバを再起動させずにアプリにアクセスしようとすると強制的にサーバが落ちるため,ゲームは一回ごとにサーバを再起動させないといけない

アプリ終了方法

  • node.js上でCtrl+Cを押すと終了するか質問されるので,yまたはyesと入力するとサーバを終了できますInkedサーバ終了_LI

ユーザマニュアル(アプリの使用方法)

  1. アプリにアクセスし,名前を入力して参加ボタンをクリックしてくださいstart
  2. 右下の言語選択メニューで使用する言語を選択してくださいInkedselectmenu_LI
  3. 参加するメンバーが全員アクセスしたことを確認し,代表者がスタートボタンをクリックするとゲームが開始されますInkedbefore_start_LI
  4. 課題に対してエディタ上にコードを実装してくださいInkedgame_LI
  5. コードが課題の要求を満たしているかどうか右下のRUNボタンで実行して確かめながら実装を行ってくださいInkedrun_LI
  6. コードが課題の要求を満たしていると思ったら右下のSUBMITボタンで提出してくださいInkedrun_LI
    • 判定の結果がクリアであれば,新しい課題が表示され,コードがひな形に戻ります.その状態からまた新しい課題のコードを実装してください
    • 判定の結果がクリアでなければ,クリアしていないと通知が来るので,引き続き課題の要求を満たせるようにコードを実装してください
  7. 全メンバーで課題を10問クリアする,又は制限時間の1時間が経つとゲーム終了となり,リザルト画面に遷移しますresult
  8. リザルト画面では,過去にゲームをプレイしたチームとクリアした数をスコアとして競うランキングを表示しています
  9. また,クリアしたものとゲームの最後に実装中だった課題とコードが閲覧・実行できるようになっています なお,ゲームスタートから10分ごと,又はメンバーの内の誰かが課題のコード実装を完了した1分後に実装中の課題とコードがユーザ間で強制交換が行われます コード実装が完了すると,クリアした課題とコードが全メンバー間で共有され,閲覧できるようになっています

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages