#8: outline the selected commits
Maxim Starikov authored
85e7b434
Name Last commit Last update
bin #2: setup symfony project
config #5: add angular and figma css
docker/php74 #1: add docker compose
frontend #8: outline the selected commits
migrations #2: setup symfony project
public #5: create simple ui
src #8: outline the selected commits
templates #8: outline the selected commits
tests #5: fix ci
translations #2: setup symfony project
.env.example #8: outline the selected commits
.env.test #2: setup symfony project
.gitignore #5: create simple ui
.gitlab-ci.yml #5: fix tests and deployment
README.md README: specified to provide access to the repo to jobs@cx
SETUP.md #8: outline the selected commits
composer.json #5: fix tests and deployment
composer.lock #5: add angular and figma css
docker-compose.yml #1: add docker compose
html #3: add github and phpcs libs
phpcs.xml.dist #3: add github and phpcs libs
phpunit.xml.dist #2: setup symfony project
symfony.lock #5: add angular and figma css

Backend Code Challange

In order to be considered for the Backend position, you must complete the following task.

Note: This task should take no longer than 2-3 hours at the most.

Prerequisites

  • Experience with PHP Symfony framework
  • Understanding of CSS frameworks and grid systems (Bootstrap, Pure, etc.)
  • Database knowledge (MySQL, MongoDB, Postgres, etc.)

Task

  1. Fork this repository
  2. Create a source folder to contain your code.
  3. In the source directory, please create a PHP web application using a Symfony framework
  4. Your application should accomplish the following:
  • Connect to the Github API

  • Find the nodejs/node repository

  • Find the 25 most recent commits

  • Create a model and store the 25 most recent commits in the database. Make sure to avoid any duplicates.

  • Create a basic template and utilize a CSS framework (Bootstrap, Pure, etc.)

  • Create a route and view which displays the recent commits by author from the database.

  • If the commit hash ends in a number, color that row light blue (#E6F1F6).

  • Keep your solution flexible enought to be able to later on provide support for the bitbucket-api/gitlab-api etc.

Once Complete

  1. Create a SETUP.md in the base directory with setup instructions.
  2. Please let us know that you have completed the challege and grant access to the repo to jobs@circunomics.com

Key Points We Are Looking For

  • Demonstration of core MVC patterns
  • Quality commit history
  • Ability to use libraries
  • Ability to create basic model and retrieve information from the databse

Implementation and Conceptual Questions

Please answer this questions in a Markdown file and commit it to the repo.

Plase use english for the answers and you can use drawings for a better description (even pictures of by-hand drawings)

  1. How were you debugging this mini-project? Which tools?
  2. How were you testing the mini-project?
  3. Imagine this mini-project needs microservices with one single database, how would you draft an architecture?
  4. How would your solution differ when all over the sudden instead of saving to a Database you would have to call another external API to store and receive the commits.

Bonus Points

While not required any of the following will add some major bonus points to your submission:

  • Setup an asset pipeline with Gulp, Grunt, etc.
  • Use Angular
  • Use Composer
  • Use Docker
  • Create a set of provsioning scripts with Puppet, Chef, Ansible, etc...