# ckanext-feedback
[![codecov](https://codecov.io/github/c-3lab/ckanext-feedback/graph/badge.svg?token=8T2RIXPXOM)](https://codecov.io/github/c-3lab/ckanext-feedback)
このCKAN Extensionはデータ利用者からのフィードバックを得るための機能を提供します。
本Extensionの利用者からの意見・要望や活用事例の報告を受け付ける仕組み等によって、データ利用者はデータの理解が進みデータ利活用が促進され、データ提供者はデータのニーズ理解やデータ改善プロセスの効率化が行えます。
フィードバックにより利用者と提供者間でデータを改善し続けるエコシステムを実現することができます。
## 主な機能
* 👀 集計情報の可視化機能(ダウンロード数、利活用数、課題解決数)
* 💬 データおよび利活用方法に対するコメント・評価機能
* 🖼 データを利活用したアプリやシステムの紹介機能
* 🏆 データを利活用したアプリやシステムの課題解決認定機能
## クイックスタート
1. CKANの仮想環境をアクティブにする(CKANコンテナ等の環境内で実行してください)
```bash
. /usr/lib/ckan/venv/bin/activate
```
2. 仮想環境にckanext-feedbackをインストールする
```bash
pip install ckanext-feedback
```
3. 以下のコマンドで設定を行うファイルを開く
```bash
vim /etc/ckan/production.ini
```
4. 以下の行に`feedback`を追加
```bash
ckan.plugins = stats ・・・ recline_view feedback
```
5. フィードバック機能に必要なテーブルを作成する
```bash
ckan --config=/etc/ckan/production.ini feedback init
```
## 構成
### 本Extensionは3つのモジュールで構成されています
* [utilization](./docs/ja/utilization.md)
* [resource](./docs/ja/resource.md)
* [download](./docs/ja/download.md)
### 設定や管理に関するドキュメント
* リソースや利活用方法へのコメントを管理することが出来ます
* 詳しくは[管理者用画面ドキュメント](docs/ja/admin.md)をご覧ください
* 特定のモジュールのみを利用することも可能です
* 設定方法は[オンオフ機能の詳細ドキュメント](./docs/ja/switch_function.md)をご覧ください
## 開発者向け
### ビルド方法
1. `ckanext-feedback`をローカル環境にGitHub上からクローンする
```bash
git clone https://github.com/c-3lab/ckanext-feedback.git
```
2. `ckanext-feedback/development`下にある`setup.py`を実行し、コンテナを起動
3. CKAN公式の手順に従い、以下のコマンドを実行
```bash
docker exec ckan /usr/local/bin/ckan -c /etc/ckan/production.ini datastore set-permissions | docker exec -i db psql -U ckan
```
```bash
docker exec -it ckan /usr/local/bin/ckan -c /etc/ckan/production.ini sysadmin add admin
```
4. 以下のコマンドを実行し、コンテナ内に入る
```bash
docker exec -it ckan bash
```
5. CKANの仮想環境をアクティブにする
```bash
. /usr/lib/ckan/venv/bin/activate
```
6. 仮想環境にckanext-feedbackをインストールする
```bash
pip install /opt/ckanext-feedback
```
7. 以下のコマンドで設定を行うためのファイルを開く
```bash
vim /etc/ckan/production.ini
```
8. 以下の行に`feedback`を追加
```bash
ckan.plugins = stats ・・・ recline_view feedback
```
9. フィードバック機能に必要なテーブルを作成する
```bash
ckan --config=/etc/ckan/production.ini feedback init
```
10. `http://localhost:5000`にアクセスする
### 参考ドキュメント
* [feedbackコマンド 詳細ドキュメント](./docs/ja/feedback_command.md)
* [言語対応(i18n) 詳細ドキュメント](./docs/ja/i18n.md)
## テスト
1. 上記のビルド方法に従い、ビルドを行う
2. コンテナ内に入る
```bash
docker exec -it --user root ckan /bin/bash
```
3. その他の必要なものをインストールする
```bash
pip install -r /usr/lib/ckan/venv/src/ckan/dev-requirements.txt
pip install pytest-ckan
```
4. テスト用DBを作成する
```bash
createdb ckan_test -O ckan -E utf-8 -h db -U ckan
```
5. ディレクトリを移動
```bash
cd /usr/lib/ckan/venv/lib/python3.8/site-packages/ckanext/feedback/tests
```
6. テストを実行
```bash
CKAN_SQLALCHEMY_URL= CKAN_DATASTORE_READ_URL= CKAN_DATASTORE_WRITE_URL= pytest -s --ckan-ini=config/test.ini --cov=ckanext.feedback --cov-branch --disable-warnings ./
```
## LICENSE
[AGPLv3 LICENSE](https://github.com/c-3lab/ckanext-feedback/blob/feature/documentation-README/LICENSE)
## CopyRight
Copyright (c) 2023 C3Lab
Raw data
{
"_id": null,
"home_page": "https://github.com/c-3lab/ckanext-feedback/",
"name": "ckanext-feedback",
"maintainer": "",
"docs_url": null,
"requires_python": "==3.8.16",
"maintainer_email": "",
"keywords": "ckan,ckan extension,opendata,open-data,review",
"author": "C3Lab",
"author_email": "info.c3lab@gmail.com",
"download_url": "https://files.pythonhosted.org/packages/e0/0a/08d768e9b73a791c11a236dcf716002c7be572cc2b10a15ce75d043621e8/ckanext_feedback-1.1.1.tar.gz",
"platform": null,
"description": "# ckanext-feedback\n\n[![codecov](https://codecov.io/github/c-3lab/ckanext-feedback/graph/badge.svg?token=8T2RIXPXOM)](https://codecov.io/github/c-3lab/ckanext-feedback)\n\n\u3053\u306eCKAN Extension\u306f\u30c7\u30fc\u30bf\u5229\u7528\u8005\u304b\u3089\u306e\u30d5\u30a3\u30fc\u30c9\u30d0\u30c3\u30af\u3092\u5f97\u308b\u305f\u3081\u306e\u6a5f\u80fd\u3092\u63d0\u4f9b\u3057\u307e\u3059\u3002\n\u672cExtension\u306e\u5229\u7528\u8005\u304b\u3089\u306e\u610f\u898b\u30fb\u8981\u671b\u3084\u6d3b\u7528\u4e8b\u4f8b\u306e\u5831\u544a\u3092\u53d7\u3051\u4ed8\u3051\u308b\u4ed5\u7d44\u307f\u7b49\u306b\u3088\u3063\u3066\u3001\u30c7\u30fc\u30bf\u5229\u7528\u8005\u306f\u30c7\u30fc\u30bf\u306e\u7406\u89e3\u304c\u9032\u307f\u30c7\u30fc\u30bf\u5229\u6d3b\u7528\u304c\u4fc3\u9032\u3055\u308c\u3001\u30c7\u30fc\u30bf\u63d0\u4f9b\u8005\u306f\u30c7\u30fc\u30bf\u306e\u30cb\u30fc\u30ba\u7406\u89e3\u3084\u30c7\u30fc\u30bf\u6539\u5584\u30d7\u30ed\u30bb\u30b9\u306e\u52b9\u7387\u5316\u304c\u884c\u3048\u307e\u3059\u3002\n\n\u30d5\u30a3\u30fc\u30c9\u30d0\u30c3\u30af\u306b\u3088\u308a\u5229\u7528\u8005\u3068\u63d0\u4f9b\u8005\u9593\u3067\u30c7\u30fc\u30bf\u3092\u6539\u5584\u3057\u7d9a\u3051\u308b\u30a8\u30b3\u30b7\u30b9\u30c6\u30e0\u3092\u5b9f\u73fe\u3059\u308b\u3053\u3068\u304c\u3067\u304d\u307e\u3059\u3002\n\n## \u4e3b\u306a\u6a5f\u80fd\n\n* \ud83d\udc40 \u96c6\u8a08\u60c5\u5831\u306e\u53ef\u8996\u5316\u6a5f\u80fd(\u30c0\u30a6\u30f3\u30ed\u30fc\u30c9\u6570\u3001\u5229\u6d3b\u7528\u6570\u3001\u8ab2\u984c\u89e3\u6c7a\u6570)\n* \ud83d\udcac \u30c7\u30fc\u30bf\u304a\u3088\u3073\u5229\u6d3b\u7528\u65b9\u6cd5\u306b\u5bfe\u3059\u308b\u30b3\u30e1\u30f3\u30c8\u30fb\u8a55\u4fa1\u6a5f\u80fd\n* \ud83d\uddbc \u30c7\u30fc\u30bf\u3092\u5229\u6d3b\u7528\u3057\u305f\u30a2\u30d7\u30ea\u3084\u30b7\u30b9\u30c6\u30e0\u306e\u7d39\u4ecb\u6a5f\u80fd\n* \ud83c\udfc6 \u30c7\u30fc\u30bf\u3092\u5229\u6d3b\u7528\u3057\u305f\u30a2\u30d7\u30ea\u3084\u30b7\u30b9\u30c6\u30e0\u306e\u8ab2\u984c\u89e3\u6c7a\u8a8d\u5b9a\u6a5f\u80fd\n\n## \u30af\u30a4\u30c3\u30af\u30b9\u30bf\u30fc\u30c8\n\n1. CKAN\u306e\u4eee\u60f3\u74b0\u5883\u3092\u30a2\u30af\u30c6\u30a3\u30d6\u306b\u3059\u308b(CKAN\u30b3\u30f3\u30c6\u30ca\u7b49\u306e\u74b0\u5883\u5185\u3067\u5b9f\u884c\u3057\u3066\u304f\u3060\u3055\u3044)\n\n ```bash\n . /usr/lib/ckan/venv/bin/activate\n ```\n\n2. \u4eee\u60f3\u74b0\u5883\u306bckanext-feedback\u3092\u30a4\u30f3\u30b9\u30c8\u30fc\u30eb\u3059\u308b\n\n ```bash\n pip install ckanext-feedback\n ```\n\n3. \u4ee5\u4e0b\u306e\u30b3\u30de\u30f3\u30c9\u3067\u8a2d\u5b9a\u3092\u884c\u3046\u30d5\u30a1\u30a4\u30eb\u3092\u958b\u304f\n\n ```bash\n vim /etc/ckan/production.ini\n ```\n\n4. \u4ee5\u4e0b\u306e\u884c\u306b`feedback`\u3092\u8ffd\u52a0\n\n ```bash\n ckan.plugins = stats \u30fb\u30fb\u30fb recline_view feedback\n ```\n\n5. \u30d5\u30a3\u30fc\u30c9\u30d0\u30c3\u30af\u6a5f\u80fd\u306b\u5fc5\u8981\u306a\u30c6\u30fc\u30d6\u30eb\u3092\u4f5c\u6210\u3059\u308b\n\n ```bash\n ckan --config=/etc/ckan/production.ini feedback init\n ```\n\n## \u69cb\u6210\n\n### \u672cExtension\u306f3\u3064\u306e\u30e2\u30b8\u30e5\u30fc\u30eb\u3067\u69cb\u6210\u3055\u308c\u3066\u3044\u307e\u3059\n\n* [utilization](./docs/ja/utilization.md)\n* [resource](./docs/ja/resource.md)\n* [download](./docs/ja/download.md)\n\n### \u8a2d\u5b9a\u3084\u7ba1\u7406\u306b\u95a2\u3059\u308b\u30c9\u30ad\u30e5\u30e1\u30f3\u30c8\n\n* \u30ea\u30bd\u30fc\u30b9\u3084\u5229\u6d3b\u7528\u65b9\u6cd5\u3078\u306e\u30b3\u30e1\u30f3\u30c8\u3092\u7ba1\u7406\u3059\u308b\u3053\u3068\u304c\u51fa\u6765\u307e\u3059\n * \u8a73\u3057\u304f\u306f[\u7ba1\u7406\u8005\u7528\u753b\u9762\u30c9\u30ad\u30e5\u30e1\u30f3\u30c8](docs/ja/admin.md)\u3092\u3054\u89a7\u304f\u3060\u3055\u3044\n\n* \u7279\u5b9a\u306e\u30e2\u30b8\u30e5\u30fc\u30eb\u306e\u307f\u3092\u5229\u7528\u3059\u308b\u3053\u3068\u3082\u53ef\u80fd\u3067\u3059\n * \u8a2d\u5b9a\u65b9\u6cd5\u306f[\u30aa\u30f3\u30aa\u30d5\u6a5f\u80fd\u306e\u8a73\u7d30\u30c9\u30ad\u30e5\u30e1\u30f3\u30c8](./docs/ja/switch_function.md)\u3092\u3054\u89a7\u304f\u3060\u3055\u3044\n\n## \u958b\u767a\u8005\u5411\u3051\n\n### \u30d3\u30eb\u30c9\u65b9\u6cd5\n\n1. `ckanext-feedback`\u3092\u30ed\u30fc\u30ab\u30eb\u74b0\u5883\u306bGitHub\u4e0a\u304b\u3089\u30af\u30ed\u30fc\u30f3\u3059\u308b\n\n ```bash\n git clone https://github.com/c-3lab/ckanext-feedback.git\n ```\n\n2. `ckanext-feedback/development`\u4e0b\u306b\u3042\u308b`setup.py`\u3092\u5b9f\u884c\u3057\u3001\u30b3\u30f3\u30c6\u30ca\u3092\u8d77\u52d5\n\n3. CKAN\u516c\u5f0f\u306e\u624b\u9806\u306b\u5f93\u3044\u3001\u4ee5\u4e0b\u306e\u30b3\u30de\u30f3\u30c9\u3092\u5b9f\u884c\n\n ```bash\n docker exec ckan /usr/local/bin/ckan -c /etc/ckan/production.ini datastore set-permissions | docker exec -i db psql -U ckan\n ```\n\n ```bash\n docker exec -it ckan /usr/local/bin/ckan -c /etc/ckan/production.ini sysadmin add admin\n ```\n\n4. \u4ee5\u4e0b\u306e\u30b3\u30de\u30f3\u30c9\u3092\u5b9f\u884c\u3057\u3001\u30b3\u30f3\u30c6\u30ca\u5185\u306b\u5165\u308b\n\n ```bash\n docker exec -it ckan bash\n ```\n\n5. CKAN\u306e\u4eee\u60f3\u74b0\u5883\u3092\u30a2\u30af\u30c6\u30a3\u30d6\u306b\u3059\u308b\n\n ```bash\n . /usr/lib/ckan/venv/bin/activate\n ```\n\n6. \u4eee\u60f3\u74b0\u5883\u306bckanext-feedback\u3092\u30a4\u30f3\u30b9\u30c8\u30fc\u30eb\u3059\u308b\n\n ```bash\n pip install /opt/ckanext-feedback\n ```\n\n7. \u4ee5\u4e0b\u306e\u30b3\u30de\u30f3\u30c9\u3067\u8a2d\u5b9a\u3092\u884c\u3046\u305f\u3081\u306e\u30d5\u30a1\u30a4\u30eb\u3092\u958b\u304f\n\n ```bash\n vim /etc/ckan/production.ini\n ```\n\n8. \u4ee5\u4e0b\u306e\u884c\u306b`feedback`\u3092\u8ffd\u52a0\n\n ```bash\n ckan.plugins = stats \u30fb\u30fb\u30fb recline_view feedback\n ```\n\n9. \u30d5\u30a3\u30fc\u30c9\u30d0\u30c3\u30af\u6a5f\u80fd\u306b\u5fc5\u8981\u306a\u30c6\u30fc\u30d6\u30eb\u3092\u4f5c\u6210\u3059\u308b\n\n ```bash\n ckan --config=/etc/ckan/production.ini feedback init\n ```\n\n10. `http://localhost:5000`\u306b\u30a2\u30af\u30bb\u30b9\u3059\u308b\n\n### \u53c2\u8003\u30c9\u30ad\u30e5\u30e1\u30f3\u30c8\n\n* [feedback\u30b3\u30de\u30f3\u30c9 \u8a73\u7d30\u30c9\u30ad\u30e5\u30e1\u30f3\u30c8](./docs/ja/feedback_command.md)\n* [\u8a00\u8a9e\u5bfe\u5fdc(i18n) \u8a73\u7d30\u30c9\u30ad\u30e5\u30e1\u30f3\u30c8](./docs/ja/i18n.md)\n\n## \u30c6\u30b9\u30c8\n\n1. \u4e0a\u8a18\u306e\u30d3\u30eb\u30c9\u65b9\u6cd5\u306b\u5f93\u3044\u3001\u30d3\u30eb\u30c9\u3092\u884c\u3046\n\n2. \u30b3\u30f3\u30c6\u30ca\u5185\u306b\u5165\u308b\n\n ```bash\n docker exec -it --user root ckan /bin/bash\n ```\n\n3. \u305d\u306e\u4ed6\u306e\u5fc5\u8981\u306a\u3082\u306e\u3092\u30a4\u30f3\u30b9\u30c8\u30fc\u30eb\u3059\u308b\n\n ```bash\n pip install -r /usr/lib/ckan/venv/src/ckan/dev-requirements.txt\n pip install pytest-ckan\n ```\n\n4. \u30c6\u30b9\u30c8\u7528DB\u3092\u4f5c\u6210\u3059\u308b\n\n ```bash\n createdb ckan_test -O ckan -E utf-8 -h db -U ckan\n ```\n\n5. \u30c7\u30a3\u30ec\u30af\u30c8\u30ea\u3092\u79fb\u52d5\n\n ```bash\n cd /usr/lib/ckan/venv/lib/python3.8/site-packages/ckanext/feedback/tests\n ```\n\n6. \u30c6\u30b9\u30c8\u3092\u5b9f\u884c\n\n ```bash\n CKAN_SQLALCHEMY_URL= CKAN_DATASTORE_READ_URL= CKAN_DATASTORE_WRITE_URL= pytest -s --ckan-ini=config/test.ini --cov=ckanext.feedback --cov-branch --disable-warnings ./\n ```\n\n## LICENSE\n\n[AGPLv3 LICENSE](https://github.com/c-3lab/ckanext-feedback/blob/feature/documentation-README/LICENSE)\n\n## CopyRight\n\nCopyright (c) 2023 C3Lab\n\n",
"bugtrack_url": null,
"license": "AGPL-3.0",
"summary": "The extension to feedback on CKAN datasets such as review, number of downloads,use-cases,resolved-problems, and way of use",
"version": "1.1.1",
"project_urls": {
"Documentation": "https://github.com/c-3lab/ckanext-feedback/README.md",
"Homepage": "https://github.com/c-3lab/ckanext-feedback/",
"Repository": "https://github.com/c-3lab/ckanext-feedback/"
},
"split_keywords": [
"ckan",
"ckan extension",
"opendata",
"open-data",
"review"
],
"urls": [
{
"comment_text": "",
"digests": {
"blake2b_256": "b6957527ac935054964f7183fbf05bdce35489a39c2aca30a25e6a331f4b80f3",
"md5": "2cd1b7ac428c37d6138ed44ec42f1972",
"sha256": "043a2c98d31491d9041c504a80f27a74dbc8157c475c3134fa9140fd68a24831"
},
"downloads": -1,
"filename": "ckanext_feedback-1.1.1-py3-none-any.whl",
"has_sig": false,
"md5_digest": "2cd1b7ac428c37d6138ed44ec42f1972",
"packagetype": "bdist_wheel",
"python_version": "py3",
"requires_python": "==3.8.16",
"size": 1479161,
"upload_time": "2023-12-05T09:27:22",
"upload_time_iso_8601": "2023-12-05T09:27:22.986898Z",
"url": "https://files.pythonhosted.org/packages/b6/95/7527ac935054964f7183fbf05bdce35489a39c2aca30a25e6a331f4b80f3/ckanext_feedback-1.1.1-py3-none-any.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"blake2b_256": "e00a08d768e9b73a791c11a236dcf716002c7be572cc2b10a15ce75d043621e8",
"md5": "2298b7bd3a2a00643712f2320b7cdf1a",
"sha256": "dd1b3e5617b56ea8853c3dec8c9e8c6edf239ee1d78048b2f1ee5e5cabfc6165"
},
"downloads": -1,
"filename": "ckanext_feedback-1.1.1.tar.gz",
"has_sig": false,
"md5_digest": "2298b7bd3a2a00643712f2320b7cdf1a",
"packagetype": "sdist",
"python_version": "source",
"requires_python": "==3.8.16",
"size": 1412782,
"upload_time": "2023-12-05T09:27:27",
"upload_time_iso_8601": "2023-12-05T09:27:27.271237Z",
"url": "https://files.pythonhosted.org/packages/e0/0a/08d768e9b73a791c11a236dcf716002c7be572cc2b10a15ce75d043621e8/ckanext_feedback-1.1.1.tar.gz",
"yanked": false,
"yanked_reason": null
}
],
"upload_time": "2023-12-05 09:27:27",
"github": true,
"gitlab": false,
"bitbucket": false,
"codeberg": false,
"github_user": "c-3lab",
"github_project": "ckanext-feedback",
"travis_ci": false,
"coveralls": true,
"github_actions": true,
"lcname": "ckanext-feedback"
}