.
├── LICENSE
├── e2d3 : e2d3サブモジュール
├── gulpfile.coffee : CoffeeScript等のビルドのためのGulp設定スクリプト
├── package.json : npm パッケージファイル
├── server.js : サーバ起動のエントリポイント
├── src : ソースコード
│ ├── app : ExpressJSで公開されるAPIやWebViewが入ったディレクトリ
│ │ ├── api : Excelと通信を行うAPIのURL https://a.e2d3.org/
│ │ │ ├── adapters : 外部のAPIとの通信を行うためのアダプタ (インターフェースは試行錯誤中)
│ │ │ │ └── github.coffee : GitHubのAPIを叩くためのアダプタ
│ │ │ ├── index.coffee : a.e2d3.orgのExpressJSでの設定
│ │ │ └── routes : a.e2d3.orgのルーティング
│ │ │ ├── api : /api
│ │ │ │ ├── categories.coffee : /api/categories チャート一覧をJSONで返す
│ │ │ │ ├── index.coffee : /api をRouteとしてまとめるためのコード
│ │ │ │ └── shares.coffee : /api/shares FacebookやTwitterでシェアするためのAPI
│ │ │ └── files : /files
│ │ │ ├── github.coffee : /files/github GitHubレポジトリ上のファイルを取得するためのProxy
│ │ │ └── index.coffee : /files をRouteとしてまとめるためのコード
│ │ ├── index.coffee :
│ │ └── share : ブラウザでチャートを単体で表示して共有するためのURL https://s.e2d3.org/
│ │ ├── index.coffee : s.e2d3.orgのExpressJSでの設定
│ │ ├── routes : a.e2d3.orgのルーティング
│ │ │ ├── data.coffee : ユーザが共有したデータ(TSV)を吐き出すURL /data/<TSVのSHA256の先頭32文字>
│ │ │ └── shares.coffee : ユーザが共有したチャートを表示するHTMLを吐き出すURL /<チャート情報のSHA256の先頭7文字>/<TSVのSHA256の先頭32文字
│ │ └── views : ビュー
│ │ └── standalone.jade : shares.coffee から参照される、チャートを単体で表示するためのHTML
│ ├── cache : 各種キャッシュモジュール
│ │ ├── backend : バックエンドキャッシュ。外部APIの結果等をキャッシュする
│ │ │ ├── index.coffee
│ │ │ └── redis_store.js
│ │ └── frontend.coffee : フロントエンドキャッシュ。ExpressJS用のmiddleware
│ ├── config : 設定情報。NODE_ENVの値によって、ドメインやDBの接続先が切り替わるようにしてある
│ │ └── index.coffee
│ ├── db : データベースモジュール。NoSQLを想定し、DBの種類を切り替えられるようにしている
│ │ ├── collection : データアクセスモジュール
│ │ │ ├── chart.coffee : データ可視化テンプレートの情報。idは<path等の情報のSHA256>
│ │ │ └── data.coffee : ユーザが共有したTSVデータ。idは<TSVのSHA256>
│ │ ├── index.coffee
│ │ ├── azurestoragetable.coffee : azure実装
│ │ ├── mockdb.coffee : モック実装
│ │ └── mongodb.coffee : MongoDB実装
│ ├── error : 例外クラス
│ │ └── index.coffee
│ ├── init : データベースの初期化スクリプト
│ │ └── azure.coffee
│ ├── logger : ロガークラス
│ │ └── index.coffee
│ ├── queue : キューモジュール。サムネイル作成等の各種キューイングを行う。
│ │ ├── index.coffee
│ │ ├── kind : キューアクセスモジュール
│ │ │ └── thumbnail.coffee : サムネイル作成キュー
│ │ ├── azurestoragequeue.coffee : azure実装
│ │ └── mockqueue.coffee : モック実装
│ ├── storage : ストレージモジュール。サムネイル等のファイルの保管を行う。ブラウザから直接アクセスすることを想定。
│ │ ├── container : ストレージコンテナモジュール
│ │ │ └── thumbnail.coffee : サムネイル保管コンテナ
│ │ ├── index.coffee
│ │ ├── azurestorageblob.coffee : azure実装
│ │ └── mockstorage.coffee : モック実装
│ ├── util : 各種共通ユーティリティ関数
│ │ └── chartpath.coffee : path表現を実際のURLに変換するモジュール
│ └── worker : APIサーバとは独立して動くバッチジョブ
│ └── thumbnail.coffee : サムネイル作成バッチ
├── test : テスト
│ ├── db
│ │ └── collection
│ │ ├── chart.test.coffee
│ │ └── data.test.coffee
│ ├── init.js
│ ├── queue
│ │ └── kind
│ │ └── thumbnail.test.coffee
│ └── util
│ └── chartpath.test.coffee
└── worker.js : バッチジョブ起動用エントリポイント