GithubHelp home page GithubHelp logo

nulib / digital-collections Goto Github PK

View Code? Open in Web Editor NEW
7.0 18.0 5.0 81.65 MB

ReactJS application for Northwestern Library's Digital Collections presentation layer

Home Page: https://dc.library.northwestern.edu/

HTML 0.53% JavaScript 45.46% Shell 0.02% SCSS 27.54% CSS 21.85% HCL 0.70% TypeScript 3.89%
northwestern reactjs javascript elasticsearch digital-collections

digital-collections's People

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

digital-collections's Issues

Construct details row components

Description

Construct details row component and child components. See attached screenshot.

item-detail-row-details

Done Looks Like

  • Metadata is populated and correctly linked.
  • More Details and Cite This Item buttons handle click event and take user to respective section on the page.
  • Image permalink generated and copy to clipboard functionality is wired up (separate issue).
  • Download options provided. (Maybe push this off until later).
  • Social media links/components work.

Tasks

  • Metadata is populated and correctly linked.
  • More Details and Cite This Item buttons handle click event and take user to respective section on the page.
  • Image permalink generated and copy to clipboard functionality is wired up (separate issue).
  • Download options provided. (Maybe push this off until later).
  • Social media links/components work.

Faceting for Collection Items View Part I.

Description

Need to wire up / re-use or re-purpose the forthcoming "faceting" component to work with the Collection Items view page.

Done Looks Like

  • Collection items view page items can be filtered by faceting solution.

collection-items-view

Tasks

  • See how much of existing faceting component can be used for this view / data.
  • Add 'About' section to faceting component.
  • ...more to come.

Create Collection Items component and child components

Description

Create Collection Items component and child components.

collection-items-view

Done Looks Like

  • Collections can be clicked into, and display items from within the collection.
  • Faceting, About, and Filter data are present on the page.
  • A direct route is created for navigation within the app.

Tasks

  • Wire up Solr Queries
  • Implement faceting solution/component
  • Create React Router route.
  • ...more to come.

Search Results faceting component

Description

The Search results page will have a facet component, which will filter search results views. This could spawn child issues as we move through it.

Done Looks Like

  • Search results in the list are able to be filtered through the faceting UI in the left-hand side of the page (see screenshot).

search-faceting

Tasks

(These tasks are now irrelevant and should be replaced by Reactive Search components / Elastic Search queries)

  • Create faceting component
  • Figure out what terms, metadata, we want to facet by (new issue?)
  • Create and wire up the new Solr queries
  • Create nice UX flow for updated faceted results on search results page.

Pagination strategy for Digital Collections

Description

We'll need a pagination solution for global search results, and potentially other places in Digital Collections site?

Done Looks Like

  • Pagination is in place with reasonable default.

Tasks

  • Look for existing React component solution. (Reactive Search?)
  • Create and/or implement pagination container component.

Default close global search bar on every page except homepage

Description

Keep the global search bar closed on page load (or entering a new view) by default on every page except homepage.

Done Looks Like

  • When entering a new route or page view, the global search bar is closed by default.

Tasks

  • Hook into current jQuery or find what code is controlling the opening / closing of the search bar
  • Fix so that it's closed by default.
  • Fix so it opens on homepage.

Install UV

Description

Import Universal Viewer and wire up into the page.

Done Looks Like

  • Universal Viewer properly displays an item.

Tasks

  • Install UV
  • Knowledge spike to see how it works, passes in params.
  • Ensure we have all proper data UV needs to work.
  • Create some types of parsing feature to translate Solr data to what UV requires.
    ... more to come.

child of #23

Cleanup Reactive Search UI components

Description

Clean up the UI on the Reactive Search results page to match rest of site, global marketing theme. See attached pic.

reactive-search-cleanup

Done Looks Like

  • All Reactive search components have a seamless look & feel with rest of application.

Tasks

  • Sidebar text styles
  • Search bar
  • Individual facet items (under search bar).
  • Handle long text descriptions under each display panel.
  • Style pagination

Decide upon faceted metadata

Description

How should these faceted items be generated? Hard coded by certain terms, metadata, or should this all be dynamically pulled from whatever is in Solr?

Tasks

  • Determine how we arrive at what facets get displayed.

Digital Collections Search Results Page

Description

Create the search results page for site wide, global searches against Solr for Digital Collections

Done Looks Like

  • Search submission searches active Solr data.
  • Search results page displays results, which link to individual collections/works, however this flow will go.

Tasks

  • Create a Search results route via React-router.
  • Create Search results container component which handles network communication.
  • Create Search results child components which display search results.

Create root Item Detail component and route

Description

Create the root component structure for Item Detail page. Create the route and route matching and link from home page carousel.

Done Looks Like

  • Framework of Item Details page exists.

Tasks

  • Set up initial container component structure with child components.
  • Set up routing.

child of #23

Install a React Collapsible component to replace NU Global Marketing's jQuery Collapse plugin

Description

There are timing issues in DOM rendering with NU Global Marketing's collapse plugin. Should bypass their plugin and use a React community component.

Done Looks Like

  • Collapsible components behave as expected and visually appear like the mockups.

