Code Monkey home page Code Monkey logo

user-stories's Introduction

Universal Viewer

A community-developed open source project on a mission
to help you share your πŸ“šπŸ“œπŸ“°πŸ“½οΈπŸ“»πŸ—Ώ with the 🌎


Sponsors on Open Collective License

@ twitterΒ Β Β Β  # slack


npm install universalviewer --save

Please note that UV v4 is designed to work on evergreen browsers. If you need IE11 support, please use UV v3. Microsoft no longer supports IE11, and it reached end-of-life on June 15 2022.


🌐 Website

Visit the UV demo page to try it out.

πŸ“– Getting Started

See the examples for how to use the UV in various scenarios.

Read the docs to learn about the various UV configuration options.

πŸ’» Contributing

Read below to learn how to take part in improving the UV:

  • Fork the repository and run the examples from source
  • Get familiar with Code of Conduct
  • Read our guide to contributing
  • Find an issue to work on and submit a pull request
    • First time contributing to open source? Pick a good first issue to get you familiar with GitHub contributing process.
    • First time contributing to the UV? Pick a beginner friendly issue to get you familiar with codebase and our contributing process.
    • Want to become a Committer? Solve an issue showing that you understand UV objectives and architecture. Here is a good list to start.
  • Could not find an issue? Look for bugs, typos, and missing features.

Contributors

πŸ… Sponsors

Become a sponsor and join our Steering Group to help guide how our sponsorship funds are allocated.

πŸ“– License

The Universal Viewer is released under the MIT license.

πŸ“– Accessibility Statement

Read our Accessibility Statement

πŸ“£ Feedback

Read below how to engage with the UV community:

  • Join the discussion on Slack.
  • Ask a question, request a new feature and file a bug with GitHub issues.
  • Star the repository to show your support ⭐

user-stories's People

Contributors

edsilv avatar

Stargazers

 avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar

user-stories's Issues

Provide a 'Help' screen

As a user

I want access to help pages

So that I resolve issues and make the most of the UV

Suggested items include:

  • Closing panels to create more screen space to view items
  • Search quality e.g. likelihood of OCR errors
  • Search extent e.g. searches available text of item, not metadata
  • Explaining (or linking out) cataloguing conventions like brackets on bibliographic information for derived information.

Support references to a specific manifest within a larger collection using a stable identifier

As a repository manager

I want to reference a specific manifest within a larger collection using a stable identifier rather than an offset

  • This can be accomplished today with a url collection.json?#m=6
    • The offset url could become unstanble
  • It would be awesome to provide an alternate format collection.json?m=aaaa-bbbb-123 which would look up the index of the manifest
  • If this suggestion seems useful, it might be good to also support lookups for canvas identifiers

So that I can add and remove content from the collection without breaking contextual links to specific item manifests.

put manifest url in a (readonly) input box

In the tab "share" of the UV, you see a box with the url to the current viewer, and below an icon that links to the manifest itself.

But unexperienced users click on that icon, and are surprised to see a popup for download, either because it is Internet Explorer, or the content-type "application/ld+json" is not recognised as json.

Wouldn't it be more clear to put a textbox with the manifest url, that you can copy? Not everyone has the reflex to do right-click-copy ..

we're trying to learn our librarians about IIIF. Things like "get the manifest url, and paste it in another iiif viewer"

User-friendly 'about' link

As a reader clicking on the 'About' link in the UV

I want a user-friendly page

So that I can learn about the UV project

Currently 'more info' goes to a github page, which is ok but not brilliant.

Add provenance information to downloaded images

As an institution

I want downloaded images not to be 'orphaned'

So that scholars can cite them and credit the institution appropriately, while others can find the source collection

Downloaded image file names (from the BL) currently contain part of the ARK but no other identifying information is available re institution or item.

Audio track selection for moving images

As a viewer of archive footage

I want to be able to choose which audio track (or tracks) I hear while watching a moving image clip

So that I can choose the audio that's most relevant to my needs

Review placement and logical grouping of icons and functions

As a user

I want easily understood icons, logically and compactly grouped

So that I can take full advantage of all the functions available

Can controls be grouped more compactly so a) it's easier for the user to see all the functions available, b) more room is available for displaying item content

Current best example: https://sok.riksarkivet.se/bildvisning/R0000004_00001?beta=true#?c=0&m=0&s=0&cv=0&z=-331.382%2C-766.4352%2C7684.764%2C6533.8704

Making aesthetic changes without multiple themes

As a website content editor or developer

I want to be able to override some aesthetic settings of the viewer embedded within my website

So that I don't have the overhead of keeping multiple themes updated

Restricting navigation to Range in reduced AV mode

