Interview project for Fullstack Developer.

Overview

Interview Project Fullstack Testing status

  • Requires PHP: 7.0
  • WP requires at least: 5.7
  • WP tested up to: 5.7
  • WC requires at least: 5.6.0
  • WC tested up to: 5.8.0
  • Stable tag: 1.0.0
  • License: GPLv3 or later License

About this project

The project is to build a dashboard widget in WordPress that allows a shop manager or admin to enter an email address and get back a list of recent orders associated with that email.

The goal of the project is to help us understand how you would approach WooCommerce plugin development and communicate as a developer.

Getting started

You'll need to have a local development environment set up (Local, Valet, Docker, etc.) with WordPress and WooCommerce installed.

1. Create a WordPress install

mkdir woocommerce
cd woocommerce
wp core download
wp config create --dbname={dbname} --dbuser={dbuser} [enter pass if you have one --dbpass={dbpass}]
wp db create
wp core install --url={siteurl} --title={Title} --admin_user=admin --admin_password=admin [email protected]

2. Install the plugin files

Fork this plugin into a private repo (so other candidates can't see your work), and then install the fork in your WordPress directory.

git clone https://github.com/{username}/interview-project-fullstack wp-content/plugins/interview-project-fullstack

3. Installs the test dependencies

cd wp-content/plugins/interview-project-fullstack
composer install

4. Creates a database for running tests and install core WordPress unit tests

You'll be creating a new database to runs the tests. The contents of the database will be deleted after each run. Use your local database username/password to set up the database.

vendor/bin/install-wp-tests.sh {dbname} {dbuser} {dbpass}

Example:

vendor/bin/install-wp-tests.sh project_fullstack_tests root ''

5. Run the tests

You can run the version of phpunit that composer installs to run the:

vendor/phpunit/phpunit/phpunit -c phpunit.xml

Once the test runs the terminal output how many tests passed/failed. If you have no output, it means the test didn't run properly. In that case, check your PHP logs.

If you have trouble getting PHPUnit set up locally, automated tests also run on GitHub for any PR.

Automated Tests Testing status

Automated tests will be automatically run on your branch whenever a commit to GitHub is pushed to main or in a PR.

Project instructions

Functionality

  • Add an input field for email address and a search button to the dashboard widget.
  • While the search for orders is running, include a visual indicator so the admin knows the search is in progress.
  • Display up to five order results. These should be ordered by date, with the most recent orders first.
  • The results should include the order ID (which links to the order edit screen), date order was created, and total amount of order. If there are no results returned, display a message indicating that. Order data can be fetched with an ajax call or using a REST endpoint, whatever you prefer.
  • Each time an order is returned by this widget, add or update the meta field "last_lookup" on the order with the current unix timestamp.

Requirements

  • Search functionality should be accurate.
  • Include plenty of code comments and make clear commit messages.
  • Include at least two unit tests.
You might also like...
Preparation notes for Magento 2 Certified Professional Developer exam

Overview Magento 2 Certified Professional Developer notes 1. Topics 18% 1 - Magento Architecture and Customization Techniques (11 questions) modules,

Warden is a CLI utility for orchestrating Docker based developer environments

Warden Warden is a CLI utility for orchestrating Docker based developer environments, and enables multiple local environments to run simultaneously wi

Developer Toolbar for Magento2
Developer Toolbar for Magento2

Developer Toolbar for Magento2 About Hope this debug toolbar can speed up Magento2 development module. Any feedback and idea to improve this toolbar w

Developer-friendly framework heavily inspired by Laravel and based on Timber and Wpemerge solutions for WordPress themes development with Bedrock folder structure

Lightweight Brocooly (Brocket) Improved Controllers, Middleware and Routers, but slightly less powerful Container Open beta. Package in development Cr

Collection of PHP functions, mini classes and snippets for everyday developer's routine life

JBZoo / Utils Collection of PHP functions, mini classes and snippets for everyday developer's routine life. Install composer require jbzoo/utils Usage

dEveloper Module for PHP-Nuke Titanium v4.0.0

Titanium_SandBox Titanium_SandBox The Titanium Sandbox Module v4.0.0b: This module is only for PHP-Nuke Titanium application builders. A sandbox is a

Roach-example-project - Example project to demonstrate how to use RoachPHP in a Laravel project.

Example repository to illustrate how to use roach-php/laravel in a Laravel app. Check app/Spiders/FussballdatenSpider.php for an example spider that c

Plant Watering Sensor Project for Zigbee Network (based on the Source Code of the DIYRUZ Flower Project  - https://github.com/diyruz/flower).
Plant Watering Sensor Project for Zigbee Network (based on the Source Code of the DIYRUZ Flower Project - https://github.com/diyruz/flower).

Plant-Watering-Sensor-Zigbee Plant Watering Sensor Project for Zigbee Network (based on the Source Code of the DIYRUZ Flower Project

Owner
Universal Yums
Universal Yums
This is an extension to my datacode interview questions.

This is an extension to my datacode interview questions. This is a fully working response form with email functionality as well as database manipulation.The form can be translated from French, English and Pirate based on the browser language.

null 1 Feb 13, 2022
Some exercises to practice whiteboard interview questions in PHP.

PHP Interview Exercises · A number of exercises to practice whiteboard interview questions in PHP. Inside exercises directory, you can find folders co

Anton Ždanov 421 Jan 9, 2023
This is the information I prepared for the PHP interview.The notes include PHP, MySql, Linux, etc.

PHP面试准备的资料 这个项目是自己准备面试整理的资料。可能包括PHP、MySQL等资料。方便自己以后查阅,会不定期更新,如果错误,请指出,谢谢。欢迎大家提交PR,谢谢大家的star 可以通过https://xianyunyh.gitbooks.io/php-interview/预览。欢迎有精力的朋

Troy 1.2k Dec 24, 2022
Membuat Project Untuk Tes Web Developer - Digitaliz

About Laravel Laravel is a web application framework with expressive, elegant syntax. We believe development must be an enjoyable and creative experie

Indra Wijaya 1 Jan 24, 2022
Learn to apply best practices as a PHP backend developer

PHP eCommerce Project Here are the things that this repo will cover: Object oriented programming principles and best practices Object oriented session

Muhammad Salah 0 Aug 2, 2022
⚗️ Adds code analysis to Laravel improving developer productivity and code quality.

⚗️ About Larastan Larastan was created by Can Vural and Nuno Maduro, got artwork designed by @Caneco, is maintained by Can Vural, Nuno Maduro, and Vik

Nuno Maduro 4.4k Jan 4, 2023
PHP Profiler & Developer Toolbar (built for Phalcon)

Prophiler - A PHP Profiler & Developer Toolbar built for Phalcon Demo The demo website has been moved to a separate repository: https://github.com/fab

Fabian Fuelling 444 Dec 27, 2022
Resources for the Magento 2 Certified Professional Front End Developer exam

Magento 2 Certified Professional Front End Developer Training Resources Below are the 6 slide decks used internally at Fisheye to help us prepare for

Fisheye Academy 109 Oct 21, 2022
📚Magento 2 Certified Professional Developer Plus Exam

?? Magento2 Certified Professional Developer Plus There are notes for those who preparing to pass Magento 2 Certified Professional Developer Plus exam

Roman Glushko 80 Aug 20, 2022
Preparation notes for Magento 2 Certified Professional Cloud Developer exam

Overview Magento 2 Certified Professional Cloud Developer 1. Topics 13% 1 - Commerce Cloud Fundamentals (8 questions) 9% 2 - Local Environment (6 ques

Magento Notes 78 Dec 26, 2022