何かすでにフレームワークを公開しているサイトがあれば、
「フレームワーク」というのはあくまで「枠組み」なので、まとまった機能そのものを提供しているわけではありません。
探すなら「プラグイン」でしょう。
ただ、これくらいなら少し考えれば自作できるのではないでしょうか。
「達成度」はあくまで「完了項目数/全項目数」です。
パーセンテージが出せればいいので割り算の範疇です。
つまり「どのような項目があって」(分母)、「あるユーザーがどれくらい完了したのか」(分子)
この2つのデータがあればあとは見せ方の問題です。
つまり最低この2つのデータ(ごめんなさい。ユーザー自身のデータも必要なので3つですね)が必要なので「データベース」の概念は必要です。
※もちろん項目にカテゴリをつけたりチャプターをつけるのであれば更に細分化されます。
これはPHPで作るのでしょうか?
「PHPで作る」というと表現は正しくありません。
PHPはあくまでサーバーサイドの仕組みです。
もし「Web上でブラウザからアクセスさせる」のであればHTML、CSSは最低限必要でしょう。何かしらブラウザ操作で要素を動かしたり時に非同期通信をさせるのであればJavaScriptも必要です。
PHP側が行っているのはあくまで送信された情報(リクエスト)を受け取って結果を返す(レスポンス)だけです。
もっと言えば、同様にサーバー上で動作させられる仕組みであればPHPでなくてもいいわけです。
例えば「DBに対して何かしらのアプローチを行って結果を返す」だけに特化させて画面描画などは全てJavaScriptなどに任せた「API」としての利用方法もあります。
そこは「どのように作りたいか」「自分の得意領域はどこか」「何にどこまで任せるか」を決めることです。
自身が作っている、または今後作っていきたいのであればある程度、全体像は見えていることでしょう。そこは言語関係なくできる部分でもあります。
まずは「どのような画面や機能が必要か」「どのようなデータが必要か」を全て洗い出すところからですね。
「~~のようなサイト」と言ってもあくまでそれは参考であって自身が作ろうとしているサービス・アプリケーションと完全一致するものでありません。
参考にはしても100%真似することはないので、結局「サービス・アプリケーションの全体像」は自身で考えなければなりません。
「デザインは機能」になるものですので、まずは必要な画面の洗い出し、画面デザイン(”設計”の意)からしっかりかためていっては如何でしょうか。
環境の選定、言語の選定(特にサーバーサイド)はそれからでもいいと言えばいいです。