見出し画像

科目出席簿 / 出欠管理アプリの使い方 / AppSheet

まずはこちらをご覧ください!!

使い方

アプリのダウンロードはこちら

ソース関係はこちら

背景

授業の出欠管理を iPad を使ってうまくできないか?

という問を出していただき、サンプル公開されているものを参考にさせていただいて作っています!!

機能としては

  1. 授業ごとの出席・欠席の入力と集計の表示

  2. 学校への出席・欠席・早退等の入力と集計の表示

  3. 出欠状況を Google スプレッドシート へ出力
    (本来、エクセルやCSVで出力されるものをGASを使ってスプシに変換します)

GASを含んでいるので、単純な出欠管理と集計の表示くらいなら、アプリをそのままコピーしてもらえば大丈夫です!!

一応、GASも載せておきますね!

function myFunction() {
  const sourceFolderId = '';
  const destFolderId = '';

  //既存スプレッドシートの情報を取得
  const spreadsheetFiles = new SpreadSheets(destFolderId);
  //console.log(spreadsheetFiles);
  const sourceFolder = DriveApp.getFolderById(sourceFolderId);
  const excelFiles = sourceFolder.getFiles();
  //var i = 0;
  //var key = [];
  while(excelFiles.hasNext()){
    var file = excelFiles.next();
    var fileName = file.getName();
    fileName = fileName.replace('.xlsx', '');
    var type = file.getMimeType();
    console.log(fileName);
    if(type === 'application/vnd.google-apps.spreadsheet'){
      continue;//スプレッドシートはコンバート対象から外す
    }
    //エクセルファイルと同名のスプレッドシートのIdを取得
    var ssId = spreadsheetFiles.getFileId(fileName);
    if(ssId){
      //同名のスプレッドシートがあれば、それを更新
      updateSpreadsheet(file,ssId);
    }else{
      //同名のスプレッドシートがなければ、新規ファイルとしてコンバート
      converToSpreadsheet(file,destFolderId);
    }
    //i++;
  }
}
  function converToSpreadsheet(file,folderId){
    const options = {
      title:file.getName(),
      mimeType:MimeType.GOOGLE_SHEETS,
      parents:[{id:folderId}]
    };
    Drive.Files.insert(options,file.getBlob())
    }
    function updateSpreadsheet(file,ssId){
      Drive.Files.update(null,ssId,file.getBlob());
    }
    
//フォルダの下にあるスプレッドシートのIdとファイル名を保持するクラス
class SpreadSheets{
  constructor(folderId){
    this.folderId = folderId;
    this.folder = DriveApp.getFolderById(folderId);
    const files = this.folder.getFiles();
    const arr = {};
    while(files.hasNext()){
      const file = files.next();
      const type = file.getMimeType();
      if(type==='application/vnd.google-apps.spreadsheet'){
        arr[file.getName()]=file.getId();
      }
    }
    this.spreadsheets= arr;
  }
  //ファイル名を受け取り、そのファイルIdを返す。ファイル名がなければunderfindを返す
  getFileId(fileName){
    return this.spreadsheets[fileName];
  }
}

GASのソースはこちら

少しだけ、ほんの少しだけデバッグで貢献しました!笑

全てまるっと導入されたい方がいらっしゃいましたらご相談ください😆
各種設定や無料で使っていく方法などレクチャーしていきます!

何がいいって、、
学校の出欠管理って、結構原始的だし、いろんなところ(ホワイトボード、教務の紙、出席簿、自分の出席簿、最後にパソコン…)に記録していくんですよね。
(自分の学校だけかもしれないですが🤣笑)

だから、最後にはずれていないか、間違っていないかの確認がめちゃくちゃ大変だし、そもそも他の先生の入力信用できないし….。

という感じなんですよね。
(何度も言いますけど、自分の学校だけかもしれない)

煩雑なんです。

だから、今授業で iPad とか Chromebook とか持っていっているなら、そこで入力してしまえば、一石二鳥どころか、それで済んじゃうのでは?🙄笑

しかも、Google スプレッドシート に出力できれば扱いも簡単になるし、共有できるし、いいことしかない気がする。
自治体のクラウド使用規定には十分にご注意ください!!

また、新しい課題を貰えたら善処していきますっ👍✨

そして、上記のソースにもあるように、いろんな方がソースとなる開発をされています!!
今回も、結構参考に(めちゃくちゃインスパイア!)させていただきました!笑
ただ、わかる人にしかわからない工夫が入っていますので、ぜひ気づいてください😎

って上げていったらキリがないことに気づき、こちらにまとめました↓

あと、次はデータポータルも入れることで、いろんな集計もできますよ!!
体力測定、学習状況、成長記録、部活動記録、、、なんでもどうぞ!

P.S.

今、Flutter の勉強をしているのですが、めちゃくちゃ苦戦しています。

挫折しそうなところを粘っていますが、果たしてマスターできるのだろうか….orz


何かと0から1を作るのは大変だと思います。学校はどこも似たような問題課題に対応していると思います。それなのに、先生って自分だけで頑張ろうとするんですよね。ボクの資料やnoteが1になって、学校ごとの現状に合わせてカスタムしていただければと思います‼️