csvxml/README.md

2.4 KiB

Validator for the standard CSV format for imports to museum-digital

The validation and transformation service for import CSV files to an instance of museum-digital is centrally hosted at https://csvxml.imports.museum-digital.org/. This repository contains

a) The statically generated progressive web app that is being served b) The simple static page generator for generating it

CSVXML as a "Format" / Purpose of This Tool

Many smaller museums still do not use a dedicated application for managing their collections. This often leads to the need to import Excel or CSV tables. The format described and validated by the present tool helps museums and administrators who want to import data from such sources to pre-prepare their import data. If the data is not yet recorded, this tool allows the generation of a CSV file with the expected table headings. If an existing CSV file is to be imported, users can rename their table headings to the ones listed in CSVXML and then validate their import data using this application.

Finally, this tool will return a ZIP file containing one XML file per object in the validated CSV file. The application works completely on the client side, meaning that no data is uploaded to the server as the import data is validated. This also allows for offline use.

To-Do

  • Add missing translation files for explanations
    • Translations and explanations for most fields exist in the musdb translation files. They now only need to be entered at the relevant positions in CsvxmlAvailableFields.php.

Deployment

  1. Clone this repository and set up git subrepositories
    • Before doing this, ensure that an alias gitea is available in your SSH config (~/.ssh/config)
  2. Point a web server to serve the /public subdirectory

Development

To update, run scripts/compile.php.

All relevant development files can be found in /src. CsvxmlAvailableFields.php is the central file used for generating one large array defining the allowed table headings / fields and their relevant accompanying data (e.g. explanations).

Dependencies

  • JSZip, dual-licensed under MIT & GPLv3
  • PapaParse, licensed under the MIT license

License

This project is licensed under the AGPL License. See the LICENSE file for the full license text.