Skip to content

davordragic/test-php

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

15 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Backend Developer Test

The Business of Fashion uses various tests to assess whether a candidate is best suited to the expectations of the role advertised and the offer given.

This test aims to demonstrate your technical skills in practice: that you can deliver a solution which implements a scalable backend architecture, that produces the right results, and that pays attention to the requirement details.

Instructions & Deliverables

  1. Fork this repository to your account (https://help.github.com/articles/fork-a-repo/)
  2. Read these instructions carefully first before continuing with the practical test
  3. Read the Requirements / Story Definition and Conditions of Acceptance
  4. Identify and write at least 5 test cases (no code necessary; Gherkin or a written list will suffice)
    • Demonstrate your understanding of the Conditions of Acceptance
    • Identify any appropriate edge cases
  5. Implement the Story's functionality using the ReportYearlyCommand.php file
    • Develop a solution which demonstrates your skills and strengths
    • You may add/change/modify any files in the project
    • You may use any tool to review/modify the associated database
    • You may use any google or other references for mysql/php syntax queries
  6. Describe how you can build a better "Product" for this coding task in SOLUTION.md and include your estimates
  7. Create a pull request to origin repository when you are satisfied with your solution (https://help.github.com/articles/about-pull-requests/)

Other Notes

  • You may modify the database accordingly, however, please mention what you have done
  • This is not a full Symfony framework app so some components are missing - you can add any components you might need
  • Please remember to demonstrate your skills and how you would normally approach development tasks regardless of this smaller task size.
  • I must ask that you time yourself so that you balance Quality and Delivery. I will not prescribe a deadline of X hours, instead, I would like you estimate the task, complete the task, and measure your elapsed time. Please submit your estimate and actual time with your code solution.

Requirements / Story Definitions

So that I can have visibility on profile performance, as a Business Analyst, I want to report the monthly views for each profile. CONDITIONS OF ACCEPTANCE (COA's)

GIVEN that there is historical data available
WHEN I execute the Yearly Views report
THEN I expect to see a monthly breakdown of the total views per profiles

GIVEN that there is historical data available
WHEN I view the Yearly Views report
THEN I expect to have the profiles names listed in alphabetical order

GIVEN that there is historical data available
WHEN I view the Yearly Views report
THEN I expect to see "n/a" when data is not available

Technical Setup

  1. On the command prompt, run:

    $> cd /path/to/the/test/folder

    $> mysql -uroot -p < setup.sql

    This can be used to reset the entire database if required.

    $> composer install

  2. Ensure the database schema and user is setup as per setup.sql

  3. Execute the test:data:reset command to add the required data for the test:

    $> bin/console test:data:reset

  4. Execute the report:profiles:yearly command to see a sample output and test the environment:

    $> bin/console report:profiles:yearly

    You should see a list of items in the databases

Example Output

+---------------------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+
| Profile        2008 | Jan     | Feb     | Mar     | Apr     | May     | Jun     | Jul     | Aug     | Sep     | Oct     | Nov     | Dec     |
+---------------------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+
| Karl Lagerfeld      | 480,473 | 463,351 | 532,346 | 465,007 | 521,620 | 491,639 | 533,723 | 517,978 | 543,445 | 484,934 | 476,251 | 495,360 |
| Anna Wintor         | 507,203 | 508,857 | 538,266 | 494,497 | 452,481 | 441,739 | 502,678 | 514,375 | 484,821 | 510,688 | 493,846 | 501,483 |
| Tom Ford            | 536,575 | 469,248 | 524,297 | 492,777 | 488,485 | 511,724 | 483,425 |  34,670 | 496,402 | 528,325 | 504,403 | 507,595 |
| Pierre Alexis Dumas | 514,707 | 466,740 | 517,315 | 472,719 | 519,206 | 475,285 | 508,163 | 502,462 | 514,564 | 511,195 | 524,600 | 495,845 |
| Sandra Choi         | 528,838 | 498,999 | 502,382 | 510,503 | 517,367 | 492,643 | 517,876 | 545,373 | 492,309 | 598,763 | 503,187 | 516,981 |
+---------------------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • PHP 100.0%