Skip to content

lottec-ufpb/populus-viewer

Repository files navigation

Populus-Viewer

Social Annotation Powered by Matrix

Populus-Viewer is a tool for decentralized social annotation, built on pdfjs, wavesurfer.js and the Matrix protocol. You can use it to read PDFs, listen to audio, or watch videos, and have rich discussions in the margins, with your friends, classmates, or scholarly collaborators.

Each uploaded file is attached to a Matrix space, and each annotation to the file becomes a room within that space. Populus-Viewer has been tested with synapse and dendrite, but should be compatible with any spec-compliant Matrix server.

To learn more or talk about the project, find us on Matrix. The project should currently be considered beta-quality. UX is unpolished, bugs are likely, and features are missing. Bug reports and feature requests are welcome.

Features

recording.mp4

Populus-Viewer currently supports:

  • Highlight and pin-drop annotations on PDFs
  • Timespan annotations on audio and video files
  • Annotating spatial regions of images and video files
  • Audio and video messages
  • Message edits and redactions
  • Replies and reactions
  • Unread message counts
  • Markdown for text formatting (via commonmark.js)
  • LaTeX for mathematical notation (via KaTeX)
  • Integration with bots
  • Typing notifications
  • Room invitations
  • Synchronized reading positions across devices
  • Single Sign On (via Google, university, or another SSO provider), given a Matrix server that supports it

If there's a feature supported by Matrix that you think would make for a better social annotation experience, please open an issue or a PR!

Populus' annotations are stored on your Matrix server in a format compatible with the w3c Web Annotation Data Model. The details are documented in a couple of related Matrix spec proposals:

Usage

To try out Populus-Viewer, just point your browser at our github pages instance. To log in, you and other persons engaging in the discussions need an account in a Matrix server. You don't need to be all on the same server as long as they are federating amongst themselves. Also be aware that Populus-Viewer currently does not support end-to-end encryption (E2EE). Although uncommon, some servers are configured to enforce E2EE. In that case, Populus-Viewer may not work properly.

To get started tinkering with the source code, clone this repository and then run:

  • npm install to download dependencies and install them locally.
  • npm run-script build to build the browser JS, which will end up in the dist directory.
  • npm run-script serve to serve the contents of dist at localhost:9000, and auto-reload on changes.

Prior Art

Similar projects include:

Releases

No releases published

Packages

No packages published

Contributors 4

  •  
  •  
  •  
  •