背景
私の学校には進級制作展というイベントがあるのですが、ある授業でそれに出展できるようなものを作ろうということになりました。
その制作物です。チームでの開発でした。
元々個人的に作っていたアプリだったのですが、1端末からしかデータ操作ができない形でした。それを各プレイヤーが自分の端末からアクションを行えるようにするというのが目標でした。
使用技術
フロントエンド
- vite + React
- TypeScript
- axios
- TanStack Query
- React Router
バックエンド
- Python
- SQLite
- Pydantic
- Flask
自分の担当範囲
私が担当したのはバックエンド全般と、フロントエンド側でバックエンドからデータを取得するAPI接続部分でした。
一応責任者的な立ち位置でもありました。
軽く説明
バックエンド側はRESTの原則に従って設計しました。(多分…
データベースはPythonの標準ライブラリでいじるようにしました。最初はPydanticを使わずにTypedDictでゴリ押し戦法を取っていたのですが、限界感じてやめました。ただそこまでである程度コードを書いてしまっていたおかげで、結構無理矢理な変更になってしまいました。痕跡もばっちり残っているのでご覧になりたい方は是非。
フロントエンドは普通のWebアプリです。TanStack Queryの設計はこちらの記事がとても参考になりました。
苦労した点
初めてのことが多かったですね。データベース操作とか、APIの設計とか。学ぶことが多かったです。
その分とても楽しかったです。ここに書いててなんですが、あんまり苦労したって感じはなかったです。
責任者的な立ち位置はとても難しかったです。というか反省点が多かったです。
- 全体像を自分しか把握していない
- 各個人の力量を見誤って仕事を割り振ってしまった
- なにも教えずにGitHub等のツールを使った
まだまだ出てきますがこのくらいにしときます。
後半に差し掛かってNotionを使って全体の進捗等を共有したのですが、結構好評でした。最初からやっておけばよかったですね。次に生かします。
最後に
学びの多い取り組みでした。リーダーとかつくづく向いてないと思いましたが何回も経験して慣れていきたいですね。
実装に関してはBlogにいつかあがるかも?
こぼれ話
この授業の講師の先生の影響(?)でvsCodeにvimの拡張機能入れて使い始めました。元々かなりアグレッシブなタイピングをしていたのですが、なんかホームポジションに落ち着いてきはじめましたね。
ぜひ入れてみてください。