Code Monkey home page Code Monkey logo

php-developer-recruitment-task's Introduction

PHP developer recruitment task

Description

Imagine that a customer approached you with a request to create a simple service for importing a list of products from a CSV file and enabling basic product management. They provided you with the following CSV file (sample_products.csv) containing a sample list of products.

Your task is to create a straightforward solution, a service written in PHP 8.2, and using the latest version of the Symfony framework or its components.

Requirements

  • Have a CLI command for data import from a local CSV file or a file from a remote location, depending on the URL provided by the user.
  • Implement CLI commands for CRUD (Create, Read, Update, Delete) operations on products.
  • Implement CRUD endpoints (API) for product management using REST and JSON. Apply pagination and the ability to filter products on collection endpoints.
  • Emit events in JSON format to a RabbitMQ queue when adding a new product, updating an existing one, or deleting a product.
  • Develop unit and integration tests for the solution.
  • Create API documentation in the OAS (Swagger) format using the NelmioApiDocBundle library.
  • Prepare a development environment using docker-compose.

Bonus:

  • Prepare a consumer to consume the produced events.
  • Create a CI (Continuous Integration) configuration file for a CI/CD (Continuous Integration/Continuous Deployment) system you are familiar with, including the build and application testing stages.

Guidelines

  • Remember about SOLID and Clean Code principles that you are familiar with
  • You can either create a completely custom solution or make use of open-source libraries available on the internet.
  • Place the created solution in a GitHub repository and share the repository link with our HR team
  • If you encounter any challenges along the way, please add a comment detailing the biggest issue.

Good luck!

co.brick team

php-developer-recruitment-task's People

Contributors

lukaszbrick avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.