#2 子ども向け学習アプリ:学習カードのUIとDB設計
Photo by Kilian Seiler on Unsplash
作業内容
- 学習カード用のダミーデータを作成
- 最小限のUI(LearningCard)を実装
- 学習用データベース(Prisma)を設計 : 学習カードを作成するため、単語(Word) と 画像(Image) を 1:1 で結びつけるスキーマにしました。音声はTTSで生成する方針のため、DBには持たせません。
ダミーデータから取得
今回触った技術
- TailwindCSS(UI調整)、Prisma(スキーマ更新)
悩んだこと
- 単語テーブルに持たせる最小情報の切り分け
- 音声データをDBに保存するか → 初期はTTS採用
typeとinterfaceの使い分け
学んだこと・気づき
@@unique([userId, jaSurface])により、同一ユーザー内での重複登録を抑止できる。@unique jaSurfaceにすると全ユーザーに跨って一意になってしまうので要注意。typeとinterfaceの使い分け(私の指針)- UIコンポーネントの Props →
interface(拡張しやすく、IDE補完が分かりやすい) - DB戻り値から派生したユーティリティ型 →
type(Union/Tuple等に強い)
- UIコンポーネントの Props →
次の目標
- Prisma + API 経由で実データ取得(ダミー除去/ダッシュボード)
- 画像アップロード(Firebase Storage) →
Image作成 →Word.imageId紐付け - UIに公開/下書きトグル(下書き保存 / 公開する / 下書きに戻す)
UIや機能についても作業しながら工夫すること