# 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. ## 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`](./src/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`](./public) subdirectory ## Development To update, run [`scripts/compile.php`](./scripts/compile.php). All relevant development files can be found in [`/src`](./src). [`CsvxmlAvailableFields.php`](./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](https://github.com/Stuk/jszip), dual-licensed under MIT & GPLv3 - [PapaParse](https://github.com/mholt/PapaParse), licensed under the MIT license ## License This project is licensed under the AGPL License. See the [LICENSE](./LICENSE) file for the full license text.