relativez (企画=大原由, 開発=水野翔司)
2021
Webアプリケーション
relativez
web application

relativez は文献の引用ネットワークを可視化するWebアプリケーションです。

https://relativez.art/

Githubリポジトリ

プロジェクトの基本情報

  • 企画:大原由
  • 開発:水野翔司
  • プロジェクト期間:2021年7月26日~10月10日
  • 使用技術・環境
    • 言語:HTML、CSS、JavaScript
    • JS ライブラリ:D3.js、jQuery
    • 本番環境:Github Pages
    • 開発環境:Node.js
    • バージョン管理:git、Sourcetree

目的

  • 文献同士の関係を視覚化することで文脈が把握しやすくなること
  • 情報量が増えたときに全体をイメージしやすくすること
  • 研究に必要な文献情報を整理できること

relativez が想像する理想的なシーンは、複数の独立したアーティストが集まる場所において、個々人の持つ問題意識について、お互いがお互いにその複雑さを理解しつつ共通点を見出せる環境です。このWebアプリケーションが会話や勉強会など様々な場面で制作の一助になることを願っています。

主な機能

主要な機能であるネットワークグラフの描画はJSライブラリのD3.jsを導入して実装しました。フロントエンドのみで動作するクライアントサイドWebアプリケーションです。バックエンドはなく、外部データ取得も行いません。

データソース選択

  • relativez が独自に収集し提供する文献の引用関係データを、ネットワークグラフとしてWeb上で表現します。
  • 現状では主に芸術分野の文献データを収集して提供しています。

データソース入力

  • ユーザーが作成した文献データと引用関係データを基にしたネットワークグラフを表示できます。
  • 下記のデータ作成用テンプレートをコピーまたはダウンロードしてからデータを作成してください。
  • データ作成方法については、シート「データ作成マニュアル」を参照してください。

ネットワークグラフ仕様

  • 選択中の文献は青くハイライト表示されます。
  • 選択中の文献が引用している文献はピンクの矢印で関連づけられます。引用関係を示します。
  • 選択中の文献を引用している文献は黄色の矢印で関連づけられます。被引用関係を示します。

データ提供者として参加する

データソースを作成して提供していただくと、relativez にアクセスした他のユーザーが閲覧可能なネットワークグラフとして表示します。「データソース選択」から提供していただいたデータが選択可能になります。relativez にデータを提供していただける方は TwitterのDMでご連絡ください。

Twitter @relativez_2021

ロードマップ

  • 機能改善
    • グラフ内の複数の点を同時に選択し、移動する
    • リストを年の降順、昇順でソート
  • 提供するデータソースをコンテンツとして充実させる。
  • 外部のデータリソースとの連携は利用可能で良いリソースが見つかれば検討する。

寄付

relativez は今後の運営や開発等の費用を募っています。関心を持っていただいた方や、ご利用者の皆様からのご支援をお待ちしております。何卒よろしくお願い申し上げます。

Square 寄付用ページ

バグ報告

バグを見つけた場合は下記のどちらかで問題を報告していただけるとありがたいです。プルリクエストも受け付けています。

Release Note

2021.10.10 Ver 1.0

  • Published

License

MIT

開発者向けメモ

グラフ作成にD3.jsを利用していますがpackage.jsonでは管理されていません。

担当した作業

デザイン

ロゴと基調となるカラーパレットのみ依頼主の方に作成していただき、詳細な画面設計はこちらで行いました。工数削減のため詳細なデザインカンプは作成せずブラウザ上でデザインする手法で行いました。(インブラウザデザイン)

開発・テスト

UI、グラフ描画、データバリデーション、データ加工など必要になる処理の実装をすべて行いました。DOM Based XSSの対策を意識したコーディングを行いました。テスト仕様書を作成し主にバリデーション、XSS対策などのテストを実施しました。

また、Node.js環境でのフロントエンドプロジェクトの開発経験はなかったため、下記のようなフロントエンド開発技術を学習し取り入れることを目指して開発を行いました。

  • Node.js環境でパッケージ管理を行う。
  • gitによるソースコードのバージョン管理を行う。
  • git flowを参考にしたブランチ管理・運用を行う。
  • browserify、Babel、Terserを導入し、JSファイルのバンドル、トランスパイル、ミニファイを行う。
  • ESLint、Prettierを導入し、JSコードの構文チェックと自動フォーマット行う。
  • モジュールの仕組みをつかってJSファイル分割を行う。
  • jsdocを導入し、ドキュメンテーションコメントからAPI仕様書を自動生成できるようにする。

Creative Commons CC BY 4.0 ライセンス CC BY 4.0 ライセンスの下で利用可能です。