Skip to content

Instantly share code, notes, and snippets.

@tadz
Last active February 8, 2024 08:32
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save tadz/ba68d8cbfc179495f6a95f39cd19418e to your computer and use it in GitHub Desktop.
Save tadz/ba68d8cbfc179495f6a95f39cd19418e to your computer and use it in GitHub Desktop.
[PHP Developer] Simplemining.net recruitment task

PHP Developer - zadanie rekrutacyjne (simplemining.net)

Opis

Twoim zadaniem jest stworzenie API do wyszukiwania dockerowych obrazów z wykorzystaniem danych dostarczonych przez: https://docs.docker.com/docker-hub/api/latest/#tag/repositories

W API powinny znaleźć się endpointy pozwalające:

  • pobrać dane o tagach obrazu dockerowego po podaniu nazwy obrazu np.: pytorch/pytorch
  • pobrać dane o tagu dla danego obrazu dockerowego np.: pytorch/pytorch i latest
  • pobrać historię wyszukiwań po podaniu nazwy obrazu
  • pobrać historię wyszukiwań po podaniu nazwy tagu

Dane zwracane powinny zawierać jedynie:

  • nazwę obrazu
  • nazwę taga
  • status
  • datę ostatniej modyfikacji

Z tablicy images zwróć tylko:

  • architekturę
  • system
  • status
  • wielkość obrazu w MB

Zapytanie o tagi powinno pytać tylko raz api dockerowe, w kolejnych zapytaniach powinno odpytywać lokalną bazę. W celu osiągnięcia aktualności tagów, trzeba stworzyć Command, który cyklicznie będzie odpytywał api dockerowe i zapisywał aktualną listę tagów w bazie lokalnej. (W readme podaj jaki wpis w crontabie należy dodać)

Rozwiązanie zamieść na Githubie/Gitlabie, aby można było zobaczyć historię zmian.

W rozwiązaniu użyj:

  • API Platform
  • dowolną bazę danych (SQL lite, MySQL, Postgresql) ważne, żeby można było odtworzyć bazę przez migracje
  • dobrych praktyk OOP i Clean Code

Uwagi końcowe

  • Rób małe commity abyśmy mogli zobaczyć proces zmian
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment