Skip to content
 
 

Latest commit

 

History

14 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

robert-php-dev-test

PHP Architect Test for Robert

What is Robert?

Robert is an innovative Computer-Assisted Translation (CAT) tool crafted to streamline translation tasks, enhancing the speed and efficiency of translators. By uploading the source document into the application, the interface intelligently segments it into translation units—be they phrases, sentences, or paragraphs—facilitating a smoother translation process.

What are the units of translation?

In the field of translation, a translation unit is a segment of a text which the translator treats as a single cognitive unit for the purposes of establishing an equivalence. It may be a single word, a phrase, one or more sentences, or even a larger unit.

Instructions:

  1. Fork this repository to your own GitHub account.
  2. Create a new branch with your name for making changes.
  3. Work on the tasks listed below.
  4. Once done, create a pull request from your branch to the main repository.

Tasks:

Task 1: Design Patterns and Architecture

You are tasked with designing the architecture for a new Computer-Assisted Translation tool. Consider the following aspects:

  • How would you structure the system to handle multilingual content efficiently?
  • Discuss the design patterns you would implement to ensure scalability, maintainability, and flexibility.
  • Propose a database schema to store and manage translation units.
  • Briefly describe how you would implement version control for translations.

Task 2: PHP Coding Challenge

Implement a basic PHP class for managing translation units. The class should have the following functionalities:

  • Add a new translation unit.
  • Retrieve a translation unit by ID.
  • Update a translation unit and keep history.

Please provide a simple usage example demonstrating these functionalities.

Task 3: API Design

Design a simple RESTful API for the CAT tool. The API should allow users to perform CRUD operations on translation units. Include endpoints for listing all units, retrieving a specific unit, updating a unit, and deleting a unit.

Task 4: ReactJS Task

Develop a basic ReactJS component to interact with the API designed in Task 3. The React component should:

  • Display a list of translation units (i.e. 10).
  • Allow users to add translations.
  • Allow users to edit translations.

Task 5: Testing (optional)

Write unit tests for the PHP class you implemented in Task 2. Use a testing framework of your choice.

Evaluation Criteria:

Design and Architecture (30 points):

  • Well-structured architecture considering multilingual content and design patterns.
  • Logical and efficient database schema.
  • Clear explanation of version control implementation.

PHP Coding Challenge (30 points):

  • Correct implementation of the PHP class.
  • Proper usage example provided.

API Design (20 points):

  • RESTful design principles.
  • Clear definition of endpoints and their functionalities.

ReactJS Task (20 points):

  • Proper implementation of the ReactJS component.
  • Functionality to interact with the API.

Testing (10000000 points):

  • Comprehensive unit tests for the PHP class.

About

PHP Architect Test for Robert

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages