TaiBIF Open Data Toolkit is a desktop application designed for processing biodiversity open data according to the Darwin Core standard. It helps data providers move through the core dataset preparation workflow:
- Creating a data template
- Editing data
- Validating datasets
- Cleaning data
Developed by TaiBIF (Taiwan Biodiversity Information Facility), this toolkit helps biodiversity data providers, especially Mandarin-speaking users, streamline dataset preparation and meet global publishing standards such as GBIF through IPT (Integrated Publishing Toolkit).
The toolkit is currently designed primarily for Mandarin users, while the interface also includes English and Spanish translations.
The latest packaged desktop application can be downloaded from the GitHub Releases page.
Choose the file that matches your operating system and computer architecture.
Quickly create data templates for common biodiversity dataset types, including Checklist, Occurrence, and Sampling Event datasets.
The template workflow supports:
- Darwin Core-based field selection.
- Field descriptions and reference information.
- Custom fields for project-specific needs.
- Clear labeling of custom fields in the template field list.
Edit dataset records in a familiar table-based interface similar to a spreadsheet.
The editing workflow supports:
- Inline data editing.
- Adding and deleting blank rows.
- Importing and exporting table data.
- Field value summaries for reviewing data distribution.
- Automatic table page sizing based on the available window space.
Import existing datasets and map source columns to project fields.
The mapping workflow helps users:
- Match imported field names to template fields.
- Review mapped, unmapped, and duplicated fields.
- Convert existing files into a structure aligned with the selected Darwin Core template.
Validate datasets before publication and quickly identify records that need correction.
The validation workflow checks for issues such as:
- Missing required fields.
- Field name mismatches.
- Invalid dates, coordinates, identifiers, and controlled vocabulary values.
- Empty optional fields and duplicated identifiers.
Use data cleaning tools to find, filter, and standardize inconsistent values before publishing.
The cleaning workflow includes:
- Text filtering with exact, fuzzy, and regular expression search modes.
- Duplicate value filtering for selected fields.
- String replacement with exact, fuzzy, and regular expression search modes.
- Field value swapping.
- Species information synchronization.
- Filter clearing and data export.
Cleaned and validated data can be exported for downstream publishing workflows, including preparation for IPT upload and GBIF publication.
TaiBIF Open Data Toolkit is intended for:
- Biodiversity data providers.
- Researchers and data managers preparing Darwin Core datasets.
- Organizations publishing biodiversity data through IPT and GBIF.
- Users who need a Mandarin-friendly workflow for biodiversity data standardization.
- Node.js 22 is recommended.
- npm 7 or later is required.
- Native dependencies are used by the app, including
sqlite3.
For macOS development, install Xcode Command Line Tools if native dependency installation fails:
xcode-select --installFor Windows development, install the Visual Studio Build Tools with C++ build support if native dependency installation fails.
Install dependencies:
npm ciStart the development app:
npm run startBuild the application code:
npm run buildPackage the desktop application for the current platform:
npm run packagenpm run build builds the application code. To generate a packaged desktop application, use npm run package.
The bundled base SQLite database is stored at:
assets/odt.sqlite3
In development mode, the app reads this file directly.
In packaged builds, this same file is bundled into the app resources. On startup, the packaged app copies the bundled database into the app user data folder when the user data database does not exist, then reads and writes the user data copy.
This database is intended to be a clean starting point. After cloning the repository and starting the app, create a project and select a template before using the data editing and data cleaning tables.
The packaged app also checks the user data database with SQLite integrity checking and rebuilds it from the bundled database if corruption is detected. If the user data database is healthy, app updates do not replace user-created projects or table data. Instead, the app syncs bundled system tables such as intro and template_* tables when the app version changes.
During dependency installation, the project runs post-install steps that prepare Electron runtime dependencies:
electron-builder install-app-deps
If installation fails around sqlite3, node-gyp, or native module rebuilding, first confirm that Node.js 22 is being used and that the platform build tools listed above are installed.
The release workflow installs dependencies in separate steps to make native dependency issues easier to isolate:
npm ci --ignore-scripts
npm --prefix release/app ci
npm run build:dllThis avoids running the root postinstall script too early in CI. Local development can usually use npm ci directly, but the split workflow is useful when diagnosing dependency installation problems.
src/main: Electron main process, IPC handlers, database integration, and system-level logic.src/renderer: User interface, pages, components, styles, and localization files.src/shared: Shared constants and types used by both main and renderer processes.assets: Application icons, images, and base data files.release/app: Runtime package metadata and production dependencies used during packaging.
For questions, collaboration, or feedback, please contact the TaiBIF team via the official contact form.
This project is released under the MIT License. See LICENSE for details.
This project is based on Electron React Boilerplate. See NOTICE for attribution information.