WordPress Fullstack plugin developmennt - Gutenberg block, REST API, and so many...
Capsule List In Block Editor - Text label settings
Capsule List In Block Editor - Color settings
Frontend - Capsule List with filtering+pagination
Frontend - Capsule detail popup
Frontend - No capsuel found
Frontend - Mobile responsive view
- Composer >=
v2
- PHP >=
7.4
- WordPress version >=
5.8
Clone repository
git clone https://github.com/ManiruzzamanAkash/Maniruzzaman-Frontend-Developer.git
Go to folder and install composer
cd Maniruzzaman-Frontend-Developer
composer install
Npm dependencies
npm i
npm start
Active the plugin from your /wp-admin/plugins.php
.
- Add a post from
wp-admin/post-new.php
. - Search Gutenberg block
Spacex data
.. - Insert that block.
- Give some setting value, like -
- Search text label
- Pagination Previous text label
- Pagination Next text label
- Change impact instantly on the editor. [For editor, set the limit to 2].
- Visit the post details in frontend.
- Check the filtering by status, type, mission.
- Check the pagination.
- Check the detail of capsule in a modal.
- PHPCS
- PHPUnit Testing
- Jest Unit Testing
- e2e Testing (Snapshot testing)
PHPCS Checking
composer run phpcs
Fix PHPCS
composer run phpcbf
PHPUnit test running
composer run test
PHPUnit test with PHPCS
composer run test:all
npm run test:unit
PHPCS - Passed PHPUnit - 15 tests, 23 assertions - Passed
Jest Unit Test - 15 tests - Passed
- Need to install docker on local machine. I've used
wp-env
package to install WordPress docker setup. You can follow this - https://developer.wordpress.org/block-editor/reference-guides/packages/packages-env/ - Commands to start from here -
npm i -g @wordpress/env --save-dev
wp-env start
If everything is successfull, you'll see something like this -
WordPress development site started at http://localhost:8888/
WordPress test site started at http://localhost:8889/
MySQL is listening on port 59087
MySQL for automated testing is listening on port 59085
npm run test:e2e
Added in Video.
# Build plugin
npm run build
# Make i18n localization
npm run makepot
# Create plugin zip
npm run zip
# Release plugin = npm run build + makepot + zip
npm run release
For fetching capsules, use this API - https://docs.spacexdata.com/#00ac651a-8ba2-4b4c-858a-4034dd1254fa.
Here, there is a property called limit
which doesn't work as expected and so some inconsitance with Pagination coud be found. But it's totally depend on the Spacex server.