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.
- Fork this repository to your account (https://help.github.com/articles/fork-a-repo/)
- Read these instructions carefully first before continuing with the practical test
- Read the Requirements / Story Definition and Conditions of Acceptance
- 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
- 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
- Describe how you can build a better "Product" for this coding task in SOLUTION.md and include your estimates
- Create a pull request to origin repository when you are satisfied with your solution (https://help.github.com/articles/about-pull-requests/)
- 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.
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
-
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
-
Ensure the database schema and user is setup as per setup.sql
-
Execute the test:data:reset command to add the required data for the test:
$> bin/console test:data:reset
-
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
+---------------------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+
| 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 |
+---------------------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+