リモートワークでも体調の変化を管理職にそれっぽく伝えておくアプリを作っている

2020年04月18日 00時04分

ご無沙汰しております。

近況を最近かけて居なかったのでエモい話を書いておきたいと思います。

最近、プライベートでは AWS でのウェブアプリケーション開発を行っています。

経緯的なもの

もともと私も体調があんまりよくなく、かつリモートワークなので管理職や PM 等からは体調どうという話をこまめに出していくのを気を付けていました。

ただ、そういったことを全部が全部伝えれるのは難しいのでいい感じに抽象度を高めて体調を伝えれればなぁというのが一つありました。

これは体調に波がある人の、詳細な記録情報は結構センシティブな事柄を含んでいるので、ある程度柔らかくする処理(抽象化・翻訳等…)を間に挟む必要があると思っています。

たまたま私の職場ではそういった翻訳者に恵まれていることもありますが、リモートワークが広まってくると翻訳者の処理がパンクしてしまうことを危惧しています。

そういった背景もあって、ゆるく体調管理を伝えれる機能が欲しいなーと思っていました。

このゆるく伝える機能については github の草機能それから岡山で活躍されている a-know さん(@a_know)の草 API 機能は本当に活用できそうでした。

ただ、今回はめちゃ API を叩くのは申し訳ないということもあり React ライブラリから利用して形を整えています。

vimeo: 474340944

アプリケーション構成とか

今回は TypeScript + React + AWS Amplify(サーバーレスアーキテクチャ群)を採用しました。管理職側からは集計を多様するので DynamoDB よりは Aurora Serverless の方が低コストになりそうな気がしたのでそこも気を付けましたが、検証していないので何とも言えないところです。

AWS Amplfy を使うと GraphQL とリソルバ―もある程度生成くれるので、ここも便利だなーと思ったポイントです。

下記がコンポーネント群になります。

動き的なもの

AWS にロックインしていますが、サーバー部分は極力抽象化を行いたいと思っています。

認証は…どうしようもない気がします。

動きとか

体調を web フォームから記録すると、草が生えていく感じです。

React なんでヌルヌル動きます。

管理者側はグループに登録されたユーザーの 1 週間の草がダッシュボードで表示される感じです(作成中)。

残タスク

・リソルバ―の記載

・管理者側の画面を実装

・ユーザー管理

・ログイン画面

結構あるな・・・

bingo.webでもそもそ進めていますのでご意見やご要望があれば適宜。

実装に際して読んだものとか

TypeScript + React

Learn React with TypeScript 3

内容も厚く、基礎から入っているので初心者にもおすすめ

Amplify 周り

公式のドキュメント・チュートリアルが一番参考になる。

Amplify Framework

AWS AppSync 開発者ガイド

そのうえで具体的な実装について踏み込んだとか、もうちょっと知りたいところは下記の動画を見ながら掴んだ。

Serverless React with AWS Amplify – The Complete Guide

GraphQL まわり

GraphQL も初だったので、公式ドキュメント及び

下記の動画を見て学んだ。Pocket は質の高い動画が多い。

Practical GraphQL – Become a GraphQL Ninja

DynamoDB まわり

当初は DynamoDB を利用しようと考えていたので読んでいた。

Hands-On Amazon DynamoDB for Developers

色々なものに負けずにやっていきましょう。