As a sound archive with multiple recordings on the same carrier

I want to provide a simple user experience focused on individual recordings, one per page, not the set of recordings that happen to live together in a manifest

So that users can at least begin with a straightforward UX about the single recording, but get access get more context of its neighbouring recordings if they want it.

(Having trouble expressing this cleanly in β€œAs a…” syntax, but anyway)

The UV loads a manifest that contains many distinct recordings, modelled as Ranges. There is a web page for each recording, so that the same manifest provides the content for multiple pages. Each page initialises the UV with a range to start on. One manifest provides the content for many web pages, because each web page is about the Range.

That part is fairly clear; the UV starts playing the Range provided by the initialisation parameter, and provides navigation over that range - the manifest might have hours of recordings, but the navigation offered to the user is just the initialisation range:

minimode_range

The use can pop put the UV to full mode, where they will see the rest of the manifest. This is the UX issue - what extent of time does the scrub bar now represent? In the full view, you have control over the clock for the whole Canvas/manifest, which means the time extent offered as the whole of the scrub bar in minimode is a small part of the scrub bar when popped out.

maximode_range

BL proposal is use of visual distinction (here green colour, but needs to be accessible) to make it clear that the mini scrub bar is the same time extent as the small part of the maxi scrub bar.

Does the UV need to support (via config) the difference between minimode β€œstart at this range and only offer navigation within this range” and minimode β€œstart at this range but allow the user to use next and previous to navigate the range structure (for example, when playing an album). Compare UIs that are track focussed like iTunes and Spotify.

UV loads manifest from JSON blob

As a

... developer of applications that use the UV to display dynamically generated manifests

I want

... to be able to pass a JSON blob for the manifest to the UV and have the UV render the manifest as if it had loaded it itself

So that

... I can build applications that don't rely on a static hosted manifest

Consistency and usability of download options

As a researcher

I want 'download' to mean the same thing whether I'm on a single or double page view

So that I get consistent results without having to learn a mental model specific to the UV

Download options should be consistent across single, double page views
User should be able to: download entire item; download selection of pages; download current view (e.g. zoomed in view); download whole image.

Support rotate source images

As a

Builder of manifests that feature rotated images

I want

To be able to see my manifests in the UV

So that

Source: Jenna Schoen:

