Code Monkey home page Code Monkey logo

atla-hyku's Introduction

Hyku, the Hydra-in-a-Box Repository Application

Code: Build Status Coverage Status Stories in Ready

Docs: Documentation Contribution Guidelines Apache 2.0 License

Jump In: Slack Status


Table of Contents


Running the stack

For development / testing with Docker

Dory

On OS X or Linux we recommend running Dory. It acts as a proxy allowing you to access domains locally such as hyku.test or tenant.hyku.test, making multitenant development more straightforward and prevents the need to bind ports locally. Be sure to adjust your ~/.dory.yml file to support the .test tld. You can still run in development via docker with out Dory. To do so, copy docker-compose.override-nodory.yml to docker-compose.override.yml before starting doing docker-compose up. You can then see the application at the loopback domain 'lvh.me:3000'.

gem install dory
dory up

Basic steps

docker-compose up web

This command starts the whole stack in individual containers allowing Rails to be started or stopped independent of the other services. Once that starts (you'll see the line Passenger core running in multi-application mode. to indicate a successful boot), you can view your app in a web browser with at either hyku.test or localhost:3000 (see above). When done docker-compose stop shuts down everything.

Tests in Docker

The full spec suite can be run in docker locally. There are several ways to do this, but one way is to run the following:

docker-compose exec web rake

With out Docker

Please note that this is unused by most contributors at this point and will likely become unsupported in a future release of Hyku unless someone in the community steps up to maintain it.

For development

solr_wrapper
fcrepo_wrapper
postgres -D ./db/postgres
redis-server /usr/local/etc/redis.conf
bin/setup
DISABLE_REDIS_CLUSTER=true bundle exec sidekiq
DISABLE_REDIS_CLUSTER=true bundle exec rails server -b 0.0.0.0

For testing

See the Hyku Development Guide for how to run tests.

Working with Translations

You can log all of the I18n lookups to the Rails logger by setting the I18N_DEBUG environment variable to true. This will add a lot of chatter to the Rails logger (but can be very helpful to zero in on what I18n key you should or could use).

$ I18N_DEBUG=true bin/rails server

On AWS

AWS CloudFormation templates for the Hyku stack are available in a separate repository:

https://github.com/hybox/aws

With Docker

We distribute two docker-compose.yml configuration files. The first is set up for development / running the specs. The other, docker-compose.production.yml is for running the Hyku stack in a production setting. . Once you have docker installed and running, launch the stack using e.g.:

docker-compose up -d web

Note: You may need to add your user to the "docker" group.

newgrp docker

With Vagrant

The samvera-vagrant project provides another simple way to get started "kicking the tires" of Hyku (and Hyrax), making it easy and quick to spin up Hyku. (Note that this is not for production or production-like installations.) It requires VirtualBox and Vagrant.

With Kubernetes

Hyku relies on the helm charts provided by Hyrax. See Deployment Info for more information. We also provide a basic helm deployment script. Hyku currently needs some additional volumes and ENV vars over the base Hyrax. See (ops/review-deploy.tmpl.yaml) for an example of what that might look like.

Single Tenant Mode

Much of the default configuration in Hyku is set up to use multi-tenant mode. This default mode allows Hyku users to run the equivielent of multiple Hyrax installs on a single set of resources. However, sometimes the subdomain splitting multi-headed complexity is simply not needed. If this is the case, then single tenant mode is for you. Single tenant mode will not show the tenant sign up page, or any of the tenant management screens. Instead it shows a single Samvera instance at what ever domain is pointed at the application.

To enable single tenant, set HYKU_MULTITENANT=false in your docker-compose.yml and docker-compose.production.yml configs. After changinig this setting, run rails db:seed to prepopulate the single tenant.

In single tenant mode, both the application root (eg. localhost, or hyku.test) and the tenant url single.* (eg. single.hyku.test) will load the tenant. Override the root host by setting HYKU_ROOT_HOST`.

To change from single- to multi-tenant mode, change the multitenancy/enabled flag to true and restart the application. Change the 'single' tenant account cname in the Accounts edit interface to the correct hostname.

Switching accounts

There are three recommend ways to switch your current session from one account to another by using:

switch!(Account.first)
# or
switch!('my.site.com')
# or
switch!('myaccount')

Analytics Feature

Hyku currently only supports the configuration of one Google Analytics account for the basic functionality of this feature. Hyku currently only support Google Analytics with the Universal Analytics property for this feature.

Note: Google has announced they will stop processing data using the Universal Analytics property on July 1, 2023 or July 1, 2024 for Analytics 360 properties.

To enable analytics tracking and reporting features within Hyku, please follow the directions below.

Setup a Google Analytics Account

Set the Environment Variables

In Hyku there are a few areas to set the environment variables needed for each of your environments development/staging/prodeuction/etc.

  • Uncomment the config/analytics.yml file where the below mentioned environment variables will connect to our application.
analytics:
  google:
    analytics_id: <%= ENV['GOOGLE_ANALYTICS_ID'] %>
    app_name: <%= ENV['GOOGLE_OAUTH_APP_NAME'] %>
    app_version: <%= ENV['GOOGLE_OAUTH_APP_VERSION'] %>
    privkey_path: <%= ENV['GOOGLE_OAUTH_PRIVATE_KEY_PATH'] %>
    privkey_secret: <%= ENV['GOOGLE_OAUTH_PRIVATE_KEY_SECRET'] %>
    client_email: <%= ENV['GOOGLE_OAUTH_CLIENT_EMAIL'] %>
  • For local development please see the .env file and see the "Enable Google Analytics" section.
##START## Enable Google Analytics
# Uncomment to enable and configure Google Analytics, see README for instructions.
HYRAX_ANALYTICS=true
GOOGLE_ANALYTICS_ID=UA-123456-12
GOOGLE_OAUTH_APP_NAME=hyku-demo
GOOGLE_OAUTH_APP_VERSION=1.0
GOOGLE_OAUTH_PRIVATE_KEY_SECRET=not-a-secret
GOOGLE_OAUTH_PRIVATE_KEY_PATH=prod-cred.p12
[email protected]

# AND comment this out
# HYRAX_ANALYTICS=false
##END## Enable Google Analytics
  • For deployment to staging/production please update/add the variables and values to the helm values files located in the ops directory (example: staging-deploy.tmpl.yaml).
  - name: GOOGLE_ANALYTICS_ID
    value: $GOOGLE_ANALYTICS_ID # Set in GitHub's Environment Secrets
  - name: GOOGLE_OAUTH_APP_NAME
    value: hyku-demo
  - name: GOOGLE_OAUTH_APP_VERSION
    value: '1.0'
  - name: GOOGLE_OAUTH_PRIVATE_KEY_SECRET
    value: $GOOGLE_OAUTH_PRIVATE_KEY_SECRET # Set in GitHub's Environment Secrets
  - name: GOOGLE_OAUTH_PRIVATE_KEY_PATH
    value: prod-cred.p12 # The p12 file is in root and named `prod-cred.p12`
  - name: GOOGLE_OAUTH_PRIVATE_KEY_VALUE
    value: $GOOGLE_OAUTH_PRIVATE_KEY_VALUE # Set in GitHub's Environment Secrets
  - name: GOOGLE_OAUTH_CLIENT_EMAIL
    value: [email protected]
  - name: HYRAX_ANALYTICS
    value: 'true'

To get the GOOGLE_OAUTH_PRIVATE_KEY_VALUE value to set the variable in GitHub's Environment Secrets, you need the path to the p12 file you got from setting up your Google Service Account and run the following in your console locally.

base64 -i path/to/file.p12 | pbcopy

Once you run this script the value is on your local computers clipboard. You will need to paste this into GitHubs Environment Secrets or however you/your organization are handling secrets.

Environment Variables

Name Description Default Development or Test Only
CHROME_HOSTNAME specifies the chromium host for feature specs chrome yes
DB_ADAPTER which Rails database adapter, mapped in to config/database.yml. Common values are postgresql, mysql2, jdbc, nulldb postgresql no
DB_HOST host name for the database db no
DB_NAME name of database on database host hyku no
DB_PASSWORD password for connecting to database no
DB_PORT Port for database connections 5432 no
DB_TEST_NAME name of database on database host for tests to run against. Should be different than the development database name or your tests will clobber your dev set up hyku_test yes
DB_USER username for the database connection postgres no
FCREPO_BASE_PATH Fedora root path /hykudemo no
FCREPO_DEV_BASE_PATH Fedora root path used for dev instance /dev yes
FCREPO_DEVELOPMENT_PORT Port used for fedora dev instance 8984 yes
FCREPO_HOST host name for the fedora repo fcrepo no
FCREPO_PORT port for the fedora repo 8080 no
FCREPO_REST_PATH Fedora REST endpoint rest no
FCREPO_STAGING_BASE_PATH Fedora root path used for dev instance /staging no
FCREPO_TEST_BASE_PATH Fedora root path used for test instance /test yes
FCREPO_TEST_PORT Test port for the fedora repo 8986 yes
GOOGLE_ANALYTICS_ID The Google Analytics account id. Disabled if not set - no
GOOGLE_OAUTH_APP_NAME The name of the application. - no
GOOGLE_OAUTH_APP_VERSION The version of application. - no
GOOGLE_OAUTH_PRIVATE_KEY_SECRET The secret provided by Google when you created the key. - no
GOOGLE_OAUTH_PRIVATE_KEY_PATH The full path to your p12, key file. - no
GOOGLE_OAUTH_PRIVATE_KEY_VALUE The value of the p12 file with base64 encryption, only set on deployment as that is how we get the p12 file on the server (see bin/web & bin/worker files) - no
GOOGLE_OAUTH_CLIENT_EMAIL OAuth Client email address. [email protected] no
HYKU_ADMIN_HOST URL of the admin / proprietor host in a multitenant environment hyku.test no
HYKU_ADMIN_ONLY_TENANT_CREATION Restrict signing up a new tenant to the admin false no
HYKU_ALLOW_SIGNUP Can users register themselves on a given Tenant true no
HYKU_ASSET_HOST Host name of the asset server - no
HYKU_BULKRAX_ENABLED Is the Bulkrax gem enabled true no
HYKU_BULKRAX_VALIDATIONS Unused, pending feature addition by Ubiquity - no
HYKU_CACHE_API Use Redis instead of disk for caching false no
HYKU_CACHE_ROOT Directory of file cache (if CACHE_API is false) /app/samvera/file_cache no
HYKU_CONTACT_EMAIL Email address used for the FROM field when the contact form is submitted [email protected] no
HYKU_CONTACT_EMAIL_TO Email addresses (comma separated) that receive contact form submissions [email protected] no
HYKU_DEFAULT_HOST The host name pattern each tenant will respond to by default. %{tenant} is substituted for the tenants name. "%{tenant}.#{admin_host}" no
HYKU_DOI_READER Does the work new / edit form allow reading in a DOI from Datacite? false no
HYKU_DOI_WRITER Does saving or updating a work write to Datacite once the work is approved false no
HYKU_ELASTIC_JOBS Use AWS Elastic jobs for background jobs false no
HYKU_EMAIL_FORMAT Validate if user emails match a basic email regexp (currently /@\S*.\S*/) false no
HYKU_EMAIL_SUBJECT_PREFIX String to put in front of system email subjects - no
HYKU_ENABLE_OAI_METADATA Not used. Placeholder for upcoming OAI feature. false no
HYKU_FILE_ACL Set Unix ACLs on file creation. Set to false if using Azure cloud or another network file system that does not allow setting permissions on files. true no
HYKU_FILE_SIZE_LIMIT How big a file do you want to accept in the work upload? 5242880 (5 MB) no
HYKU_GEONAMES_USERNAME Username used for Geonames connections by the application '' no
HYKU_GOOGLE_SCHOLARLY_WORK_TYPES List of work types which should be presented to Google Scholar for indexing. Comma separated WorkType list - no
HYKU_GTM_ID If set, enable Google Tag manager with this id. - no
HYKU_LOCALE_NAME Not used. Placeholder for upcoming Ubiquity feature en no
HYKU_MONTHLY_EMAIL_LIST Not used. Placeholder for upcoming Ubiquity feature en no
HYKU_MULTITENANT Set application up for multitenantcy, or use the single tenant version. false no
HYKU_OAI_ADMIN_EMAIL OAI endpoint contact address [email protected] no
HYKU_OAI_PREFIX OAI namespace metadata prefix oai:hyku no
HYKU_OAI_SAMPLE_IDENTIFIER OAI example of what an identify might look like 806bbc5e-8ebe-468c-a188-b7c14fbe34df no
HYKU_ROOT_HOST What is the very base url that default subdomains should be tacked on to? hyku.test no
HYKU_S3_BUCKET If set basic uploads for things like branding images will be sent to S3 - no
HYKU_SHARED_LOGIN Not used. Placeholder for upcoming Ubiquity feature en no
HYKU_SMTP_SETTINGS String representing a hash of options for tenant specific SMTP defaults. Can be any of from user_name password address domain port authentication enable_starttls_auto - no
HYKU_SOLR_COLLECTION_OPTIONS Overrides of specific collection options for Solr. {async: nil, auto_add_replicas: nil, collection: { config_name: ENV.fetch('SOLR_CONFIGSET_NAME', 'hyku') }, create_node_set: nil, max_shards_per_node: nil, num_shards: 1, replication_factor: nil, router: { name: nil, field: nil }, rule: nil, shards: nil, snitch: nil} no
HYKU_SSL_CONFIGURED Force SSL on page loads and IIIF manifest links false no
HYKU_WEEKLY_EMAIL_LIST Not used. Placeholder for upcoming Ubiquity feature en no
HYKU_YEARLY_EMAIL_LIST Not used. Placeholder for upcoming Ubiquity feature en no
HYRAX_ACTIVE_JOB_QUEUE Which Rails background job runner should be used? sidekiq no
HYRAX_FITS_PATH Where is fits.sh installed on the system. Will try the PATH if not set. /app/fits/fits.sh no
HYRAX_REDIS_NAMESPACE What namespace should the application use by default hyrax no
I18N_DEBUG See [Working with Translations] above false yes
INITIAL_ADMIN_EMAIL Admin email used by database seeds. [email protected] no
INITIAL_ADMIN_PASSWORD Admin password used by database seeds. Be sure to change in production. testing123 no
IN_DOCKER Used specs to know if we are running inside a container or not. Set to true if in K8S regardless of Docker vs ContainerD false yes
LD_LIBRARY_PATH Path used for fits /app/fits/tools/mediainfo/linux no
NEGATIVE_CAPTCHA_SECRET A secret value you set for the appliations negative_captcha to work. default-value-change-me no
RAILS_ENV https://guides.rubyonrails.org/configuring.html#creating-rails-environments development no
RAILS_LOG_TO_STDOUT Redirect all logging to stdout true no
RAILS_MAX_THREADS Number of threads to use in puma or sidekiq 5 no
REDIS_HOST Host location of redis redis no
REDIS_PASSWORD Password for redis, optional - no
REDIS_URL Optional explicit redis url, build from host/passsword if not specified redis://:staging@redis:6397/ no
SECRET_KEY_BASE Used by Rails to secure sessions, should be a 128 character hex - no
SMTP_ADDRESS Address of the smtp endpoint for sending email - no
SMTP_DOMAIN Domain for sending email - no
SMTP_PASSWORD Password for email sending - no
SMTP_PORT Port for email sending - no
SMTP_USER_NAME Username for the email connection - no
SOLR_ADMIN_PASSWORD Solr requires a user/password when accessing the collections API (which we use to create and manage solr collections and aliases) admin no
SOLR_ADMIN_USER Solr requires a user/password when accessing the collections API (which we use to create and manage solr collections and aliases) admin no
SOLR_COLLECTION_NAME Name of the Solr collection used by non-tenant search. This is required by Hyrax, but is currently unused by Hyku hydra-development no
SOLR_CONFIGSET_NAME Name of the Solr configset to use when creating new Solr collections hyku no
SOLR_HOST Host for the Solr connection solr no
SOLR_PORT Solr port 8983 no
SOLR_URL URL for the Solr connection http://admin:admin@solr:8983/solr/ no
WEB_CONCURRENCY Number of processes to run in either puma or sidekiq 2 no

Development Dependencies

Postgres

Hyku supports multitenancy using the apartment gem. apartment works best with a postgres database.

Importing

Bulkrax:

Bulkrax is enabled by default and CSV, OAI and XML importers can be used in the admin dashboard or through the command line API. More info about configuring and using bulkrax can be found here

Commandline Importers

Importing from CSV and PURL directly can be done via Bulkrax and the built in code in Hyku is slated for deletion in the next release.

Compatibility

  • Ruby 2.7 is recommended. Later versions may also work.
  • Rails 5.2 is required.

Product Owner

orangewolf

Help

The Samvera community is here to help. Please see our support guide.

Acknowledgments

This software was developed by the Hydra-in-a-Box Project (DPLA, DuraSpace, and Stanford University) under a grant from IMLS.

This software is brought to you by the Samvera community. Learn more at the Samvera website.

Samvera Logo

atla-hyku's People

Contributors

jcoyne avatar mjgiarlo avatar cbeer avatar orangewolf avatar summer-cook avatar aprilrieger avatar danhorst avatar atz avatar labradford avatar jeremyf avatar kirkkwang avatar dependabot[bot] avatar cjcolvar avatar ckarpinski avatar laritakr avatar bkiahstroud avatar tdonohue avatar shanalmoore avatar nwoodward avatar alishaevn avatar dazza-codes avatar sephirothkod avatar diembtran avatar cldambrosio avatar dlpierce avatar bbranan avatar selamhabteab avatar prdanelli avatar aeschylus avatar eefahy avatar

Watchers

Tim avatar  avatar Christine Peterson avatar

atla-hyku's Issues

Upgrade hyku to bring in AV, iiif-print, and bulkrax upgrade.

Summary

We contributed #16 iiif_print and a bulkrax upgrade and #17 AV in viewer back to hyku, and now need to bring in those changes into atla-hyku.

Acceptance Criteria

  • atla-hyku is upgraded to a version of hyku that has iiif_print and AV in viewer.

Testing instructions

  • Upload a mp3 file and confirm that that you can play the file in the UV
  • Upload a short mp4 video file and confirm you can play the file in the UV.
  • Aspect ratios on the UV should not be distorted. If distorted make a new ticket.
  • Test that a simple CSV can be importer through bulkrax. Make a new ticket in case of failures.
  • Test that you can export the same works. Make a new ticket in case of failures.
  • OCR:
    • When importing or uploading PDFs, the PDF has jpg derivatives that show in the viewer
    • OCR is created. From the PDF parent work > scroll down to Items > click one of the child JPG derivative works to navigate to its show page > scroll down to Items > Actions dropdown > Download (as txt)
    • You can search for this text within the tenant at the Search Hyku search bar in the top nav. Searching for this text will show results for the PDF parent work
    • You can search for that text within the UV. It should highlight all instances of that text within the work. This will be addressed in #47
Click to view screen recording: how to test OCR
Screen.Recording.2023-05-04.at.09.26.37.AM.mp4
  • (0:00) When importing or uploading PDFs, the PDF has jpg derivatives that show in the viewer
  • (0:07) OCR is created. From the PDF parent work > scroll down to Items > click one of the child JPG derivative works to navigate to its show page > scroll down to Items > Actions dropdown > Download (as txt)
  • (0:30) You can search for this text within the tenant at the Search Hyku search bar in the top nav. Searching for this text will show results for the PDF parent work
  • (0:50) You can search for that text within the UV. It should highlight all instances of that text within the work. This will be addressed in #47

Notes

Discuss whether or not we want to make tickets failures above, or if they should be fixed at part of this ticket.

Run autogeneration of translations

Story

When worktypes are all completed, autogenerate missing translations.

RUN AUTO TRANSLATION:
# Generate translations in Hyku
# add google api key to your .env.development file
GOOGLE_TRANSLATE_API_KEY=<GET KEY FROM TEAM>
# then, for english to brazilian portuguese
sc be i18n-tasks translate-missing --from en pt-BR

Relies on completion of:
#24
#22
#23

Acceptance Criteria

  • Generic work new/edit work form
    • de translations generated
    • es translations generated
    • fr translations generated
    • it translations generated
    • pt-BR translations generated
    • zh translations generated
  • Generic work work show page
    • de translations generated
    • es translations generated
    • fr translations generated
    • it translations generated
    • pt-BR translations generated
    • zh translations generated
  • ETD new/edit work form
    • de translations generated
    • es translations generated
    • fr translations generated
    • it translations generated
    • pt-BR translations generated
    • zh translations generated
  • ETD work show page
    • de translations generated
    • es translations generated
    • fr translations generated
    • it translations generated
    • pt-BR translations generated
    • zh translations generated
  • Paper or Report new/edit work form
    • de translations generated
    • es translations generated
    • fr translations generated
    • it translations generated
    • pt-BR translations generated
    • zh translations generated
  • Paper or Report work show page
    • de translations generated
    • es translations generated
    • fr translations generated
    • it translations generated
    • pt-BR translations generated
    • zh translations generated

Screenshots / Video

Testing Instructions and Sample Files

  • Change the language with the language picker
  • Check new/edit form and work show page to make sure there are no missing translations

Notes

playbook: https://playbook-staging.notch8.com/en/samvera/hyrax/how_to/generate_translations
tutorial: https://support.cloudapplications.jp/faq/4329/?lang=en

OCR text search in the UV - improve

Currently in the UV for PDF files that have the print gem OCR going on

  • if you search more than one word it only searches for the first word.
  • If you search with quotes around it it will search the whole phrase but does not highlight it

We would like it to search all the words and highlight it.

When the work being done on this for Adventist is done we would like to look at the possibility of improving ours

Normalize Subject Field

Summary

Subject will not be a controlled vocabulary except that it will be normalized to include special capitalization. see info here: https://docs.google.com/spreadsheets/d/1cyTtAofi2g1sx0ATJuP7ws-77a7OzBXF/edit#gid=785133840

For subject add logic to force first letter capitalization. Strip out trailing periods and trailing spaces (like DL has)

Related

EPIC: #8

Testing Instructions

Create a work for each worktype.

Generic

  • Enter a subject. Also add a period and trailing spaces. After saving the first letter should be uppercase. And there should be no periods or training spaces.

ETD

  • Enter a subject. Also add a period and trailing spaces. After saving the first letter should be uppercase. And there should be no periods or training spaces.

Paper or Report

Notes

Controlled Fields Bulkrax import

Summary

For atla-hyku when a item is trying to be imported and one of the controlled fields does not match the controlled list vocabulary they need a way to know this and fix the record. Blocking import of the record if the field does not match an item on the list will give them a bulkrax error on that item and let them know they need to fix the item before importing again.

Screenshot

Example error for rights statement
Image

Acceptance Criteria

  • If an item has an entry in a column that does not match an item on the controlled vocabs yaml, when imported through bulkrax, bulkrax should error on this record and not import said record. The record should show as errored and show the reason so they can fix the item.

Controlled Vocabs that should have errors with incorrect values upon import:

  • Rights statement
  • Types
  • Resource Type
  • Year (should only error for ETDs)
  • Format
  • Institution

Testing instructions

  1. Use this test csv that already contains 1 work each with an error in each controlled field:
    controlled-fields-test.csv
    or create your own that has incorrect values in the following fields
  • Rights statement
  • Types
  • Resource Type
  • Year (should only error for ETDs)
  • Format
  • Institution
  1. Check that the import fails for all the works that are expected to fail, an error appears on the work after the import completes with failures

Notes

  • having errors show all at one time would be a fundamental change to how bulkrax works

Update hyku to the newest version of iiif-print and bulkrax

Summary

iiif-print has been included in the newest non released version of hyku. We want to update both iiif-print and bulkrax (as development has occurred to make them work better together) and test for if we can do a release.

Related

SPIKE for this ticket: #3

Acceptance Criteria

  • importing with the csv parser
  • importing with the bagit parser
  • importing with the xml parser
  • importing with the oai parser
  • exporting with the csv parser
  • exporting with the bagit parser
  • The app has been run locally and you can see a pdf in the viewer. This may require enabling jp2 create for pdfs on all worktypes

Testing Instructions

In its current state this is not end user testable. Once this is contributed back to hyku we will pull these changes into atla-hyku, and it can be tested by QA at that point.

After merging into hyku and verifying it works locally this ticket can be closed.

Notes

Search results pg truncate description to 300 characters

There is code from ucla oh that creates a helper method for the catalog controller fields to truncate at 300 charters. Implement this for the search results page description field.

add this to the application_helper.rb file:

# rubocop:disable Rails/OutputSafety
  def index_filter(options = {})
    options[:value][0].truncate(300).to_s.html_safe
  end
  # rubocop:enable Rails/OutputSafety

Then you can call the helper method like this to the field you want to be truncated:

    config.add_index_field 'description_tesim', itemprop: 'description', helper_method: 'index_filter'

We need this in all work types:

  • GenericWork: example:
  • ETD

Testing Instructions

  • Create the following works. Give each of them a long description (over 300 characters)
    • ETD
    • Generic Work
    • Sample text block:
      • Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Aenean commodo ligula eget dolor. Aenean massa. Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. Donec quam felis, ultricies nec, pellentesque eu, pretium quis, sem. Nulla consequat massa quis enim doneci. This is sentence is past 300 characters.
  • Search for each of these works in the search catalog: Search Hyku search bar at the top
  • Verify that each workโ€™s description truncates at 300 characters

Other info from Christy

  • We will use the domain name ir.atla.com (permanent not temp)
  • Email set up using the same as DL
  • Metadata facets are indicated on spreadsheet
  • Help text for fields is in a column in the spreadsheet
  • Work type name is going to be "Paper or Report"
  • The description for this worktype to go on the modal - "Technical reports, conference papers, grant or other project reports, and similar works."
  • Search results page - works should show these fields: Title, Creator, Description (with character limit), Resource Type

ATLA hyku repo setup

Summary

Initial setup for docker hyku

Acceptance criteria

  • Github repo exists
  • Registries pushed to docker
  • As a developer I can spin up the atla-hyku app
  • As a developer I can create a work with a file

Controlled Vocabularies - Institution and Resource Type

Summary

These are the controlled vocabularies needed for ATLA: https://docs.google.com/spreadsheets/d/1cyTtAofi2g1sx0ATJuP7ws-77a7OzBXF/edit#gid=785133840

  • Institution field (used across work types)
  • Update Resource Type to ATLA list. [3]

Related

EPIC : #8

Acceptance Criteria

  • Institution and Resource Type are controlled fields across all worktypes. List matches spreadsheet in Summary

Testing Instructions

Create a work for each worktype.

Generic

  • Institution and Resource Type are controlled fields. List matches spreadsheet in Summary

ETD

  • Institution and Resource Type are controlled fields. List matches spreadsheet in Summary

Paper or Report

  • Institution and Resource Type are controlled fields. List matches spreadsheet in Summary

Notes

Troubleshoot Exporter

Summary

When doing a Bulkrax export, not all metadata is appearing in the exported CSV file.

Add mappings for all worktype metadata for exporters

https://docs.google.com/spreadsheets/d/1cyTtAofi2g1sx0ATJuP7ws-77a7OzBXF/edit#gid=1372594593

Acceptance Critera

  • When a metadata only export is run, all metadata shows up in the CSV

Testing Instructions

  • Login as admin
  • Visit the Exporters page on the Dashboard
  • Create a new Exporter (metadata only)
  • Download the exported items
  • View CSV and make sure all metadata is included

Implementation

Either manually add all the mapping or update bulkrax to export everything with default headers. Bulkrax will import without mapping with default headers. It should do the same for exporting.

Update hyku to include AV gem for audio and video in UV

Summary

The AV gem has now been installed in both UTK and BL. It needs to be moved into hyku, and hopefully released with iiif-print.

This is the PR for BL that you can use to add AV - scientist-softserv/britishlibrary#266

Related

SPIKE for this ticket: #3

Acceptance Criteria

  • hyrax-iiif-av gem has been added to hyku.
  • customizations or changes that were needed to get it to work with hyku in bl have been added or respected.

Testing Instructions

In its current state this is not end user testable. Once this is contributed back to hyku we will pull these changes into atla-hyku, and it can be tested by QA at that point.

After merging into hyku and verifying it works locally this ticket can be closed.

  • The app has been run locally and you can hear mp3 files and see video files in the viewer.

Notes

Confirm default years for ETD worktype

from atla meeting 5/9/2023:

for the ETD year field what the year range should be? 1900 to 2023?

  • Currently it is set to 1900 to current_year + 4
  • Christy is going to ask what it should be
  • if it is changed, this ticket will be to update if needed.

Acceptance Criteria

  • Default years are aligned with the feedback from Christy.

ATLA hyku - staging and prod setup

Summary

ATLA wants a new multi tenant hyku instance. This application will need both a staging and a production instance, and will be on their current infrastruture. Resources like Fedora that can be share should be shared. The environment variables should be set up to incorporate with other systems, like sentry, etc.

Acceptance Criteria

  • The app is multi tenant
  • A staging instance exists on their infrastructure and can be accessed. with a url : ir-staging.atla.com
  • A production instance exists on their infrastructure with a url : ir.atla.com
  • Sentry is recording errors.
  • seed users are created and shared with the client.

Testing instructions

To be filled out by devs:
What link is prod at = ir.atla.com
What link is staging at = ir-staging.atla.com
Are usernames and passwords in 1 password for seed users?:

Notes

What should the domain be for staging? For prod?
Should the same email credentials be used?

Negative Captcha not working

User Story

As a user I cannot submit the form on the contact us page of a tenant application http://tenant.site-url.com/contact, because negative captcha is not working correctly. I get an error: Sorry, this message was not sent successfully. Email can't be blank, Name can't be blank, Subject can't be blank, Message can't be blankNo params provided <--- something similar depending on the field left blank this example is with all fields blank.

CLICK ME Screenshot Screenshot 2023-04-18 at 12 06 20 Screenshot 2023-04-18 at 12 06 12

Acceptance Criteria

Scenario 1:

  • The user CAN submit the contact us form after filling out ALL of the fields and clicking the "Send" button, at a tenant's /contact page without error: Sorry, this message was not sent successfully. Email can't be blank, Name can't be blank, Subject can't be blank, Message can't be blankNo params provided.
  • The form does send an email and you do see an email in the Mailtrap inbox from this test.

Scenario 2:

  • The user CANNOT submit the contact us form after not filling in any one or combination of the following fields: Email, Subject, and/or Message and clicking the "Send" button, at a tenant's /contact page with error: Sorry, this message was not sent successfully. Email can't be blank, Name can't be blank, Subject can't be blank, Message can't be blankNo params provided
  • The form does not send an email and you do not see anything from this test in MailTrap.

Testing Instructions

Scenario 1:

  • you can navigate to the contact us page of a tenant
  • fill out all fields in the contact us form
  • submit the form without error: Sorry, this message was not sent successfully. Email can't be blank, Name can't be blank, Subject can't be blank, Message can't be blankNo params provided <--- something similar depending on the field(s) left blank this example is with all fields blank.
  • check mailtrap to confirm you sent the email

Scenario 2:

  • samvera/hyku are the auth creds
  • you can navigate to the contact us page of a tenant
  • Purposely do not fill in any one or combination of the following fields: Email, Subject, and/or Message
  • Click "Send" button and submit the form with error: Sorry, this message was not sent successfully. Email can't be blank, Name can't be blank, Subject can't be blank, Message can't be blankNo params provided <--- something similar depending on the field(s) left blank this example is with all fields blank.
  • check mailtrap to confirm you didn't send the email

Add video embed property to 2 other worktypes

Summary

The video embed player needs to work on all three worktypes - it needs to get added to ETD & Paper or Report worktypes

Related

Acceptance

  • As a user, i can add a video embed link to both Paper or Report & ETD worktypes.

Testing instructions

Repeat these instructions for both Paper or Report & ETD worktypes.

  1. Go to the dashboard
  2. Navigate to the works section
  3. Click on create a new work
  4. Check that you see the video embed field
  5. Follow the instructions to enter a valid youtube or vimeo url
  6. Save the work & check that you see the iframe video on the work/show page
  7. Remove the video embed url from the work and check that the UV exists instead if there are files
  8. Try entering the video embed url incorrectly to check that a validation exists.

Neutral Repository Theme issue

There is an extra closing div tag in this file https://github.com/scientist-softserv/atla-hyku/blob/main/app/views/themes/neutral_repository/hyrax/homepage/_recent_document.html.erb

This causes the recent uploads that show on the home page to be all over the bottom of the page.

I explained more in slack https://assaydepot.slack.com/archives/C031E2NF43T/p1684521131885489

It would just be a matter of removing that closing div tag. I would think anyone with these theme in their Hyku would benefit. I could do this once I have a docker set up for our site. But maybe it is better for you all to do it and share it back?

Atla Hyku Prod deployment

Summary

Prod instance for atla-hyku

Acceptance Criteria

  • A production instance exists on their infrastructure with a url : ir.atla.com
  • Add production deployment environment to github actions
  • prod link is bookmarked into the #atla-dev slack channel
  • seed users for prod are created and shared with the client.
  • usernames and passwords added to 1 password for seed users for prod

Testing instructions

  1. Visit ir.atla.com and ensure that you can see a production instance
  2. you can login as a admin user
  3. you can create a tenant
  4. you can navigate to that tenant and login
  5. you can create a work an attach an image
  6. you can see the thumbnail showup for your work (after the jobs process)

Notes

Screenshot 2023-04-14 at 14 49 36
Screenshot 2023-04-14 at 14 49 55

PDF Print UV Viewer only - Files & Filenames = Issues!

Currently the file names for each page of a PDF that is loaded into the UV starts with a very long number and then a page number. This is not very useful/meaningful to a user. We would like it to just indicate the page number.

We would also like to include the work that was done to hide all the page derivatives from the "items" list at the bottom of the work show page for these PDFs. (make the derivative works that are created a separate worktype, and then hide that worktype in the UI)

Generic worktype

Story

As a user I can create a Generic Work Type customized to this spreadsheet

Expected Behavior Before Changes

A basic Generic Work model is available.

Expected Behavior After Changes

The Generic Work Type Customizations:

  • 2 custom fields: institution/format
  • Updates required fields & primary_terms
  • Updates multiple true/false to appropriate fields on form
  • Updates multiple true/false on appropriate views
  • Updates facets
  • Updates to have appropriate fields on the index/show pages (search results page/show page)
  • Adds help text to locales (& languages)
  • Adds controlled vocabulary for ATLA resource_type/institution/format (moved over from atla hyrax)
  • Adds 300 character maximum to the index/show page description field (moved over from atla hyrax)
  • Adds test coverage and updates pre-existing generic_work models in tests with updated configuration.

Ref Issues Inlcuded:

Screenshots / Video

Video creating and then editing a Generic Work: https://share.getcloudapp.com/04u6wOYQ

CLICK FOR SCREENSHOTS Screenshot 2023-05-03 at 16 20 55 Screenshot 2023-05-03 at 22 50 22 Screenshot 2023-05-03 at 22 49 39 Screenshot 2023-05-03 at 22 49 18 Screenshot 2023-05-03 at 16 21 12

Notes

N/A

QA Testing Checklist:

Generic Work Type:

  • I can create a Generic Work by filling in the required fields
  • I can create a Generic Work by filling in all the fields

REQ FIELDS DISPLAYED: On the form, I can see the required fields:

  • Title
  • Creator
  • Rights Statement
  • Date created
  • Resource Type
  • Institution

REQ'D FIELDS LABELED/DISPLAYED:

  • On the form, I can see the required fields have a "Required Label"
  • On the form, I can see the required fields are displayed above the "Additional Fields' button

FORM LABELS:

  • On the form, I see the correct labels on the create generic work form fields that are in the spreadsheet

HELP TEXT:

  • On the form, I see the correct help text below the correct field on the create generic work form that are in the spreadsheet

MULTIPLE FIELDS:

  • On the form, I can add multiple fields that are in the spreadsheet

CONTROLLED VOCABULARY: On the form, I can see the correct controlled vocab show for the following fields:

  • Resource Type - controlled vocab matches list on the spreadsheet
  • Institution - controlled vocab matches list on the spreadsheet
  • Format - controlled vocab matches list on the spreadsheet

ADDITIONAL METADATA DISPLAYED: After clicking the โ€œAdditional Fieldsโ€ button I can see the non-required fields for the GenericWork model:

  • Alternative Title
  • Contributor
  • Description
  • Abstract
  • Keyword
  • License
  • Access Rights
  • Rights notes
  • Publisher
  • Subject
  • Language
  • Identifier
  • Related URL
  • Format
  • Bibliographic citation

EDITING A WORK: When I click edit on a work:

  • I can see the previously saved field value in the form field
  • I can edit and save the fields and see the updated value present on the saved Generic Work
  • After saving the work and navigating to the work show page, I can see all the metadata listed on the spreadsheet

THE SEACRH RESULTS PAGE: On the search results page you will see the following properties displayed on each work listed in the results.

  • Title
  • Creator
  • Description (with 300 character limit)
  • Resource Type

THE FACETS THAT SHOULD DISPLAY: On the facets, after creating a generic work with all the form fields filled in. You navigate to the search results page and can see the following facets included:

  • Resource Type
  • Creator
  • Contributor
  • Keyword
  • Subject
  • Language
  • Publisher
  • Date created
  • Institution
  • Format

Please double check the accuracy of the form fields' help text by cross checking from in column G titled "Help Text" of this spreadsheet to the Generic Work form fields we updated listed below:

  • Rights Statement
  • Resource Type
  • Institution
  • Description
  • Keyword
  • License
  • Access Rights
  • Rights notes
  • Publisher
  • Subject
  • Format

Please also check to make sure when you flip through the different languages of those help texts' that the help text appears to change to the alternate language selected for the fields listed above.

  • German
  • Spanish
  • Brazilian Portuguese
  • French
  • Italian
  • Chinese

OLD in drop down labelled CLICK ME

CLICK ME

Summary

Set up the atla hyku generic worktype

This is the mapping spreadsheet.
https://docs.google.com/spreadsheets/d/1cyTtAofi2g1sx0ATJuP7ws-77a7OzBXF/edit#gid=1372594593

Related

#7 epic

Acceptance Criteria

  • metadata fields from the spreadsheet for generic worktype are available
  • Require fields for generic worktype are correct per the spreadsheet
  • Multi value fields for generic worktype are correct per the spreadsheet
  • Help text (text below name but above the field) is correct for generic worktype

Notes

most likely one dev will work on all 3 worktypes

Samvera customizing metadata guide: link

User form department field help text

WHen you go to edit a user account the help text for Department appears to be coming from the ETD work type. This does not seem right, the wording is confusing for a user account form. Can it be different than the ETD field's help text?

Image

Controlled Vocabularies - Format

Summary

Set up for Atla Hyku format field controlled vocabulary - add to all 3 work types & set up like the DL

Related

EPIC: #8

Acceptance Criteria

Testing Instructions

Create a work for each worktype.

Generic

ETD

Paper or Report

Notes

ATLA hyku - embedded YouTube Content

Summary

SoftServ will customize the ability for YouTube videos to appear embedded on a work show page. Videos will not be played back in Universal Viewer.

Acceptance Criteria

  • As a user, I can add a link to a youtube video I would like to embed on the edit work form
  • As a user, i can add a column to bulkrax csv import that allows me to import a youtube url that will be used in an iframe.
  • As a user, I can visit that work's work-show page to see & play the embedded youtube video iframe
  • Client is sent the correct info for what column to add to bulkrax csvs.

Testing Instructions

  • Note: Currently, this will only work on the generic worktype. there is a separate ticket to bring this in to the other 2 worktypes once they are created: #41
  1. Go to the dashboard
  2. Navigate to the works section
  3. Click on create a new work (select generic work)
  4. Check that you see the video embed field
  5. Follow the instructions to enter a valid youtube or vimeo url
  6. Save the work & check that you see the iframe video on the work/show page
  7. Remove the video embed url from the work and check that the UV exists instead if there are files
  8. Try entering the video embed url incorrectly to check that a validation exists.

Notes/Questions

  • the youtube video iframe take the place of the universal viewer, correct? Or would there be a universal viewer AND a youtube player as well?
  • This has been done in ARCE

Fix validation error message ui

Summary

Error messages from validations in the edit-work form are appearing as blank- the message was not being parsed correctly. This PR updates the works controller behavior to make sure that these error messages are being set.

Screenshot

Image

Acceptance criteria

  • Users do not see a broken flash message when their form has a validation error on create and update

Testing Instructions

  1. Create a work
  2. Incorrectly fill in the video_embed method (currently the only field using rails validations in atla hyku)
  3. Fill in the rest of the required fields & save the work
  4. Check that an error message explaining your error appears in the red box at the top of the page.

Repeat the same test when editing an existing work.

OCR PDF search not working

ATLA staging deployment & actions

Summary

Staging is on r2-staging cluster on SoftServ infrastructure for now per Rob's request.

ATLA wants a new multi tenant hyku instance. This application will need both a staging and a production instance. Resources like Fedora that can be share should be shared. The environment variables should be set up to incorporate with other systems, like sentry, etc.

Acceptance criteria

Testing instructions

  • go to the slack channel for #atla-dev
  • check that the staging links for atla-hyku exist
  • Visit atla-hyku.notch8.cloud and ensure that you can see a staging proprietor page
  • you can login as a admin user
  • you can create a tenant
  • you can navigate to that tenant and login
  • you can create a work and attach an image
  • you can see the thumbnail show up for your work (after the jobs process)
    --------if you get to here and have checked all the above items and they have passed, this ticket passes. Please continue testing, but if anything does not work, please make a ticket for it and ref this ticket please.
  • when you navigate to the tenants contact us page you are able to submit a form and look in mailtrap and see the email -- Note April 14,2023, form April: Negative captcha is blocking testing on this on the contact us page, is there another way to test email sending?
  • to test if mailtrap is working, add a user to the tenant through the Dashboard > Manage Users
  • You can see Google analytics items after:
    • viewing your works/collections
    • downloading works
    • wait for a day to allow Google Analytics to track
    • checking these pages
      • your-tenant-name.atla-hyku.notch8.cloud/admin/analytics/collection_reports
      • your-tenant-name.atla-hyku.notch8.cloud/admin/analytics/work_reports
      • public work show page > Analytics
  • you can navigate to the sentry project "atla-hyku" and see an error after creating one in your browsers console.

Demo: How to log in and create a tenant

Screen.Recording.2023-04-25.at.03.14.35.PM.mp4

Basic auth for staging only:
Sign in 2023-04-25 at 3 18 18 PM
Username: samvera
Password: hyku

Add work url to exports

Summary

From client:
CSV - we absolutely need the URL to the work to be exported in the CSV metadata export - this is what we are relying on to be able to import a collection from a libraryโ€™s tenant into the Atla Digital Library. Especially if we do not have a qdc OAI importer

Acceptance Criteria

  • Works export with a Work URL

ATLA hyku - worktype customizations EPIC

Summary

We need to customize the worktypes in hyku for atla. This is the mapping spreadsheet.
https://docs.google.com/spreadsheets/d/1cyTtAofi2g1sx0ATJuP7ws-77a7OzBXF/edit#gid=1372594593

Acceptance Criteria

  • 3 worktypes are available: Generic, ETD, and 'Paper or Report'
  • Generic Worktype ticket: #22
  • ETD Worktype ticket: #23
  • Paper or Report Worktype ticket: #24
  • DC mappings are correct (possibly not end user testable)
  • Facets are correct per the spreadsheet
  • Search results page - works should show these fields: Title, Creator, Description (with character limit), Resource Type

Testing Instructions

Notes

What metadata should be on the search index page? (search results)

Determine storage space used per tenant?

Is there a way to determine how much storage space a specific tenant is using?

We have this plan to charge a storage fee based on usage as we have for the DL, but for the IR they will be uploading works themselves so we would not be able to track the amount on going in like we could for the DL.

Added PDF files not showing in UV

HEre are my tests for works with PDF (below) neither are showing in the UV

https://christy.atla-hyku.notch8.cloud/concern/paper_or_reports/dca83a10-70c7-4741-bba2-19327f95dd1d
https://christy.atla-hyku.notch8.cloud/concern/etds/0a302e6a-a703-4b3f-bfd2-49314c267591

Testing Instructions

  • OCR:
    • When importing or uploading PDFs, the PDF has jpg derivatives that show in the viewer
    • OCR is created. From the PDF parent work > scroll down to Items > click one of the child JPG derivative works to navigate to its show page > scroll down to Items > Actions dropdown > Download (as txt)
    • You can search for this text within the tenant at the Search Hyku search bar in the top nav. Searching for this text will show results for the PDF parent work
    • You can search for that text within the UV. It should highlight all instances of that text within the work. This will be addressed in #47

OCR search not working within UV

Story

While QA'ing #20, I found that not all of the OCR functionality is there.

tested on:

Working:

  • When importing or uploading PDFs, the PDF has jpg derivatives that show in the viewer
  • OCR is created. From the PDF parent work > scroll down to Items > click one of the child JPG derivative works to navigate to its show page > scroll down to Items > Actions dropdown > Download (as txt)
  • You can search for this text within the tenant at the Search Hyku search bar in the top nav. Searching for this text will show results for the PDF parent work

Not working:

  • You can search for that text within the UV. It should highlight all instances of that text within the work.

Things Kirk and I investigated:

  • We checked the catalog controller for all_text_tsimv fields, which was fine
  • We checked that the fileset had the text indexed on it

Things to try checking:

  • Did it work in Summer's local environment, but just not on staging?

Acceptance Criteria

  • The following passes for PDFs that are created through the UI:
  • The following passes for PDFs that are imported:
    • OCR is created. From the PDF parent work > scroll down to Items > click one of the child JPG derivative works to navigate to its show page > scroll down to Items > Actions dropdown > Download (as txt)
    • You can search for that text within the UV. It should highlight all instances of that text within the work.

Screenshots / Video

Click to view screen recording of what's working and what's not
Screen.Recording.2023-05-04.at.09.26.37.AM.mp4

Working:

  • (0:00) When importing or uploading PDFs, the PDF has jpg derivatives that show in the viewer
  • (0:07) OCR is created. From the PDF parent work > scroll down to Items > click one of the child JPG derivative works to navigate to its show page > scroll down to Items > Actions dropdown > Download (as txt)
  • (0:30) You can search for this text within the tenant at the Search Hyku search bar in the top nav. Searching for this text will show results for the PDF parent work

Not working:

  • (0:50) You can search for that text within the UV. It should highlight all instances of that text within the work.

Testing Instructions and Sample Files

  • Log in as SuperAdmin
  • Go to the Accounts page
  • Select edit for the tenant/account
  • Scroll down and click the SSL configured checkbox
  • Click Save
  • Navigate back to your tenant
  • Create work with a PDF file that has text
    • Create one through the UI: Dashboard > Works > Add New Work
    • Create one through Bukrax:
      • sample csv (if using this CSV, change source_identifier values to something unique) Archive 2.zip
  • From the PDF parent work > scroll down to Items > click one of the child JPG derivative works to navigate to its show page > scroll down to Items > Actions dropdown > Download (as txt)
  • You can search for that text within the UV. It should highlight all instances of that text within the work.

Notes

blank video embed fields coming in on csv exports, causing a blank iframe to pop up instead of uv

summary

csv imports with the video embed field are somehow making the code think it should have an iframe instead of the uv, even if that row is blank.

screenshot/current behavior

we are getting an array with an empty string for that field when its imported through bulkrax. we need to account for this in the code

Image

acceptance

  • works imported with a blank video embed column will NOT show a blank iframe
  • pdfs imported by csv will show in the viewer.

Controlled Vocabularies - Type

Summary

These are the controlled vocabularies needed for ATLA: https://docs.google.com/spreadsheets/d/1cyTtAofi2g1sx0ATJuP7ws-77a7OzBXF/edit#gid=785133840

  • Type field (used across work types)
  • Type field matches the controlled vocab list on the spreadsheet.

Related

EPIC : #8

Acceptance Criteria

  • Type uses predicate: ::RDF::Vocab::DC.type
  • Resource Type uses ::RDF::URI.new("http://test.hyku.test/generic_work#resoucre_types")

Testing Instructions

Create a type property for each worktype listed below:

  • Generic
  • ETD
  • Paper or Report

Notes

We had difficulty implementing in the GenericWork type when overriding the basic meta data resource_type's predicate for type to use. This will need more investigation of viable alternatives.

Paper or Report worktype

Summary

Set up the atla hyku etd worktype

This is the mapping spreadsheet.
https://docs.google.com/spreadsheets/d/1cyTtAofi2g1sx0ATJuP7ws-77a7OzBXF/edit#gid=1372594593

Related

#7 epic

Acceptance Criteria

  • The description for Paper or Report worktype to go on the modal - "Technical reports, conference papers, grant or other project reports, and similar works."
  • metadata fields from the spreadsheet for Paper or Report worktype are available
  • Require fields for Paper or Report worktype are correct per the spreadsheet
  • Repeatable fields for Paper or Report worktype are correct per the spreadsheet
  • Help text (text below name but above the field) is correct for Paper or Report worktype

Notes

most likely one dev will work on all 3 worktypes

To enable a new work type (like "Paper or Report") in your tenant, navigate to the Dashboard > Available Work Types page

Edit Work Type Hyku 2023-05-09 at 12 15 46 PM

EPIC: ATLA hyku - controlled vocabularies

Summary

These are the controlled vocabularies needed for ATLA: https://docs.google.com/spreadsheets/d/1cyTtAofi2g1sx0ATJuP7ws-77a7OzBXF/edit#gid=785133840

  • Institution field (used across work types) #30
  • Type field (used across work types) #30
  • Update Resource Type to ATLA list. #30
  • Date field as 4 digit year (ETD only) [2] #29
  • Subject field - For subject add logic to force first letter capitalization and lowercase for the rest. Strip out trailing periods and trailing spaces (like DL has) [2] #28
  • Format field (in the ETD but if possible add to all 3 work types?) set up like the DL [3] #27

Acceptance Criteria

The following tickets are complete:

Testing Instructions

See individual tickets for each controlled vocabulary (linked above)

Notes

[SPIKE] ATLA gem planning

Summary

Figure out what we need to do to successfully install the iiif-print, hyrax-iiif_av gem and potentially bulkrax (and any other gems I am missing)

Acceptance Criteria

  • Find out from Kirk/Shana whether we should point at a specific branch within these gems --
    should use main, or their latest releases?
  • List in a comment below which branch to use for each gem, if a different branch than what is in Hyku is needed.

Testing instructions

  • make sure the correct information from the acceptance criteria is listed below on this ticket (notch8 qa only)

Spike research results

  • The atla-hyku instance has been created from the hyku sha e46b01f7d82c1eb2f19de7357c12bda270de7b11 - this is a version with the latest & greatest iiif_print updates, as explained here by Shana
  • hyrax-iiif_av needs to be added to hyku using this PR for British Libraries: scientist-softserv/britishlibrary#266 - then, we do a hyku release & we can pull the latest Hyku into atla-hyku.

Questions to talk about in sprint planning

  • Bulkrax: ????\
  • Other gems?
  • Create a new ticket to add hyrax-iiif_av to hyku, and do a hyku release (summer can pick up the ticket to add it to hyku, but may need help doing the release) + add this ticket to TT6 board (and atla-hyku board for tracking?)
  • The hyku release should include the updates at the sha e46b01f7d82c1eb2f19de7357c12bda270de7b11

ATLA hyku - OAI export of dc terms

Summary

ATLA would like OAI export for DC and Qualified DC. When oai_dc is used as the prefix it will return only DC metadata. When oai_qdc is selected it will return only qdc metadata.

Acceptance Criteria

  • OAI export for metadata_prefix oai_dc returns dublin core metadata
  • OAI export for metadata_prefix oai_hyku returns all metadata and files per Pals setup

Testing instructions

Notes

QA CSV import and export after worktypes have been created and Controlled fields are completed

Summary

After worktypes have been created, test CSV import and export to confirm that all fields are importing/exporting properly for all worktypes.

Acceptance Criteria

  • CSV headers must match the property name
  • All fields import correctly for the 3 worktypes
  • All fields export correctly for the 3 worktypes

Testing Instructions

If client folder does not have test files, please save your test file to the client folder after creating it.

Notes

Mapping spreadsheet: https://docs.google.com/spreadsheets/d/1cyTtAofi2g1sx0ATJuP7ws-77a7OzBXF/edit#gid=1372594593

Update Resource Types for IR home page theme

ATLA Hyku has custom controlled fields for resource_type

The Institutional Repository maps the resource_type controlled fields for the stats slider on the IR Home page theme.

  • The resource_type mappings on app/views/themes/institutional_repository/hyrax/homepage/_ir_homepage_stats.html.erb file needs to be updated with resource_type => font awesome icon
  • institutional repository feature spec needs to be updated with the correct resource_types

ETD Worktype

Summary

Set up the atla hyku etd worktype

This is the mapping spreadsheet.
https://docs.google.com/spreadsheets/d/1cyTtAofi2g1sx0ATJuP7ws-77a7OzBXF/edit#gid=1372594593

Related

#7 epic

Acceptance Criteria

  • metadata fields from the spreadsheet for ETD worktype are available
  • Require fields for ETD worktype are correct per the spreadsheet
  • Repeatable fields for ETD worktype are correct per the spreadsheet
  • Help text (text below name but above the field) is correct for ETD worktype

Notes

most likely one dev will work on all 3 worktypes

Importer: `source identifier` getting parsed as `source`

Story

While testing #26 for importers, I found that all 3 work types' source identifiers are getting parsed as source. This is even true for paper or report, which is not supposed to have source at all according to Work Types Metadata - SoftServ

Acceptance Criteria

  • ETD, Generic Work, and Paper or Work's source identifiers are correctly parsed assource identifier
  • None of their source identifiers parse as source

Screenshots / Video

Source Identifiers are being parsed as Source

ATLA Hyku CSV for Importers - ETD 2023-05-12 at 6 20 23 PM
Show Entry Hyku 2023-05-12 at 6 21 19 PM
ATLA Hyku CSV for Importers - GenericWork 2023-05-12 at 6 34 12 PM
ATLA Hyku CSV for Importers - GenericWork 2023-05-12 at 6 34 35 PM
ATLA Hyku CSV for Importers - PaperOrReport 2023-05-12 at 6 43 46 PM
Work Types Metadata - SoftServ xlsx - Google Sheets 2023-05-12 at 6 45 31 PM

Testing Instructions and Sample Files

  • Create an importer for each sample file:
  • when the import completes, click into the importer > work entry > parsed metadata
  • confirm the parsed metadata shows that source identifier parsed correctly as source identifier, not as source
  • click the link to the work show page on the bottom and confirm that the source does not have values from the source identifier
    • note: paper or report should not supposed to have source at all

Notes

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.