Coder Social home page Coder Social logo

uga-libraries / dlg-uga_aspace_workflow Goto Github PK

View Code? Open in Web Editor NEW
0.0 2.0 0.0 92 KB

Take an input of barcodes from top containers in ArchivesSpace, retrieve all associated archival objects, parse and write data to a DLG approved spreadsheet template.

License: Creative Commons Attribution Share Alike 4.0 International

Python 95.16% Inno Setup 4.84%
archivesspace

dlg-uga_aspace_workflow's Introduction

DLG to ArchivesSpace Spreadsheet Generator

Overview

This application takes an input of barcodes from top containers in ArchivesSpace, retrieves all the archival objects associated with those barcodes, parses the information and writes to a DLG approved spreadsheet template (also provided by the user in the application). This process is intended to make it easier for users to contribute metadata to DLG's online portal of digitally accessible historic images and cultural material by automatically pulling the data from ArchivesSpace and into a spreadsheet that the user can send to the DLG, along with any other files.

Getting Started

Dependencies

Installation

  1. Install Python 3 on your computer. You can install python using the following link: https://www.python.org/downloads/
  2. Download the repository via cloning to your local IDE or using GitHub's Code button and Download as ZIP
  3. Set up a virtual environment and run pip install requirements.txt
  4. Make sure you have your ArchivesSpace Instance's API URL (plus port # ending, example: "https://localhost:8089, username, and password
  5. Run the script python3 gui.py

For Windows Users

  1. Go to Releases and download the .exe file from the latest release.
  2. Follow the on-screen instructions.
  3. After installing, double-click the ASpace_DLG_Workflow icon to run the application.

For Mac Users

  1. Install Python 3 on your computer. You can install python using the following link: https://www.python.org/downloads/mac-osx/
  2. Download the GitHub repo using the Code button in the top right corner of the repo, choose "Download ZIP", then unzip the downloaded file.
  3. Open your terminal and go to the unzipped folder. Run the command: pip3 install -r requirements.txt.
  4. After installing requirements, run the command: python3 gui.py. This will start the program.

Script Arguments

If you are running the app using python, run python3 gui.py from the repository directory.

Testing

I'm still building unittests and the data for the tests is locally dependent. If you want to use the unittests, create a "test_data" directory and create "resource.json" and "archival_object.json" files using a JSON formatted resource and archival object from the ArchivesSpace API. Additionally, you'll need to swap the barcodes, repository numbers, and resource/archival object dependent tests to reflect the data you have. Yes, I need to fix this to be universally acceptable.

Workflow

  1. Once the GUI is launched, login to your local ArchivesSpace instance with your ArchivesSpace credentials, including your username, password, and API URL
  2. Enter the barcodes or top container URIs in the left column, separated by newline (enter) of the archival objects you want retrieved and parsed
  3. Select your repository (click SAVE to remember this selection)
  4. Select the ASpace>DLG Template file that will be used to copy to make the new spreadsheet. This will be saved.
  5. Select START
  6. The GUI may go unresponsive if there are a lot of archival objects. Let it run until the START button is active.
  7. Select Open Output Folder to find the new spreadsheet

Contributing

See the CONTRIBUTING.md for more information.

Versioning

Trying our best to adhere to SemVer.

License Information

This program is licensed under a Creative Commons Attribution Share Alike 4.0 International. Please see LICENSE.txt for more information.

Authors

  • Corey Schmidt - Project Management Librarian/Archivist at the University of Georgia Libraries

Acknowledgements

  • Kevin Cottrell - GALILEO/Library Infrastructure Systems Architect at the University of Georgia Libraries
  • Kat Stein - Director of the Hargrett Rare Book and Manuscript Library
  • ArchivesSpace community

dlg-uga_aspace_workflow's People

Contributors

crugas avatar dependabot[bot] avatar

Watchers

 avatar  avatar

dlg-uga_aspace_workflow's Issues

Add Menu Dropdowns

Issue:
Add a menu dropdown with the following features:

  • File
    • Clear output file - delete all files in the output folder
    • Edit ASpace Login - allow user to change their ArchivesSpace login credentials from within the main app
    • Reset Defaults - reset user default settings
    • Exit
  • Help
    • User Manual - link to the GitHub Wiki User Manual page (need to construct this)
    • About - show app version and ability to check for update (link to GitHub releases page) and check GUI info (using sg.popup_scrolled(sg.get_versions(), non_blocking=True, keep_on_top=True))

Resolution:
Add feature as listed above

Issue tracker:

  • Looked through the User Manual and found no solutions
  • Found no closed or open issues on the Issues page
  • Have downloaded and running the latest version of the program

Include Program Version in Log Files

Issue:
The program version should be listed in the log file.

Resolution:
Add program version to log file startup info.

Issue tracker:

  • Looked through the User Manual and found no solutions
  • Found no closed or open issues on the Issues page
  • Have downloaded and running the latest version of the program

Add User Manual

Issue:
Add a user manual to GitHub wiki page, with pictures and gifs if appropriate.

Resolution:
Add feature as listed above

Issue tracker:

  • Looked through the User Manual and found no solutions
  • Found no closed or open issues on the Issues page
  • Have downloaded and running the latest version of the program

Collection ID with Non-Alphanumeric Characters Causes Crash

Issue:
When a collection ID has forward or backslashes, the app crashes. This happens when the new file is created from the template using the collection ID is referenced and the path is invalid. For example, a collection ID like "RBRL/321/AC" would create a filename like "output_files\guan_RBRL/321/AC.xlsx".

Resolution:
Remove all non-alphanumeric characters from the collection ID when creating the new file. Consider also using this "clean" ID when generating the "guan_{ID}" ID.

Issue tracker:

  • Looked through the User Manual and found no solutions
  • Found no closed or open issues on the Issues page
  • Have downloaded and running the latest version of the program

Barcode/URI with No Exports Should delete Template File in output_folder

Issue:
When a barcode/top container URI is entered by the user, but contains no linked archival objects, the program puts the template file selected by the user in the output_files directory. This file should be deleted as it is unnecessary and adds to the clutter of files that already exist.

Resolution:
Remove template file from output_files directory if a barcode/top container URI returns 0 exports.

Issue tracker:

  • Looked through the User Manual and found no solutions
  • Found no closed or open issues on the Issues page
  • Have downloaded and running the latest version of the program

Template File is Not Being Saved Properly

Issue:
When a user provides a template file to generate the new spreadsheet, the program will re-assign that template file to the output_folder. If it does not get copied to the output_folder or gets deleted by the user there, the file will go missing and a user will have to reset the template file every time.

Resolution:
Set the template file default to match what the user inputs first, rather than what it copied to output_folder if it is copied at all.

Issue tracker:

  • Looked through the User Manual and found no solutions
  • Found no closed or open issues on the Issues page
  • Have downloaded and running the latest version of the program

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.