Skip to content
Brent Cordis edited this page Mar 16, 2026 · 89 revisions

Proclaim Improvement Tasks

This document contains actionable improvement tasks for the Proclaim Joomla component. Each task is organized by category with checkboxes for tracking progress.

For project requirements and goals, see Requirements. For implementation strategy and phasing, see Plan. For detailed 10.1.0 implementation notes, see What's New v10.1 and the Developer Changelog.


1. Technical Foundation Modernization

1.1 Codebase Restructuring

  • Audit and refactor code to fully utilize PHP 8.3+ features (10.1)
  • Implement consistent PSR-12 coding standards throughout the codebase (10.1)
  • Complete migration to Joomla 5/6 MVC pattern for remaining legacy code (10.1)
  • Implement proper namespacing for all classes following Joomla 4 conventions (10.1)
  • Remove deprecated Joomla API calls and replace with current equivalents (10.1)
  • Refactor JavaScript code to use ES6+ features and best practices (10.1)
  • Implement dependency injection where appropriate to improve testability (10.1)
  • Reduce technical debt by eliminating redundant or duplicate code (10.1)
  • Joomla 6 compatibility updates (10.1/10.2 — all deprecated APIs removed, PSR-7 HTTP, DatabaseInterface, modern session/identity, SubscriberInterface plugin. Audited 10.2: no remaining J6 incompatibilities found)

1.2 Database Optimization

  • Review and optimize database schema for performance (10.1)
  • Implement indexing strategy for frequently queried fields (10.1)
  • Refactor complex queries for better performance (10.1)
  • Implement query caching where appropriate (10.1)
  • Add database update scripts for smooth version transitions (10.1)
  • Normalize database tables where needed to reduce redundancy (10.1)
  • Implement prepared statements for all database queries (10.1)

2. User Experience Enhancements

