PWA for generating and validating standard imports for museum-digital
Go to file
Joshua Ramon Enslin 47f52c4a10
Update git submodules
2024-03-26 01:23:50 +01:00
classes Update git submodules 2024-03-26 01:23:50 +01:00
functions Clean up outdated scripts 2022-11-07 00:33:24 +01:00
inc Add field to cover tag relations (tag_relation_type) 2023-05-14 17:06:49 +02:00
l10n Update git submodules 2024-03-26 01:23:50 +01:00
public Remove dependency of event actor to actor certainty 2024-02-19 18:04:47 +01:00
scripts Add missing notes fields: negative_id, handling_recommendations, ... 2023-01-25 15:45:36 +01:00
src Remove dependency of event actor to actor certainty 2024-02-19 18:04:47 +01:00
tests Move on to a fully pre-compiled setup 2022-11-07 02:57:34 +01:00
.git.template Add git template 2019-11-11 12:19:34 +01:00
.gitattributes Add .gitattributes 2020-11-03 21:28:15 +01:00
.gitignore Copy directory /commonservies here for now 2020-11-15 06:30:48 +01:00
.gitmodules Move csvxml translations to a separate git submodule and add help texts 2022-11-18 02:07:03 +01:00
LICENSE Add license 2022-11-08 01:50:47 +01:00 Add missing note on deployment in README 2023-06-24 00:58:10 +02:00
composer.json Update dependencies 2022-11-06 23:24:44 +01:00
favicon.ico Start work on new start page 2019-08-27 00:32:24 +02:00
phpstan-baseline.neon Update phpstan baseline 2023-08-16 22:49:56 +02:00
phpstan.neon Add phpstan baseline 2022-11-17 19:13:13 +01:00
phpunit.xml added todos 2021-05-19 22:33:47 +02:00

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 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.


  • 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.


  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


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).


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


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