【アプリ開発日記45週目】演習ウェブアプリの構成決め
getStaticPropsってpages内でしか使えないんですね、初めて知りました。久しぶりに加えてドキュメントもほとんど読んでいなかったので、今になって散々苦労しています。今からでも遅くない…!
今回は技術的な話ではなく、全体の構成に軸をおいて自分の中で整理するために書いていきます!
やりたいこと
最効率の演習アプリを作る(主に自分の医学勉強用)
デメリット
これ単一では学習を完結できない
記述の採点ができない
創作など単一の答えがないものは不向き
atama+的な機能や、問題リコメンド・分野ごとの学習ロードマップもほしい?(≠ must)
本アプリはガチガチ暗記系のため、最初からこれを使うと全体的にみて非効率になります。先に教科書や映像授業で一通りインプットしておくことが必須・前提で、それを定着させるという位置づけです。
大学受験、医学、法学などは上記に当てはまる場合が多い気がします。一方、プログラミングや物理学、マーケティングなどの学習は△(暗記というより思考や経験が重要、また解説で数式を書く/撮影するのも大変でベスト解法も人次第)なのかなとも思いましたが、とりあえず作りながら考えていきます。
最初のインプットは教科書や既存の映像授業で十分と感じました。無理にアプリに入れて効率を崩すのも悪手のため今回はいれませんが、まとめノートなどはNotionみたいにユーザー同士で作成・共有できればいいですね。
これもウェブアプリ内に作るというより、noteやNotionなどで作成してもらい、そのリンクを共有できる場所、の方が向いてるかも。その問題の解説やコメント欄にリンクを貼っておけば、対応箇所に飛べるという方向で進めます。先輩や先生からのアドバイスをまとめたページも思い出せば作るかもしれません。
また、イラストなどのクリエイティブ系、「体系カリキュラム・単一の正解がないタイプ」(自分で好きなものを作りながら、自分の中の正解に足りないものを吸収していく)は「イラスト最速上達法」に書かれている方法やTwitter、Pixivなどのフィードバックをもらえる環境のほうが向いているだろうということで、今回はあまり考えていません。
作りたいものがまとまってきたところで、さっそく構築していきます!
環境
フロントエンド:Next.js
バックエンド:Django
DB:PostgreSQL
データベース構成
ユーザー
Book
Book内に複数のセクション
セクション内に複数の問題
ユーザーはBook、セクション単位でお気に入り登録できる
問題単位のお気に入り登録(ブックマーク)
演習履歴(問題ごとに)
好きな問題だけを集めた問題セット(配列状?に問題のidを保存)
例えば
Book:臨床医学、心理学、物理学、経済学、応用情報など
Section:(臨床医学の中に)循環器内科、整形外科、救急外来など
Quiz:(眼科Section内に)緑内障の問題、網膜剥離の問題など
というイメージです。
メイン画面ではBook一覧が表示され、各Bookを押すと詳細画面(= セクション一覧)に飛びます。
つまり、ユーザーが行うPOST処理は
Book、Section、Quiz の作成・更新・削除
Book一覧。お気に入り登録機能。お気に入りは上部に表示される
Bookの詳細と、その中のセクション一覧。お気に入り登録機能。お気に入りは上部に表示される
セクション一覧(= Book詳細)画面の「演習スタート」ボタンから問題ページに飛ぶ
問題ページでは、問題の詳細と演習履歴を表示。ボタンを押すと演習履歴を登録できる。また、ブックマーク登録機能。
問題セット作成
問題セットの共有(idで他の人もその情報=配列?を取得できる)
Bookのフォーク機能?
こんなところでしょうか。書いていると頭が回ってきますね。最後に、必要なページをまとめてみます!
ページ構成
メイン画面(Book一覧)
各Bookの詳細&セクション一覧(ここから演習スタート)。問題セットに表示切替可
セクションの詳細&問題一覧(簡潔版)&問題作成フォーム
問題ページ
問題一覧ページ(問題文/解説もフルで見れる)
プロフィール画面/編集画面
ログイン/サインアップ画面
ログインに関しては、セクション一覧まではログインせずに見られるようにしようかと思います。有料会員のラインは
解説を全部は見ることができない
お気に入り登録できる問題数(解ける問題数)に制限がある
演習履歴に記録される数に月あたりの制限がある
noteみたいに有料会員でないと見れないコンテンツがある
全体一括ではなくコンテンツごとのユーザー同士の買い切り型
全体一括の場合、買い切りよりサブスク型?コンテンツ売買手数料型?(無料のほうが敷居は低いし、何よりより多くのユーザーが問題作れる)
のいずれかで検討しています。なにかいい案あったらぜひ教えてください! このあたりはこれから作りながら考えていきます。
おわりに
ここまでで必要なページが整理できてきました! 作成自体は以前から行っていたのですが、あまりの見切り発車に途中でこんがらがって今に至ります。前回作成した演習アプリと同じ感じかな、と思ったところがとんだハズレ、見た目は似ていても仕様は異なる感じになりそうです。卒試前までには作らねば。
ではでは!
蛇足
ステータス画面。個人的に気に入ってるけど浮いたのでボツになりました。
この記事が気に入ったらサポートをしてみませんか?