|  Download Maniruzzaman-Frontend-DeveloperWordPress Fullstack plugin developmennt - Gutenberg block, REST API, and so many... Demo Videohttps://youtu.be/h-BJczvJWLI Demo ScreenshotsCapsule 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 
 Local development Setup InstructionRequirements:
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
 Start pluginActive the plugin from your /wp-admin/plugins.php. Plugin Flow
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.
 Testing
PHPCS
PHPUnit Testing
Jest Unit Testing
e2e Testing (Snapshot testing)
 PHPCSPHPCS Checking composer run phpcs
 Fix PHPCS composer run phpcbf
 PHP Unit testPHPUnit test running composer run test
 PHPUnit test with PHPCS composer run test:all
 Jest Unit testnpm run test:unit
 PHPUnit test resultPHPCS - Passed
PHPUnit - 15 tests, 23 assertions - Passed 
 Jest Unit Test ResultJest Unit Test - 15 tests - Passed 
 e2e TestRequirements for e2e test
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
 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 59085If everything is successfull, you'll see something like this - 
 Start e2e testingnpm run test:e2e
 e2e Test ResultAdded in Video. Plugin zip and release commands -# 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
 Known issueFor fetching capsules, use this API - https://docs.spacexdata.com/#00ac651a-8ba2-4b4c-858a-4034dd1254fa. Here, there is a property called limitwhich doesn't work as expected and so some inconsitance with Pagination coud be found. But it's totally depend on the Spacex server. |