2.1 Admin Interface Improvements

  • Redesign admin dashboard with key metrics and shortcuts (10.1)
  • Implement batch processing for common tasks (10.1)
  • Add inline help and tooltips for complex features (10.1)
  • Organize admin settings into logical grouped panels (10.1)
  • Create wizard-style interfaces for complex setup processes (10.1)
  • Improve media management interface (10.1)
  • Improve media file server selection UX (10.1)
  • Improve media file creation UX (10.1)
  • Add guided New Message Wizard for step-by-step sermon creation (title → teacher → series → scripture → media → description)
  • Redesign landing page with 3 selectable styles (Card Grid, Hero Sections, Dashboard) and data/presentation separation (10.3 — #1156, branch: feature/landing-page-styles)
  • Improve multiple teachers subform UX with search/autocomplete instead of dropdown-per-row
  • Enhance form validation with clear error messages (10.1)
  • Implement drag-and-drop functionality for template layout (10.1)
  • Add keyboard shortcuts for common actions (10.1)
  • Redesign scripture entry UX (10.1)
  • Add studytext to Layout Editor (10.1)
  • Support multiple teachers per sermon (10.1)

2.2 Frontend Experience

  • Implement responsive design for all templates (10.1)
  • Add AJAX-powered filtering and searching (10.1)
  • Improve playback experience for audio and video (10.1)
  • Enhance social sharing capabilities (10.1)
  • Implement accessibility improvements (WCAG compliance) (10.1)
  • Optimize page load times for study listings (10.1)
  • Refactor Cwmlisting from <table> to semantic <div> grid layout (10.1)
  • Implement lazy loading for media content (10.1)
  • Add print-friendly versions of study content (10.1)
  • Archived messages display on frontend (10.1)
  • Fix frontend HTML rendering issues (10.1)
  • Enhance YouTube module with live stream countdown and mini-player (10.1)

3. Media Handling Enhancements

3.1 Media Processing

  • Implement automatic transcoding for different devices/bandwidths (Deferred — external platforms handle this natively; Discussion #1142)
  • Add support for additional video platforms beyond YouTube (10.1)
  • Implement progressive loading for large media files (Not needed — HTML5 audio/video handles this natively; streaming platforms manage their own delivery)
  • Add automatic thumbnail generation (10.1)
  • Improve media metadata extraction and display (10.1)
  • Implement video/audio chaptering functionality (10.2 — PR #1142: chapter markers subform, clickable chapter list, HTML5+YouTube seek, import from YouTube descriptions)
  • Add support for subtitles and closed captions (10.2 — PR #1142: subtitle tracks subform, native <track> elements, YouTube OAuth caption download as VTT)
  • Implement audio waveform visualization (Low ROI — requires FFmpeg backend + waveform library; niche benefit for self-hosted audio only)

3.2 Storage and Delivery

  • Add support for CDN integration (Outside scope — Cloudflare/server-level proxies handle this; platform addons already use their own CDNs)
  • Implement cloud storage options (AWS S3, Google Cloud Storage) (Outside scope — churches should use platform addons (YouTube, Vimeo, SoundCloud) or hosting provider storage; S3 SDK adds heavy maintenance for niche benefit)
  • Add adaptive bitrate streaming for video (Outside scope — YouTube/Vimeo/Wistia handle this natively; self-hosted ABR requires FFmpeg transcoding infrastructure)
  • Implement better caching mechanisms for media files (10.1/10.2 — multi-level caching: Cwmstats 15min TTL, dropdowns 1hr TTL, user-aware cache keys, query caching, YouTube quota file cache)
  • Add bandwidth management options (Outside scope — hosting/CDN concern, not controllable from a CMS component)
  • Optimize media file organization and structure (10.1)
  • Implement media backup and recovery solutions (10.1)

4. Security Enhancements

4.1 Input Validation and Sanitization

  • Implement consistent input validation across all forms (10.1)
  • Add server-side validation to complement client-side checks (10.1)
  • Sanitize all output to prevent XSS attacks (10.1)
  • Implement CSRF protection on all forms (10.1)
  • Review and enhance SQL query security (10.1)
  • Implement content security policy (CSP) (10.1)
  • Add rate limiting for form submissions (10.1)

4.2 Access Control

  • Implement role-based access control for admin functions (10.1)
  • Add granular permissions for content management (10.1)
  • Enhance frontend access controls for restricted content (10.1)
  • Implement audit logging for sensitive operations (10.1)
  • Add two-factor authentication for admin access (Joomla core, not component-level)
  • Review and enhance password policies (Joomla core, not component-level)
  • Implement secure session management (10.1)
  • Implement check-in/checkout record locking (10.1)
  • Implement multi-campus content isolation (10.1)

5. Integration and Extensibility

5.1 API Development

  • Develop RESTful API for accessing study content
  • Implement OAuth2 for secure API authentication
  • Create webhooks for important events (new study published, etc.)
  • Document API thoroughly with examples
  • Create SDK for common programming languages
  • Implement rate limiting and throttling for API
  • Add versioning support for API endpoints

5.2 Third-party Integrations

  • Develop integration with common church management systems (Deferred — no standard API exists across ChMS platforms; REST API (scaffolded) will enable custom integrations)
  • Add support for popular calendar systems (Outside scope — Joomla calendar extensions handle this; sermons aren't calendar events)
  • Implement integration with email marketing platforms (Outside scope — Joomla newsletter extensions like AcyMailing handle this)
  • Add support for social media auto-posting (Outside scope — Joomla social sharing extensions and platform APIs handle this; Proclaim has manual social sharing)
  • Create integration with Bible reference APIs (10.1)
  • Implement integration with streaming platforms (10.2 — YouTube OAuth 2.0 write operations: sync descriptions, import chapters, download captions)
  • Add support for payment gateways for donations (Outside scope — payment processing belongs in dedicated extensions like VirtueMart or Joomla donation plugins)

6. Content Enhancement

6.1 Study Presentation

  • Add support for interactive transcripts (10.2 — PR #1148: VTT-powered transcript panel with click-to-seek, active cue highlighting, search/filter, auto-scroll)
  • Implement chaptered video/audio with navigation (10.2 — PR #1142)
  • Add annotation capabilities for study notes
  • Develop presentation mode for live settings
  • Add support for multilingual content (10.1)
  • Implement related studies suggestions (10.1)
  • Add Bible verse popup/tooltip functionality (10.1)
  • Implement print-to-PDF functionality (10.1)
  • Add Google structured data (Schema.org JSON-LD) (10.1)

6.2 Analytics and Insights

  • Implement view and engagement tracking (10.1)
  • Add download and sharing analytics (10.1)
  • Create a reporting dashboard for content performance (10.1)
  • Add heat mapping for video engagement (Outside scope — requires custom video player integration; YouTube/Vimeo provide their own analytics)
  • Implement user feedback mechanisms (Outside scope — Joomla extensions like JComments or external services handle this better)
  • Add export functionality for analytics data (10.1)
  • Implement automated insights and recommendations (Deferred — AI Assist already provides content suggestions; automated analytics insights are low ROI)

7. Testing and Quality Assurance

7.1 Automated Testing

  • Implement unit testing for core functionality (10.1)
  • Add integration tests for key workflows (10.1)
  • Implement end-to-end testing for critical user journeys (10.1)
  • Set up continuous integration pipeline (10.1)
  • Add code coverage reporting (10.1)
  • Implement static code analysis (10.1)
  • Create performance benchmarking tests (10.2 — database query audit with LIMIT optimizations; Joomla debug plugin provides per-page query profiling)

7.2 Manual Testing Procedures

  • Develop comprehensive test plans (10.1/10.2 — 523 PHPUnit + 246 Jest tests, Playwright E2E suite across J5/J6)
  • Create user acceptance testing protocols (10.1 — Playwright E2E smoke tests cover critical user journeys)
  • Implement regression testing procedures (10.1/10.2 — full test suite runs before every merge; lint + syntax + unit + integration)
  • Add cross-browser compatibility testing (10.1)
  • Implement mobile device testing strategy (10.1)
  • Create accessibility testing procedures (10.1/10.2 — WCAG AA compliance audit, aria attributes, keyboard nav, color contrast; CodeQL security scanning)
  • Develop security testing protocols (10.1/10.2 — CodeQL automated scanning, 4-area code quality scan, XSS/SQL injection/CSRF prevention verified)

8. Documentation and Support

8.1 User Documentation

  • Create step-by-step getting started guide (10.1)
  • Develop comprehensive admin manual (10.1)
  • Add context-sensitive help throughout the interface (10.1)
  • Create video tutorials for common tasks
  • Develop template customization guide (10.1)
  • Create troubleshooting and FAQ documentation (10.1)
  • Implement searchable knowledge base (10.1)

8.2 Developer Resources

  • Document code architecture and patterns (10.1)
  • Create plugin development guide (No public plugin API — internal addon system, not needed)
  • Add inline code documentation (10.2 — verified 100% PHPDoc coverage on all public/protected methods)
  • Develop contribution guidelines (10.1)
  • Create example extensions
  • Document database schema (10.1)
  • Provide API reference documentation

9. Performance Optimization

9.1 Frontend Performance

  • Optimize CSS and JavaScript loading (10.1)
  • Implement asset bundling and minification (10.1)
  • Add lazy loading for images and media (10.1)
  • Optimize database queries for frontend pages (10.1)
  • Implement caching for frequently accessed content (10.1)
  • Reduce server response time (10.1)
  • Optimize critical rendering path (10.1)

9.2 Backend Performance

  • Optimize admin interface loading times (10.2 — PR #1138)
  • Implement caching for admin dashboard data (10.1)
  • Optimize database queries for admin operations (10.1)
  • Add pagination for large data sets (10.1)
  • Implement asynchronous processing for time-consuming tasks (10.2 — PR #1140: chunked export, async post-restore steps)
  • Optimize media processing operations (10.2 — PR #1141: skip redundant API calls, HEAD timeouts, streaming platform skip, per-request cache)
  • Implement database query logging and optimization (10.2 — Joomla's built-in debug plugin handles query logging; audited all queries: added SQL LIMIT to 7 landing page queries, narrowed SELECT * in getOtherlinks, capped chapter fallback query. Multi-join queries already optimized with scalar subqueries and batch loading.)

10. Migration and Legacy Support

10.1 Content Workflow

  • Implement bulk import for messages from CSV/spreadsheet (10.1)
  • Add scheduled auto-archive for messages (10.1)
  • Add scheduled publishing for messages and series (10.1)
  • Implement multi-site content synchronization (Discussion #927)

10.2 Migration Bridge Package

  • Create a lightweight install package that unpublishes all Proclaim 9.x plugins/modules (10.1)

10.3 Database Migration

  • Support restoring 9.x backup files with full migration to 10.x schema (10.1)
  • Add migration wizard for direct 9.x database upgrade (10.1)
  • Add migration status/progress UI for long-running migrations (10.1)
  • Create documentation for manual migration path (9.x → 10.x) (10.2)

10.4 Backward Compatibility Review

10.5 Legacy Format Support (NOT PLANNED)

The following legacy database formats are unsupported and cannot be directly imported:

Version Era Reason
6.0.x and earlier 2011 Schema too different, embedded media in studies table
6.1.x - 6.2.x 2011 Uses #__bsms_schemaversion table, INI params format
7.0.x - 7.1.x 2011-2012 Major schema differences, removed tables

Recommended migration path for legacy databases:

  1. Install Proclaim 9.2.8 on Joomla 3.x
  2. Import/restore the old database backup
  3. Run the 9.x migration (handles 6.0.8+ automatically)
  4. Export using 9.x backup function
  5. Import into Proclaim 10.x on Joomla 5/6

11. Community and Ecosystem

11.1 Community Building

  • Create developer community forum (10.1)
  • Implement contribution recognition system (10.1)
  • Develop plugin marketplace
  • Create showcase for church implementations
  • Implement regular community feedback mechanisms (10.1)
  • Organize virtual meetups or conferences (Organizational, not a development task)
  • Develop mentorship program for new contributors (Organizational, not a development task)

11.2 Ecosystem Expansion

  • Create template marketplace
  • Develop plugin extension framework
  • Implement theme customization system
  • Create integration marketplace
  • Develop certification program for developers
  • Implement translation contribution system (10.1)
  • Create educational resources for developers

Clone this wiki locally