83% hootboard

Code Review | HootBoard - Bulletin Board For Your Organization & Team Communication

WordPress plugin HootBoard - Bulletin Board For Your Organization & Team Communication scored83%from 54 tests.

About plugin

  • Plugin page: hootboard
  • Plugin version: 3.1.3
  • PHP compatiblity: 7.0+
  • PHP version: 7.4.16
  • WordPress compatibility: 4.7-6.3
  • WordPress version: 6.3.1
  • First release: Feb 4, 2014
  • Latest release: Oct 25, 2023
  • Number of updates: 61
  • Update frequency: every 58.3 days
  • Top authors: HootBoard (100%)

Code review

54 tests

User reviews

7 reviews

Install metrics

100+ active /10,550 total downloads

Benchmarks

Plugin footprint 83% from 16 tests

Installer Passed 1 test

🔺 Critical test (weight: 50) | The install procedure must perform silently
This plugin's installer ran successfully

Server metrics [RAM: ▲0.02MB] [CPU: ▼7.89ms] Passed 4 tests

A check of server-side resources used by HootBoard - Bulletin Board For Your Organization & Team Communication
This plugin does not affect your website's performance
PageMemory (MB)CPU Time (ms)
Home /3.49 ▲0.0336.08 ▼1.92
Dashboard /wp-admin3.33 ▼0.0144.38 ▼14.21
Posts /wp-admin/edit.php3.39 ▲0.0342.36 ▼0.63
Add New Post /wp-admin/post-new.php5.94 ▲0.0582.23 ▼14.81
Media Library /wp-admin/upload.php3.26 ▲0.0339.34 ▲0.57

Server storage [IO: ▲0.09MB] [DB: ▲0.00MB] Passed 3 tests

Analyzing filesystem and database footprints of this plugin
There were no storage issued detected upon installing this plugin
Filesystem: 14 new files
Database: no new tables, 6 new options
New WordPress options
can_compress_scripts
theysaidso_admin_options
widget_recent-comments
widget_theysaidso_widget
db_upgraded
widget_recent-posts

Browser metrics Passed 4 tests

Checking browser requirements for HootBoard - Bulletin Board For Your Organization & Team Communication
There were no issues detected in relation to browser resource usage
PageNodesMemory (MB)Script (ms)Layout (ms)
Home /2,814 ▲5314.74 ▲0.451.59 ▼0.0241.59 ▲2.34
Dashboard /wp-admin2,220 ▲435.06 ▼0.5185.61 ▼3.1483.41 ▲41.35
Posts /wp-admin/edit.php2,125 ▲252.41 ▲0.4636.79 ▲1.2730.38 ▼7.44
Add New Post /wp-admin/post-new.php1,694 ▲16621.71 ▼1.53748.99 ▲87.0137.57 ▼24.51
Media Library /wp-admin/upload.php1,422 ▲224.64 ▲0.4995.77 ▼19.0376.36 ▲27.67

Uninstaller [IO: ▲0.00MB] [DB: ▲0.00MB] 75% from 4 tests

🔸 Tests weight: 35 | Verifying that this plugin uninstalls completely without leaving any traces
It is recommended to fix the following
  • This plugin did not uninstall successfully, leaving 6 options in the database
    • widget_recent-comments
    • db_upgraded
    • widget_recent-posts
    • widget_theysaidso_widget
    • theysaidso_admin_options
    • can_compress_scripts

Smoke tests 75% from 4 tests

Server-side errors Passed 1 test

🔹 Test weight: 20 | This is a short smoke test looking for server-side errors
Even though no errors were found, this is by no means an exhaustive test

SRP 50% from 2 tests

🔹 Tests weight: 20 | SRP (Single-Responsibility Principle) - PHP files must act as libraries and never output text or perform any action when accessed directly in a browser
Almost there! Just fix the following items
  • 3× GET requests to PHP files trigger server-side errors or Error 500 responses:
    • > PHP Fatal error
      Uncaught Error: Call to undefined function add_action() in wp-content/plugins/hootboard/classes/class-create-rest-routes.php:6
    • > PHP Fatal error
      Uncaught Error: Call to undefined function add_shortcode() in wp-content/plugins/hootboard/classes/class-create-shortcode.php:6
    • > PHP Fatal error
      Uncaught Error: Call to undefined function add_action() in wp-content/plugins/hootboard/classes/class-create-admin-menu.php:7

User-side errors Passed 1 test

🔹 Test weight: 20 | A shallow check that no browser errors were triggered
Everything seems fine, but this is not an exhaustive test

Optimizations

Plugin configuration 86% from 29 tests

readme.txt 81% from 16 tests

It's important to format your readme.txt file correctly as it is parsed for the public listing of your plugin
Attributes that need to be fixed:
  • Screenshots: Add descriptions for screenshots #1, #2, #3, #4 in hootboard/assets to your readme.txt
  • Donate link: Invalid URI found ("")
  • Tags: Please reduce the number of tags, currently 46 tag instead of maximum 10
You can look at the official readme.txt

hootboard/hootboard.php 92% from 13 tests

Analyzing the main PHP file in "HootBoard - Bulletin Board For Your Organization & Team Communication" version 3.1.3
You should first fix the following items:
  • Description: If Twitter did it, so should we! Keep the description under 140 characters (currently 150 characters long)

Code Analysis Passed 3 tests

File types Passed 1 test

🔸 Test weight: 35 | There should be no dangerous file extensions present in any WordPress plugin
There were no executable files found in this plugin150 lines of code in 5 files:
LanguageFilesBlank linesComment linesLines of code
PHP43023149
JavaScript1001

PHP code Passed 2 tests

An overview of cyclomatic complexity and code structure
Everything seems fine, there were no complexity issues found
Cyclomatic complexity
Average complexity per logical line of code0.24
Average class complexity4.33
▷ Minimum class complexity2.00
▷ Maximum class complexity9.00
Average method complexity1.91
▷ Minimum method complexity1.00
▷ Maximum method complexity9.00
Code structure
Namespaces0
Interfaces0
Traits0
Classes3
▷ Abstract classes00.00%
▷ Concrete classes3100.00%
▷ Final classes00.00%
Methods11
▷ Static methods00.00%
▷ Public methods11100.00%
▷ Protected methods00.00%
▷ Private methods00.00%
Functions1
▷ Named functions1100.00%
▷ Anonymous functions00.00%
Constants2
▷ Global constants2100.00%
▷ Class constants00.00%
▷ Public constants00.00%

Plugin size Passed 2 tests

Image compression Passed 2 tests

Often times overlooked, PNG files can occupy unnecessary space in your plugin
8 PNG files occupy 0.06MB with 0.02MB in potential savings
Potential savings
Compression of 5 random PNG files using pngquant
FileSize - originalSize - compressedSavings
dist/images/enter-link.png1.29KB0.77KB▼ 40.21%
dist/images/customize.png1.91KB1.15KB▼ 40.04%
dist/images/caret.png0.18KB0.21KB0.00%
dist/images/menu-icon.png1.90KB0.58KB▼ 69.36%
dist/images/create-board.png2.38KB1.17KB▼ 50.66%