WP Manifestindependent plugin directory
manifest / content / librett-player-registry

LibreTT Player Registry

Portable player and club registry with public profiles, WordPress administration, replication, and one-way imports into LibreTT Desktop.

by Aleksa Dimitrijević · github.com/tradicije/librett-player-registry

★ 0stars
0forks

Install

No release zip yet. The repository archive installs, but the folder name will carry the branch suffix and updates will not flow:

wp plugin install https://github.com/tradicije/librett-player-registry/archive/refs/heads/main.zip

A portable player and club registry with public profiles, WordPress administration, and one-way imports into LibreTT Desktop.

Srpski

Status: early implementation. An unreleased WordPress development build provides migrations, primary registry identity setup and private player/club draft administration (create, search, edit, archive/restore). The draft extension has not been runtime verified. Memberships, public profiles/API, import/export and synchronization remain planned. See implemented scope and actual verification.

What we are building

One plugin named LibreTT Player Registry (librett-player-registry) can create a new empty registry or host a replica of an existing registry. It includes administration, public searchable profiles and an API; WordPress is the first adapter, rather than part of the domain model.

A federation or club in any country can create its own dataset. No Serbian player database is bundled with the plugin. One registry can move between domains or be mirrored by multiple sites without changing player identities.

Core decisions

  • Custom tables for registry data; no dependency on player/club CPTs or postmeta.
  • Independent domain/application layers and replaceable persistence/HTTP/media adapters.
  • Stable registry identity and player/club UUIDs, with separate public profile slugs.
  • A primary publishes accepted changes. Replicas serve validated copies and can submit proposals for review, rather than editing shared records directly.
  • A separate offline recovery authority can authorize a replacement primary if the original host disappears. Authority conflicts and unavailable updates require explicit handling.
  • Versioned JSON snapshots and change feeds share one model; neither is a raw WordPress database export.
  • LibreTT Desktop imports records into its local database. Users can edit them locally; no desktop edits are uploaded to the online registry.
  • Public datasets, media and private administrative data have different publication and backup requirements.

LibreTT Desktop integration — planned

A LibreTT Desktop user will be able to download a player database from this registry and keep it locally for offline use. The flow is one way: online registry → LibreTT Desktop. Subsequent profile edits in Desktop stay on the user's computer; refreshing registry data preserves explicit local overrides and historical tournament snapshots.

This import channel sends no local profile edits, private notes, attendance, payments or tournament data back to the registry. It protects the user's local data from being uploaded through this integration and protects the online database from changes made in Desktop. The registry integration is planned and has not been implemented yet.

Dataset license selection — planned

The administrator will choose the database license in the plugin settings in wp-admin: ODbL 1.0, CC0 1.0, CC BY 4.0, CC BY-SA 4.0, All rights reserved, or Custom. For Custom, the administrator can provide a license URL or upload a license document. No dataset license is selected automatically. This settings workflow is planned and is not implemented yet.

Dataset licensing is separate from the plugin's AGPL-3.0-or-later license, personal-data publication authorization and photo permissions.

Suggested first milestone

Create and manage an empty registry on one WordPress site, publish player/club profiles, and validate portable JSON export/import. Next add desktop integration, followed by verified replicas, proposals and recovery. The design accounts for later trust features; they are not present-day guarantees.

Documentation

Start with the documentation index.

Phase 0 documentation preparation is complete: readiness and entry gates, schema/examples, and reviewed compatibility/tool targets. The first implementation slice and its tests are now recorded separately.

Development

Composer dependencies and test configurations are committed. Follow development setup on a disposable WordPress site; fresh activation creates empty setup/private-draft tables and a separate administrator action creates the registry UUID. No production installer or release ZIP is published.

Author and license

Copyright (C) 2026 Aleksa Dimitrijević.

Code and project documentation are licensed under the GNU Affero General Public License, version 3 or any later version (AGPL-3.0-or-later); see LICENSE. Commercial redistribution is permitted subject to the license. No warranty is provided.

The software license does not automatically license player datasets, personal information, photographs or third-party material. Their permissions and publication terms must be specified separately. No registered trademark status is claimed.