{"id":441,"date":"2025-09-18T19:21:50","date_gmt":"2025-09-18T07:21:50","guid":{"rendered":"https:\/\/feaa.info\/wordpress\/grownative\/?page_id=441"},"modified":"2025-09-18T19:35:16","modified_gmt":"2025-09-18T07:35:16","slug":"technical-requirements","status":"publish","type":"page","link":"https:\/\/feaa.info\/wordpress\/grownative\/technical-requirements\/","title":{"rendered":"Technical Requirements and Architecture"},"content":{"rendered":"\n<h2 class=\"wp-block-heading\">Current WordPress Analysis<\/h2>\n\n\n\n<p><strong>Existing Site:<\/strong> <a href=\"https:\/\/feaa.info\/wordpress\/grownative\/\">https:\/\/feaa.info\/wordpress\/grownative\/<\/a><\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>WordPress version: [TO BE DETERMINED during audit]<\/li>\n\n\n\n<li>Current plugins: [TO BE INVENTORIED]<\/li>\n\n\n\n<li>Hosting provider: [TO BE DOCUMENTED]<\/li>\n\n\n\n<li>Domain configuration: Subdirectory installation<\/li>\n<\/ul>\n\n\n\n<h2 class=\"wp-block-heading\">Hosting Requirements<\/h2>\n\n\n\n<h3 class=\"wp-block-heading\"><strong>DECISION REQUIRED:<\/strong> Hosting Strategy<\/h3>\n\n\n\n<p><strong>Option A: Enhance Current Hosting<\/strong><\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Continue with existing hosting provider<\/li>\n\n\n\n<li>Upgrade plan if needed for additional database requirements<\/li>\n\n\n\n<li>Maintain subdirectory structure<\/li>\n<\/ul>\n\n\n\n<p><strong>Option B: Dedicated Hosting<\/strong><\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Move to WordPress-specific hosting (WP Engine, Kinsta, etc.)<\/li>\n\n\n\n<li>Better performance and backup capabilities<\/li>\n\n\n\n<li>Easier staging environments<\/li>\n<\/ul>\n\n\n\n<p><strong>Current hosting capabilities needed:<\/strong><\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>[ ] MySQL database (minimum 5.7)<\/li>\n\n\n\n<li>[ ] PHP 8.0+ support<\/li>\n\n\n\n<li>[ ] SSL certificate<\/li>\n\n\n\n<li>[ ] Regular backups<\/li>\n\n\n\n<li>[ ] Staging environment capability<\/li>\n<\/ul>\n\n\n\n<h2 class=\"wp-block-heading\">WordPress Plugin Architecture<\/h2>\n\n\n\n<h3 class=\"wp-block-heading\">Core Functionality Plugins<\/h3>\n\n\n\n<p><strong>Required Plugins:<\/strong><\/p>\n\n\n\n<ol class=\"wp-block-list\">\n<li><strong>Advanced Custom Fields Pro<\/strong> ($149\/year)\n<ul class=\"wp-block-list\">\n<li>Purpose: Structured plant data entry<\/li>\n\n\n\n<li>Features: Custom post types, field groups, relationship fields<\/li>\n\n\n\n<li>Alternative: Free ACF + Custom code (more development work)<\/li>\n<\/ul>\n<\/li>\n\n\n\n<li><strong>SearchWP<\/strong> ($99\/year) OR <strong>FacetWP<\/strong> ($199\/year)\n<ul class=\"wp-block-list\">\n<li>Purpose: Advanced plant search and filtering<\/li>\n\n\n\n<li><strong>DECISION REQUIRED:<\/strong> SearchWP (simpler) vs FacetWP (more powerful filtering)<\/li>\n<\/ul>\n<\/li>\n\n\n\n<li><strong>WP User Frontend<\/strong> (Free + Pro $97\/year)\n<ul class=\"wp-block-list\">\n<li>Purpose: User-submitted plant information<\/li>\n\n\n\n<li>Features: Frontend forms, user dashboards<\/li>\n<\/ul>\n<\/li>\n\n\n\n<li><strong>Ultimate Member<\/strong> (Free + Extensions)\n<ul class=\"wp-block-list\">\n<li>Purpose: User profiles and community features<\/li>\n\n\n\n<li>Features: Registration, profiles, user directories<\/li>\n<\/ul>\n<\/li>\n<\/ol>\n\n\n\n<h3 class=\"wp-block-heading\"><strong>DECISION REQUIRED:<\/strong> Additional Features<\/h3>\n\n\n\n<p><strong>Community Features:<\/strong><\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>[ ] <strong>WP Review<\/strong> ($29) &#8211; Plant\/method rating system<\/li>\n\n\n\n<li>[ ] <strong>bbPress<\/strong> (Free) &#8211; Forum discussions<\/li>\n\n\n\n<li>[ ] <strong>BuddyPress<\/strong> (Free) &#8211; Social networking features<\/li>\n<\/ul>\n\n\n\n<p><strong>Content Management:<\/strong><\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>[ ] <strong>WP All Import<\/strong> ($199) &#8211; Bulk plant data import<\/li>\n\n\n\n<li>[ ] <strong>Duplicate Post<\/strong> (Free) &#8211; Template plant pages<\/li>\n\n\n\n<li>[ ] <strong>Admin Columns<\/strong> (Free) &#8211; Better content management<\/li>\n<\/ul>\n\n\n\n<p><strong>Performance &amp; SEO:<\/strong><\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>[ ] <strong>WP Rocket<\/strong> ($59\/year) &#8211; Caching<\/li>\n\n\n\n<li>[ ] <strong>Yoast SEO<\/strong> (Free) &#8211; Search optimization<\/li>\n\n\n\n<li>[ ] <strong>Smush<\/strong> (Free) &#8211; Image optimization<\/li>\n<\/ul>\n\n\n\n<h2 class=\"wp-block-heading\">Database Architecture<\/h2>\n\n\n\n<h3 class=\"wp-block-heading\">Custom Post Types Structure<\/h3>\n\n\n\n<pre class=\"wp-block-code\"><code>Plants (Custom Post Type)\n\u251c\u2500\u2500 Standard WordPress Fields\n\u2502   \u251c\u2500\u2500 Title (Scientific Name)\n\u2502   \u251c\u2500\u2500 Content (General Description)\n\u2502   \u251c\u2500\u2500 Featured Image (Primary Plant Photo)\n\u2502   \u2514\u2500\u2500 Excerpt (Brief Description)\n\u251c\u2500\u2500 Custom Taxonomies\n\u2502   \u251c\u2500\u2500 Plant Type (Tree, Shrub, Herb, Fern, etc.)\n\u2502   \u251c\u2500\u2500 Growth Habit (Spreading, Upright, Climbing, etc.)\n\u2502   \u251c\u2500\u2500 Conservation Status (Not Threatened, At Risk, etc.)\n\u2502   \u2514\u2500\u2500 Suitable Regions (Northland, Auckland, Waikato, etc.)\n\u2514\u2500\u2500 Custom Fields (ACF)\n    \u251c\u2500\u2500 Basic Information\n    \u251c\u2500\u2500 Physical Characteristics\n    \u251c\u2500\u2500 Growing Conditions\n    \u251c\u2500\u2500 Propagation Information\n    \u2514\u2500\u2500 Cultural Information\n<\/code><\/pre>\n\n\n\n<h3 class=\"wp-block-heading\"><strong>DECISION REQUIRED:<\/strong> Data Complexity<\/h3>\n\n\n\n<p><strong>Simple Approach:<\/strong><\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Use ACF fields within single post type<\/li>\n\n\n\n<li>Rely on taxonomies for categorization<\/li>\n\n\n\n<li>Store user contributions as comments\/separate posts<\/li>\n<\/ul>\n\n\n\n<p><strong>Advanced Approach:<\/strong><\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Multiple related post types (Plants, Propagation Methods, Success Stories)<\/li>\n\n\n\n<li>Custom database tables for complex relationships<\/li>\n\n\n\n<li>More development complexity but better data structure<\/li>\n<\/ul>\n\n\n\n<h2 class=\"wp-block-heading\">API Readiness for Future Mobile Apps<\/h2>\n\n\n\n<h3 class=\"wp-block-heading\">WordPress REST API Extensions<\/h3>\n\n\n\n<p><strong>Standard WordPress REST API provides:<\/strong><\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Plant post data retrieval<\/li>\n\n\n\n<li>Taxonomy filtering<\/li>\n\n\n\n<li>User authentication<\/li>\n\n\n\n<li>Media\/image access<\/li>\n<\/ul>\n\n\n\n<p><strong>Custom API Endpoints Needed:<\/strong><\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>\/\/ Example custom endpoints for mobile app\n\/wp-json\/grownative\/v1\/plants\/\n\/wp-json\/grownative\/v1\/plants\/{id}\/propagation-methods\n\/wp-json\/grownative\/v1\/search\/plants?conditions=shade&amp;type=tree\n\/wp-json\/grownative\/v1\/user\/success-stories\n<\/code><\/pre>\n\n\n\n<h3 class=\"wp-block-heading\"><strong>DECISION REQUIRED:<\/strong> API Scope<\/h3>\n\n\n\n<p><strong>Basic API (Recommended for Phase 1):<\/strong><\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Read-only access to plant database<\/li>\n\n\n\n<li>Simple filtering and search<\/li>\n\n\n\n<li>User authentication for future contributions<\/li>\n<\/ul>\n\n\n\n<p><strong>Advanced API:<\/strong><\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Full CRUD operations via mobile app<\/li>\n\n\n\n<li>Real-time synchronization<\/li>\n\n\n\n<li>Offline capability support<\/li>\n\n\n\n<li>Image upload from mobile<\/li>\n<\/ul>\n\n\n\n<h2 class=\"wp-block-heading\">Development Environment<\/h2>\n\n\n\n<h3 class=\"wp-block-heading\">Local Development Setup<\/h3>\n\n\n\n<p><strong>Required Tools:<\/strong><\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Docker Desktop<\/li>\n\n\n\n<li>Git version control<\/li>\n\n\n\n<li>Code editor (VS Code recommended)<\/li>\n\n\n\n<li>Claude Code (already installed)<\/li>\n<\/ul>\n\n\n\n<p><strong>Docker Configuration:<\/strong><\/p>\n\n\n\n<pre class=\"wp-block-code\"><code># docker-compose.yml structure\nservices:\n  wordpress:\n    image: wordpress:latest\n    volumes:\n      - .\/themes:\/var\/www\/html\/wp-content\/themes\n      - .\/plugins:\/var\/www\/html\/wp-content\/plugins\n      - .\/uploads:\/var\/www\/html\/wp-content\/uploads\n  mysql:\n    image: mysql:8.0\n  phpmyadmin:\n    image: phpmyadmin\/phpmyadmin\n<\/code><\/pre>\n\n\n\n<h3 class=\"wp-block-heading\"><strong>DECISION REQUIRED:<\/strong> Development Workflow<\/h3>\n\n\n\n<p><strong>Git Repository Structure:<\/strong><\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>grownative-nz\/\n\u251c\u2500\u2500 wp-content\/\n\u2502   \u251c\u2500\u2500 themes\/grownative-child\/\n\u2502   \u251c\u2500\u2500 plugins\/grownative-custom\/\n\u2502   \u2514\u2500\u2500 uploads\/\n\u251c\u2500\u2500 database\/\n\u2502   \u2514\u2500\u2500 seeds\/\n\u251c\u2500\u2500 docker\/\n\u251c\u2500\u2500 documentation\/\n\u2514\u2500\u2500 deployment\/\n<\/code><\/pre>\n\n\n\n<p><strong>Branching Strategy:<\/strong><\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><code>main<\/code> (production)<\/li>\n\n\n\n<li><code>staging<\/code> (staging environment)<\/li>\n\n\n\n<li><code>develop<\/code> (integration)<\/li>\n\n\n\n<li><code>feature\/*<\/code> (individual features)<\/li>\n<\/ul>\n\n\n\n<h2 class=\"wp-block-heading\">Security and Backup Strategy<\/h2>\n\n\n\n<h3 class=\"wp-block-heading\">Security Requirements<\/h3>\n\n\n\n<p><strong>Essential Security Measures:<\/strong><\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>[ ] SSL certificate (HTTPS)<\/li>\n\n\n\n<li>[ ] Regular WordPress updates<\/li>\n\n\n\n<li>[ ] Plugin security audits<\/li>\n\n\n\n<li>[ ] User permission management<\/li>\n\n\n\n<li>[ ] Spam protection (Akismet)<\/li>\n<\/ul>\n\n\n\n<p><strong>Enhanced Security (Optional):<\/strong><\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>[ ] <strong>Wordfence<\/strong> (Free\/Premium) &#8211; Firewall and malware scanning<\/li>\n\n\n\n<li>[ ] Two-factor authentication for admin users<\/li>\n\n\n\n<li>[ ] Login attempt limiting<\/li>\n<\/ul>\n\n\n\n<h3 class=\"wp-block-heading\">Backup Strategy<\/h3>\n\n\n\n<p><strong>DECISION REQUIRED: Backup Approach<\/strong><\/p>\n\n\n\n<p><strong>Basic Backup:<\/strong><\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Weekly automatic database backups<\/li>\n\n\n\n<li>Monthly full site backups<\/li>\n\n\n\n<li>Manual backups before major updates<\/li>\n<\/ul>\n\n\n\n<p><strong>Comprehensive Backup:<\/strong><\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Daily automated backups<\/li>\n\n\n\n<li>Real-time database replication<\/li>\n\n\n\n<li>Version control for all custom code<\/li>\n\n\n\n<li>Disaster recovery plan<\/li>\n<\/ul>\n\n\n\n<h2 class=\"wp-block-heading\">Performance Considerations<\/h2>\n\n\n\n<h3 class=\"wp-block-heading\">Expected Load<\/h3>\n\n\n\n<p><strong>Initial Launch:<\/strong><\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>~50-100 plant species<\/li>\n\n\n\n<li>~10-50 active users<\/li>\n\n\n\n<li>Basic traffic expectations<\/li>\n<\/ul>\n\n\n\n<p><strong>Growth Projections:<\/strong><\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>500+ plant species within 2 years<\/li>\n\n\n\n<li>500+ registered users<\/li>\n\n\n\n<li>Mobile app integration<\/li>\n<\/ul>\n\n\n\n<h3 class=\"wp-block-heading\"><strong>DECISION REQUIRED:<\/strong> Performance Strategy<\/h3>\n\n\n\n<p><strong>Basic Performance:<\/strong><\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Standard WordPress caching<\/li>\n\n\n\n<li>Image optimization<\/li>\n\n\n\n<li>CDN for static assets<\/li>\n<\/ul>\n\n\n\n<p><strong>Advanced Performance:<\/strong><\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Database optimization<\/li>\n\n\n\n<li>Advanced caching (Redis\/Memcached)<\/li>\n\n\n\n<li>Load balancing preparation<\/li>\n<\/ul>\n\n\n\n<h2 class=\"wp-block-heading\">Integration Requirements<\/h2>\n\n\n\n<h3 class=\"wp-block-heading\">External Services<\/h3>\n\n\n\n<p><strong>Required Integrations:<\/strong><\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Email delivery (for user notifications)<\/li>\n\n\n\n<li>Google Analytics (traffic monitoring)<\/li>\n\n\n\n<li>Search console (SEO monitoring)<\/li>\n<\/ul>\n\n\n\n<p><strong>Optional Integrations:<\/strong><\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>[ ] iNaturalist API (for plant observations)<\/li>\n\n\n\n<li>[ ] Google Maps (for regional information)<\/li>\n\n\n\n<li>[ ] Weather APIs (for growing conditions)<\/li>\n\n\n\n<li>[ ] Social media sharing<\/li>\n<\/ul>\n\n\n\n<h3 class=\"wp-block-heading\"><strong>DECISION REQUIRED:<\/strong> Third-Party Services<\/h3>\n\n\n\n<p><strong>Email Service:<\/strong><\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>[ ] Built-in WordPress email (simple but unreliable)<\/li>\n\n\n\n<li>[ ] Mailgun\/SendGrid (reliable, ~$10\/month)<\/li>\n\n\n\n<li>[ ] Gmail SMTP (free but limited)<\/li>\n<\/ul>\n\n\n\n<p><strong>Analytics:<\/strong><\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>[ ] Google Analytics (free, comprehensive)<\/li>\n\n\n\n<li>[ ] Simple Analytics (privacy-focused, paid)<\/li>\n\n\n\n<li>[ ] WordPress stats only<\/li>\n<\/ul>\n\n\n\n<h2 class=\"wp-block-heading\">Quality Assurance<\/h2>\n\n\n\n<h3 class=\"wp-block-heading\">Testing Strategy<\/h3>\n\n\n\n<p><strong>Manual Testing:<\/strong><\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>User experience testing<\/li>\n\n\n\n<li>Cross-browser compatibility<\/li>\n\n\n\n<li>Mobile responsiveness<\/li>\n\n\n\n<li>Content management workflows<\/li>\n<\/ul>\n\n\n\n<p><strong>Automated Testing:<\/strong><\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Database backup\/restore procedures<\/li>\n\n\n\n<li>Plugin update compatibility<\/li>\n\n\n\n<li>Performance monitoring<\/li>\n<\/ul>\n\n\n\n<h3 class=\"wp-block-heading\"><strong>DECISION REQUIRED:<\/strong> Testing Scope<\/h3>\n\n\n\n<p><strong>Basic Testing:<\/strong><\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Manual testing of core features<\/li>\n\n\n\n<li>User acceptance testing with small group<\/li>\n<\/ul>\n\n\n\n<p><strong>Comprehensive Testing:<\/strong><\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Automated testing suite<\/li>\n\n\n\n<li>Performance testing<\/li>\n\n\n\n<li>Security testing<\/li>\n\n\n\n<li>Load testing<\/li>\n<\/ul>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<p><strong>Next Steps:<\/strong><\/p>\n\n\n\n<ol class=\"wp-block-list\">\n<li>Make decisions marked above<\/li>\n\n\n\n<li>Audit current hosting capabilities<\/li>\n\n\n\n<li>Inventory existing plugins and content<\/li>\n\n\n\n<li>Set up development environment<\/li>\n\n\n\n<li>Begin WordPress customization<\/li>\n<\/ol>\n\n\n\n<p><strong>Document Status:<\/strong> Draft for Review <strong>Technical Review Required:<\/strong> Yes<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Current WordPress Analysis Existing Site: https:\/\/feaa.info\/wordpress\/grownative\/ Hosting Requirements DECISION REQUIRED: Hosting Strategy Option A: Enhance Current Hosting Option B: Dedicated Hosting Current hosting capabilities needed: WordPress Plugin Architecture Core Functionality Plugins Required Plugins: DECISION REQUIRED: Additional Features Community Features: Content &hellip;<\/p>\n<p class=\"read-more\"> <a class=\"more-link\" href=\"https:\/\/feaa.info\/wordpress\/grownative\/technical-requirements\/\"> <span class=\"screen-reader-text\">Technical Requirements and Architecture<\/span> Read More &raquo;<\/a><\/p>\n","protected":false},"author":1,"featured_media":0,"parent":0,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"","meta":{"advgb_blocks_editor_width":"","advgb_blocks_columns_visual_guide":"","footnotes":""},"class_list":["post-441","page","type-page","status-publish","hentry"],"coauthors":[],"author_meta":{"author_link":"https:\/\/feaa.info\/wordpress\/grownative\/author\/admin\/","display_name":"admin"},"relative_dates":{"created":"Posted 8 months ago","modified":"Updated 8 months ago"},"absolute_dates":{"created":"Posted on 18\/09\/2025","modified":"Updated on 18\/09\/2025"},"absolute_dates_time":{"created":"Posted on 18\/09\/2025 7:21 pm","modified":"Updated on 18\/09\/2025 7:35 pm"},"featured_img_caption":"","featured_img":false,"series_order":"","_links":{"self":[{"href":"https:\/\/feaa.info\/wordpress\/grownative\/wp-json\/wp\/v2\/pages\/441","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/feaa.info\/wordpress\/grownative\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/feaa.info\/wordpress\/grownative\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/feaa.info\/wordpress\/grownative\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/feaa.info\/wordpress\/grownative\/wp-json\/wp\/v2\/comments?post=441"}],"version-history":[{"count":2,"href":"https:\/\/feaa.info\/wordpress\/grownative\/wp-json\/wp\/v2\/pages\/441\/revisions"}],"predecessor-version":[{"id":457,"href":"https:\/\/feaa.info\/wordpress\/grownative\/wp-json\/wp\/v2\/pages\/441\/revisions\/457"}],"wp:attachment":[{"href":"https:\/\/feaa.info\/wordpress\/grownative\/wp-json\/wp\/v2\/media?parent=441"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}