... I'm working on making a manifest from scratch, and having trouble rotating my images. I've tried rotating them directly through the URL (which worked on the URL but didn't load on Universal Viewer), with a selector (which didn't change the image on Universal Viewer), and via the CSS route (which didn't load on Universal Viewer). Do you have any suggestions? Thanks a bunch in advance!!

Download individual article from a Journal

As a National Library of Wales Journals user

I can choose to download the article I am viewing as a pdf

So that I can limit my digital copy to the pages where the article I require appears

Embed Content

As a member of the public or researcher viewing content in the UV

I want to be able to embed this content

So that others can see it in the context of my blog/web page

Search generated text

I want to search the transcription text

So that I can find content that is of interest to me

Terms of Use dialogue box

As a National Library of Wales Journals user

I can find out what I can and can't do with the content I want to download

So that I know whether or not I can use this for the purpose intended

View highlighted search results

I want to see my search results highlighted on the transcription and the image

So that I can easily and quickly find my results

Overlaying images on canvas

As a museum that carries out scientific and conservation work on our items that generate images from different parts of the light spectrum

I want to be able to overlay those images onto the canvas

So that users can choose which parts of the spectrum to see

Support 2 page view when rendering a PDF in UV

As a

Repository manager hosting PDF content in my repository

I want

To be able to create manifest files for PDF content that support 2 pages side by side in UV

So that

my patrons can have a book-view experience browsing the content of my PDF's

Make the Viewer keyboard accessible

From Fluent tests, April 2019:
The viewer is not currently keyboard accessible.
Keyboard arrows can only be used as a way of navigating the item when the item has been clicked on. The visually impaired user in particular who defaulted to using the keyboard arrows was confused when this did not work due to the item needing to be clicked on first. Also, the thumbnails or the actual item cannot be selected. As a results, a keyboard-only user cannot navigate to different screenshots and cannot pan around the image with unless they select the image with the mouse.
Consider the keyboard accessibility of the viewer and make it keyboard accessible (e.g. by clearly showing where the focus is and by making the thumbnails and item accessible by tabbing)

As a keyboard user (for accessibility or efficiency reason)

I want to be able to navigate without the mouse

So that I can access content

Print issues

As a library user printing from the 'print' button or via the browser

I want to print an image from the UV

The issue here is quality - print works, but doesn't behave as users might reasonably expect.

Printing from the browser currently prints the page, rather than the image, so the actual image size is much smaller than a user would expect.
Image controls (zoom, overview box) leave blank regions on the page.
uv3 print_22082018_130326-3

So that I can annotate or refer to it offline

Download whole issue of a Journal

As a National Library of Wales Journals user

I can choose to download the complete issue I am viewing as a pdf

So that I can view the whole issue of that Journal without accessing the website.

Intermediate mode layout

As a sound archive aimed at the interested public

I want to allow users to switch between a very simple user interface for audio (scrub, play, volume) that focuses on an individual Range (as per #6) and one that shows more metadata, but is NOT the full mode Universal Viewer with full access to the Manifest - it still focuses on the Range

So that we still focus attention on the Range (track, recording) rather than the Manifest that contains many Ranges.

This introduces a new display layout/mode for the UV, which is significant:

midi-mode2

(source: BL)

Questions:

what UI toggles between the two, and how does that relate to full screen, and/or toggling to the regular UV mode, which may or may not be F11-style full screen?

Review usability of icons

As a user

I want easily understood icons, logically and compactly grouped

So that I can take full advantage of all the functions available

Previous usability work found that the settings cog is ignored by most people, the chevrons which indicate open/close panels aren't noticed by users, the meanings of the embed and share icons aren't recognised, the 'More information' panel is missed by some and might benefit from a standard icon ('i'?)

Provide search within a PDF Document

As a

Researcher viewing a digitized PDF document in the Universal Viewer

I want

to search the full text of the document (if available in the pdf)

So that

I can find a paragraph/article of interest.

Context

At Georgetown, we have implemented a PDF document viewer using a javascript based package called FlexPaper. See the "bookview" link at https://repository.library.georgetown.edu/handle/10822/1047689 . It will take a minute for the PDF to download. Once it has downloaded, you will see that full text searching is enabled.

Eventually, we would like to replace our FlexPaper viewer with the Universal Viewer. In order to accomplish this, it would be particularly useful to have a within-document search available in a PDF.

I suspect that this solution would require us to convert the document full text into an annotation.

Add option to disable scroll to zoom

As a developer

I want to disable scroll to zoom on OpenSeaDragon

So that users can more easily scroll past the contents of the UV and on to the rest of the page

Supporting info:

  • as is suggested here, by adding a scrollToZoomEnabled parameter to SeadragonCenterPanel

Displaying transcribed or translated text

As a reader of a handwritten or foreign language document

I want to view translation or transcription text

So that I can understand the document

Comment from a user: Will there be a plain text window? Like there is in the JISC databases like Historical Texts? These can be useful for people not used to reading early printed letter-press.

Provide colour manipulation of an image

As a

Researcher viewing a digitized image of a record

I want

to be able to manipulate the colours of the image I am viewing

So that

it is easier to view handwriting and text

Group links under one heading (manifest)

As a visitor to a 'learning' site

I want to see all the links related to a collection item in one place

  • In their implementation of IIIF for the Polonsky pre-1200 project, the BnF have grouped Links under one heading, which might be a neat way of grouping the IIIF manifest address, catalogue link and links to Learning pages (e.g. https://demogallica.bnf.fr/pl/ark:/12148/btv1b105395234/f8?lang=en)
  • Helping people understand how partial items on Learning pages relate to full digitised catalogue items is a key usability concern; Links might provide a useful form of signposting

So that I can follow the trail to the next relevant page

Option to view enriched content

I want to view a digital image and see that there is enriched content available

So that I can choose to access it if I want to learn more about the item

Side-by-side view (curator-selected)

As a curator

I want to select two items for side-by-side display

So that I can create pages about comparative works (e.g. two editions of a printed work)

Providing access to more content _of_ the object

As a library generating content associated with digitised resources through crowdsourcing and machine processes including OCR

we want as much data created by volunteers/machines/staff to end up in strategic / discovery systems as possible

So that people have access to the richness of content we have for our objects

Downloaded PDFs to have more precise names (BL)

As a researcher

I want downloaded PDFs to have non-generic names, ideally based on titles (or identifiers for items without titles) used in manifests

So that my downloads folder isn't full of 'From The British Library(19).pdf' which are hard to track and easy to overwrite

Search field input should accept diacritical characters, punctuation etc

As a researcher

I want to search for words and phrases that include accented characters and specific punctuation including quotes, hyphens and apostrophes

So that our scholarship isn't Anglocentric?

This may require updates to both the search box and the search service (regardless of other issue re indexing multilingual text).

Contextual viewing of selected text and digital image

I want to select a word in the transcription and see the corresponding word/region highlighted on the digital image (and vice versa)

So that I can compare specific parts of the transcription to the original image

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    πŸ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. πŸ“ŠπŸ“ˆπŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❀️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.