Giter Site home page Giter Site logo

ft-progress-spreadsheet's Introduction

ft-progress-spreadsheet's People

Contributors

dependabot[bot] avatar masakinpo avatar nafuka11 avatar

Stargazers

 avatar  avatar  avatar

Watchers

 avatar

ft-progress-spreadsheet's Issues

README更新

TODO

  • spreadsheetのtemplateを添付する
  • campus_id, cursus_id, begin_at, end_atを変更する場合の手順を追加する

timeout改善

変更理由

fetch回数が増え、GASの制限時間6分を超えるようになってしまいました。

現状、fetch後0.5秒固定で待っているので、fetch前から0.5秒待つように修正します。

project毎にシートを作成するよう変更

変更理由

spreadsheetのデータをGoogleデータポータルで表示するようにしました。
Googleデータポータルはspreadsheetの1行目の行をheaderとして扱う仕様です。
現状だとheaderを2行使っているので修正する必要があります。

修正案

修正案は2つありました。

  1. sheet1つ、headerにprojectのprefixを付ける
    フィールドにprefixが表示されてしまいます。フィールド名は変更できますが、そうするとproject毎に全て同じフィールド名になります。フィールド選択で確実に間違えます。
  2. sheetをproject毎に作成する
    今回はこれを採用します。
    sheet名はprojectシートから取ってきます。万が一sheetが存在しない場合はsheetを新規作成します(じゃないとコケてデータ欠損するので)。
    • sheet名が空文字だったら? -> idをシート名にして救いましょう。
    • それなら一律idでもいいのでは? -> 名前をつけないと人間が見辛いです。

開発

本番環境でそのまま開発すると死ぬので、別途spreadsheetを作ってください。
大丈夫そうなら、次のトリガーが発動する前に

  • spreadsheetの複製作成
  • spreadsheet変更
  • git pull && clasp push
  • スクリプト実行。動作に問題ないことを確認(ログと表示チェック)
  • 余分な行を削除

してください。

その他

submittedとsubscribedってどっちがどっちか混乱するので
subscribedをregisteredにしましょう。

収集データのフィルタリング機能

各Projectのデータを収集する際、user idでフィルタリングをかけます。

目的

  • ダミーuserのデータを除外するため。
  • データ収集を望まないuserに対応するため。

実装案

  • フィルタリングするuser idのシートを作成します(シート名例:filterUser)。
  • シートからidを取得し、fetchProjectInfo でidが一致するならcontinueします。

その他

  • sheet.writeProgress()から42 APIにアクセスするの、責務が分離できていない感じがするので、main.ts側からprojectInfosを渡してもいいかもしれません。

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.