質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

ただいまの
回答率

88.05%

会員サイト内に進捗状況が分かるシステムを導入したいです。

受付中

回答 3

投稿

  • 評価
  • クリップ 2
  • VIEW 618

score 12

会員専用サイトを作っており、学習進捗状況が分かるようなシステムを作りたいと考えています。

例えば下記URLにあるように、それぞれのコンテンツに学習完了ボタンがついていたり、全体の達成度がわかるようなシステムを検討中です。

https://dotinstall.com/lessons/basic_html_v4

これはPHPで作るのでしょうか?

何かすでにフレームワークを公開しているサイトがあれば、そちらを教えて頂ければと思います。

  • 気になる質問をクリップする

    クリップした質問は、後からいつでもマイページで確認できます。

    またクリップした質問に回答があった際、通知やメールを受け取ることができます。

    クリップを取り消します

  • 良い質問の評価を上げる

    以下のような質問は評価を上げましょう

    • 質問内容が明確
    • 自分も答えを知りたい
    • 質問者以外のユーザにも役立つ

    評価が高い質問は、TOPページの「注目」タブのフィードに表示されやすくなります。

    質問の評価を上げたことを取り消します

  • 評価を下げられる数の上限に達しました

    評価を下げることができません

    • 1日5回まで評価を下げられます
    • 1日に1ユーザに対して2回まで評価を下げられます

    質問の評価を下げる

    teratailでは下記のような質問を「具体的に困っていることがない質問」、「サイトポリシーに違反する質問」と定義し、推奨していません。

    • プログラミングに関係のない質問
    • やってほしいことだけを記載した丸投げの質問
    • 問題・課題が含まれていない質問
    • 意図的に内容が抹消された質問
    • 過去に投稿した質問と同じ内容の質問
    • 広告と受け取られるような投稿

    評価が下がると、TOPページの「アクティブ」「注目」タブのフィードに表示されにくくなります。

    質問の評価を下げたことを取り消します

    この機能は開放されていません

    評価を下げる条件を満たしてません

    評価を下げる理由を選択してください

    詳細な説明はこちら

    上記に当てはまらず、質問内容が明確になっていない質問には「情報の追加・修正依頼」機能からコメントをしてください。

    質問の評価を下げる機能の利用条件

    この機能を利用するためには、以下の事項を行う必要があります。

質問への追記・修正、ベストアンサー選択の依頼

  • Orlofsky

    2019/06/19 04:20

    URLは https://teratail.com/help#about-markdown の [リンク] に修正してください。

    キャンセル

  • m.ts10806

    2019/06/19 09:02

    >会員サイト内に
    PCで見ると「ト」と「内」の間に何か入ってます

    キャンセル

回答 3

+3

何かすでにフレームワークを公開しているサイトがあれば、

「フレームワーク」というのはあくまで「枠組み」なので、まとまった機能そのものを提供しているわけではありません。
探すなら「プラグイン」でしょう。

ただ、これくらいなら少し考えれば自作できるのではないでしょうか。

「達成度」はあくまで「完了項目数/全項目数」です。
パーセンテージが出せればいいので割り算の範疇です。

つまり「どのような項目があって」(分母)、「あるユーザーがどれくらい完了したのか」(分子)
この2つのデータがあればあとは見せ方の問題です。
つまり最低この2つのデータ(ごめんなさい。ユーザー自身のデータも必要なので3つですね)が必要なので「データベース」の概念は必要です。

※もちろん項目にカテゴリをつけたりチャプターをつけるのであれば更に細分化されます。

これはPHPで作るのでしょうか?

「PHPで作る」というと表現は正しくありません。
PHPはあくまでサーバーサイドの仕組みです。
もし「Web上でブラウザからアクセスさせる」のであればHTML、CSSは最低限必要でしょう。何かしらブラウザ操作で要素を動かしたり時に非同期通信をさせるのであればJavaScriptも必要です。

PHP側が行っているのはあくまで送信された情報(リクエスト)を受け取って結果を返す(レスポンス)だけです。
もっと言えば、同様にサーバー上で動作させられる仕組みであればPHPでなくてもいいわけです。
例えば「DBに対して何かしらのアプローチを行って結果を返す」だけに特化させて画面描画などは全てJavaScriptなどに任せた「API」としての利用方法もあります。

そこは「どのように作りたいか」「自分の得意領域はどこか」「何にどこまで任せるか」を決めることです。

自身が作っている、または今後作っていきたいのであればある程度、全体像は見えていることでしょう。そこは言語関係なくできる部分でもあります。
まずは「どのような画面や機能が必要か」「どのようなデータが必要か」を全て洗い出すところからですね。
「~~のようなサイト」と言ってもあくまでそれは参考であって自身が作ろうとしているサービス・アプリケーションと完全一致するものでありません。

参考にはしても100%真似することはないので、結局「サービス・アプリケーションの全体像」は自身で考えなければなりません。

「デザインは機能」になるものですので、まずは必要な画面の洗い出し、画面デザイン(”設計”の意)からしっかりかためていっては如何でしょうか。

環境の選定、言語の選定(特にサーバーサイド)はそれからでもいいと言えばいいです。

投稿

編集

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

+3

例えばこんなデータ構造:

レッスンマスターとして:
レッスンid
レッスン名
レッスン内容
レッスン並び順

学習者マスターとして:
学習者id
学習者名
その他にも学習者固有の情報類多数

レッスン進捗度テーブルとして:
レッスンid
学習者id
進捗フラグ

みたいなのを構えれば、学習の進捗管理なんてできるはずです。
上記の2つのマスター、1つのテーブルを組み合わせれば表示する処理は実現できます。

それを実現するのに、
データベースが扱えてサーバーサイドで動作できるプログラミング言語があればよくて、
PHPでも、RubyでもPerlでも作ることは可能です。
ユーザー体験を良くするために
javascriptなどwebブラウザ上で動作する言語も組み合わせるとさらに良いでしょう。

プログラミング言語のフレームワークを導入すると、
一定のセキュリティを確保しつつ効率的にコーディングできるとは思いますが、
オリジナルなプログラミング言語の習得なしにフレームワークに手を付けると
その問題が言語由来なのかフレームワーク由来なのかの区別がつかず混乱するので、
これから言語も含めて習得するのであれば欲張らず
フレームワークの環境構築で折れる人もいたりするので、
はじめは素のphpからはじめても良いかもしれません。

投稿

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

+2

会員専用サイトを作っており、学習進捗状況が分かるようなシステムを作りたいと考えています。

だったら、その作っているサイトに使用しているテクノロジーを使って、やればいいんじゃないでしょうか。
PHP使ってるなら、PHPでフレームワーク探せばいいかと。
フレームワークに関しては自分で調べましょう。
(使用しているテクノロジー名) フレームワーク
と検索すればいろいろ出てくるはずです。

これはPHPで作るのでしょうか?

知りません。
PHPでも、RubyでもPerlでも作ることは可能です。
というか、クライアントサイド(AngularやVue.jsなどのJSフレームワーク)でも可能かと。

投稿

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

15分調べてもわからないことは、teratailで質問しよう!

  • ただいまの回答率 88.05%
  • 質問をまとめることで、思考を整理して素早く解決
  • テンプレート機能で、簡単に質問をまとめられる

関連した質問

同じタグがついた質問を見る