質問: はじめまして。週末に趣味でプログラミングをしている日曜プログラマーなのですが、pythonに慣れており、djangoを使って下記のような生徒向けの問題管理ページを作成したいと考えております。 ひととおりdjango公式のチュートリアルの内容や、一通り作成と動作確認や、シェルを使ってdjangoのモデルの概念やpythonに関してはある程度概念がわかっているつもりなのですが、下記のような仕組みを作るにあたって、どのようなモデルをデザインすれば良いか悩んでおり、質問させていただきます。 データベースに関しても、一通り一般的なsqlは理解しており、正規化に関しても独学で勉強しました。 一応flaskでは簡単な従業員の日報管理フォームを作成して、さくらサーバーでデプロイするぐらいのことはできたレベルです。 不勉強なところも多いですが、助言いただけると幸いです。 作成するview: 1. ログインユーザー(生徒)のページ 2. 数学問題の一覧ページ 3. 数学問題の詳細ページ 4. 3の詳細ページを開く前に、本当にこのページを開くかどうか確認するページ 5. 1のログインページに、解いた(詳細ぺーじを開いたかどうか)ページの一覧を確認できる表示 ■ 実現したいこと: ログインしたユーザー(1.の生徒)が、2の数学の問題一覧(簡単なタイトルなど)をみて、自分(生徒自身)で解きたいページを開いて(3.の詳細ページを確認)回答する。 毎回、ログインした時に、なんの問題を解いたか(5のように一覧ページを設ける?)のと、2の一覧ページにアクセスするたびに、解いたページはわかるように、リストの下に回すなど。のわかりやすいように表示をしたい。 ■ 質問について: 最終的に実現したいのは上記なのですが、最初は、フィルターを作成して、2.の一覧ページでは、未回答のチェックを入れて、リロードするような感じで一覧ページを再表示させて作成できるかな?と考えていますが、ユーザーの情報のモデルと、数学問題のモデルをどのように管理すれば良いかが悩んでおり、質問になります。 もしかしたらタイトルの意味合いが違うかもしれないですがご指摘いただければと思います。どのようなモデルを作成するのが、管理と表示が簡単にできるかご教示してくださる方がいらっしゃいましたら何卒宜しくお願い致します。
回答: > > 生徒向けの問題管理ページを作成したい > > > 上記のようなシステムは、 **LMS(学習管理システム)** に分類されると思います。 オープンソースのLMSとして以下のものがあるようです。 * Moodle(PHP) * Canvas(Ruby) * RELATE (Python Django) DjangoでLMSを作成したいのであれば、まずは、**RELATE**のモデルを参考にされてはいかかがでしょうか? 参考: まだ Moodle で消耗してるの? オープンソースの Python製 LMS「RELATE」が圧倒的にカスタマイズしやくてヤバイぞ!