Tasks

  • Install a React collapsible component
  • Port over the collapsible styles from NU Global Marketing into the component itself.

UV embedded player force reload

Description

UV embedded player is not reloading and displaying the updated item when route and item reload on Item Details page.

Done Looks Like

When clicking on a carousel item in the Item Details page, the UV embed player content updates along with rest of the page.

Item details meta data Item Data tab

Description

Create component(s) to display metadata on the Item Data tab.

item-detail-item-data-tab

Done Looks Like

  • Item details metadata is displayed to the page, and proper links provided.

Tasks

  • Verify we can get all the proper data from Solr query to populate metadata in comp.
  • Create a display component for each metadata data section.

Clean up Item Details row

Description

Clean up the item details row.

Done Looks Like

  • Activate the More Details and Cite This Item buttons.
  • Clean up display on Permalink form input.
  • See if we can override the social icons so they layout horizontally and have NU styling.

Tasks

  • Clean up display on Permalink form input.
  • See if we can override the social icons so they layout horizontally and have NU styling.

item-detail-page-details-row.png

Create cite this item tabbed metadata section for Item Details page

Description

Create component(s) to display metadata on the Cite this Item tab.

item-detail-item-cite-this-item-tab

Done Looks Like

  • Cite this item metadata is displayed to the page, and proper links provided.

Tasks

  • Verify we can get all the proper data from Solr query to populate metadata in comp.
  • Create a display component for each metadata data section.

Unit test all global search components

Descriptions

Write full, well documented unit tests for all global search components.

Done Looks Like

  • Jest unit tests and mock api calls made for all global search components.

blocked by #54

child of #276

Typeahead or autocomplete in global search

Description

We should re-visit how to get Autocomplete wired into the global search. Currently the global search is not using a ReactiveSearch component. Let's re-attempt to plug in the ReactiveSearch "Search" component and see if we can figure out the flow of searching on any screen, and being re-directed to the Search Results screen.

image

Done Looks Like

  • Autocomplete works in global search
  • A search kicked off on any screen successfully navigates to the Search route and displays search expected search results.

Display human readable version of date on Item details

Description

Show display_date rather than date on the item details page as this is the human readable version of the EDTF date.

Example: "circa January 1984?" will display rather than "1984?-01~"

Done Looks Like

  • Front end uses display date

Collection Items View

Description

Master issue for the Digital Collections Collection Items view:

collection-items-view

Child issues

parent of #39
parent of #40

Wire up search results page search item component

Description

Wire the search results individual item results into a component.

search-results-search-item-stub

Done Looks Like

  • Search results items are live, real data from Donut.

Tasks

  • Parse out appropriate info to display in each item.
  • Distinguish between a collection and image item.
  • Display IIIF representation of item.

Verify breadcrumbs component works with React Router

Description

Ensure breadcrumbs component exists, and works with React router as a site-wide re-usable component.

Done Looks Like

  • Breadcrumb navigation works as expected.

Tasks

  • Verify current state of breadcrumbs.
  • Drop into Item detail component.
  • Write tests.

child of #23

Add default carousel image for new collections and works

Description

When adding a new collection or item, there's a missing image in the homepage carousel(s). We should hardcode in a default image as a fallback.

Done Looks Like

  • Default image displays when adding a new collection or item and not choosing a representative image.

Tasks

  • Add a default image to application (I have one from global marketing).
  • Add logic to check for presence of a representative image, and code for either case.

Break GlobalSearch component into a container component with presentational children components

Description

Continue the pattern of container component abstraction by breaking current GlobalSearch component into a container which handles data and redux integration, then passes down props and dispatch props to children.

Done Looks Like

  • GlobalSearch becomes GlobalSearchContainer and children components are created.
  • Search functionality works exactly the same.

To Do

  • Refactor GlobalSearch into GlobalSearchContainer.
  • Create child components.

child of #276

Create carousels for item details page

Description

Create carousels for the Item Details page for Library division and Collections.

item-detail-library-division-collection-carousels

Done Looks Like

  • Carousel is created for Library division
  • Carousel if created for Collection
  • Item image itself is represented.

Tasks

  • Determine what data we need to represent Library Division in a Solr query.
  • Determine what data we need to represent Collections in a Solr query.
  • Implement Library Division images in the carousel and carousel section component.
  • Implement Collection images in the carousel and carousel section component.
  • Represent work image below carousels.

Unit test all search results page components

Description

Write full, well documented unit tests for all search results page components.

Done Looks Like

Jest unit tests and mock api calls made for all search results page components.

blocked by #54

child of #276

Figure out UV embed player timing on re-rendering

Description

UV embed player on Item Details view doesn't always update to the latest selected item.

Tasks

  • Do some console logging to figure out consistent patterns in the timing in order to trouble-shoot.
  • See if there's a better way to re-initialize the UV script, and/or display a new item (best case) without re-adding the uv embed script to the page and re-initializing.

Fix item detail page carousel items click actions

Description

Currently clicking on carousel items in the Item Details page doesn't navigate to the new view. Figure out where this is failing and fix.

Done Looks Like

  • Clicking on carousel items navigates to expected item view page.

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.