Architecture
This page summarizes how Alpaca Issue Tracker is organized.
Bootstrap
The plugin starts from alpaca.php.
The bootstrap loads the core plugin classes, registers activation and deactivation hooks, and starts the main plugin registration flow.
Main PHP Areas
includes/class-register.php: registers assets, admin screens, settings, API routes, and WordPress hooks.includes/class-helpers.php: shared helper methods and shared constants.includes/api/: API endpoint and filter registration.includes/core/: custom post types, taxonomies, and shared core behavior.includes/notifications/: notification events, routing, channels, templates, and digest behavior.includes/utilities/: utility functions used across PHP features.templates/: PHP templates for plugin admin pages.
Admin Screens
The main admin screens are registered from PHP and mounted with React where needed.
Core screens include:
- Project Board.
- Configure.
- Email Templates.
- Daily Digest Template.
- My Notifications.
React Entrypoints
React source lives in src/.
Important entrypoints include:
src/index.jsx: full plugin UI entrypoint.src/admin-global.jsx: lightweight admin-global UI entrypoint.src/components/: board, issue, comment, notification, and settings components.
The plugin uses WordPress-provided packages from the global wp object instead of bundling separate copies of WordPress React packages.
REST API
The endpoint reference lives in REST API.
Data Model
The data model reference lives in Data Model.
Site options and user preferences are documented in Settings and Options.
Notifications
Notifications are built from issue and comment events, routed through notification recipients, and delivered through configured channels such as the in-app inbox and email.
Daily digest behavior is handled separately from immediate notifications.