## 概要
OSS wiki ツール GROWI の開発に携わっていました。
主に Slack bot の開発に注力していました。
### 施策 1 プロキシサーバーの model, api 作成
- 課題・問題点
- slack と wiki 双方の権限周り設定
- 打ち手・使用した技術
- Ts.Ed, typeOrm, mysql, mongoose, MongoDB, TypeScript
- データが一致するように typeOrm と mongoose を調整
### 施策 2 slack bot と wiki の連携
- 課題・問題点
- slack api の仕様の読解
- 打ち手・使用した技術
- (bolt.js), slack api mongoose, node.js Express
- slack bot 作成のデファクトスタンダードが bolt.js だったので、当初 bolt.js を用いて実装していたのですが、bolt.js のベストプラクティスと、開発している wiki の設計が合わないため、 slack api を使用するように途中から変更した。特に苦労した点は、slack api への返答でした。slack の仕様上、なるべく早く payload を返すという設計だったので、wiki で page を探す際は必ず時間オーバーになり、エラーが発生します。この点に関しては、一旦空の payload を返して待ちの状態を作成し、検索が完了したら、再度返答するというように実装しました。
### 施策 3 slack bot 設定用に wiki の管理画面に slack bot 設定機能を追加
- 課題・問題点
- 本体アプリケーション側で どの slack と wiki が通信できているかを表す UI 仕様
- slack と wiki との導通
- 打ち手・使用した技術
- React.js, Express, node.js, MongoDB, mongoose
- 1 slack : 1 wiki の UI は非常に単純ですが、複数 slack : 複数 wiki の UI 仕様は大変複雑で時間もそこまでかけれない状況だったので、wiki と slack の表示にとどめておき、導通ができたら OK、できていないものもある、全くできていない という三段階に変更し、実装しました。フロントからバックエンドのモデル、API に至るまで一気通貫できたのは非常に良い経験になりました。
### 施策 4 プロキシサーバー用の phpMyAdmin を GAE にディプロイ / Alert 設定 / IAP 設定
- 課題・問題点
- 当初 Cloud Run でディプロイしようとしたが、現状不可能という問題
- 打ち手・使用した技術
- Cloud Run, GAE customize, Container Registory, Docker, docker-compose
- Proxy と同様に Cloud Run でディプロイしようとしたが、不可能でした。理由は phpMyAdmin 側が対応していないということで、Issue が 3 つほどあがっていたのですが、解決される見通しはありませんでした。そこで Cloud Run は一旦あきらめて, GAE でディプロイを試みました。こちらは比較的スムーズにいき、問題なくディプロイが完了しました。