Skip to content

freelancehunt/code-test

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

31 Commits
 
 

Repository files navigation

Тестове завдання: Отримати та відобразити відкриті проєкти з Freelancehunt

Суть завдання

  1. Отримати з API Freelancehunt усі відкриті проєкти.
  2. Зберегти необхідні дані про ці проєкти у базу даних.
  3. На одній веб-сторінці відобразити для користувача:
    • Таблицю з відкритими проєктами та можливістю фільтрації за категоріями (наприклад, “Веб-програмування”, “PHP” тощо).
    • Назву проєкту (гіперпосилання на сторінку проєкту на Freelancehunt).
    • Бюджет (сума + валюта).
      • Оскільки валюта може бути UAH, USD, EUR або PLN, відобразіть у таблиці інформацію про валюту.
      • За бажанням ви можете перерахувати бюджети в базову валюту, яку обрав користувач.
    • Ім’я та логін замовника.

Деталі реалізації

  1. Мова бекенду: PHP 8.2+

    • Дозволено використовувати будь-які бібліотеки з Packagist (наприклад, для HTTP-запитів, dependency injection, ORM тощо).
    • Проте не можна використовувати “великий” готовий фреймворк (Symfony, Laravel тощо). Важливо продемонструвати власний підхід до організації коду.
  2. Фронтенд: Vue.js + TypeScript

    • Бажано використати Tailwind CSS для стилізації (мінімальна інтеграція, щоб побачити, як ви його налаштовуєте).
    • Використовуйте TypeScript там, де це можливо (наприклад, у файлах <script lang="ts">).
  3. База даних

    • Можна обрати будь-яку: MySQL, PostgreSQL тощо.
    • Зберігати всі поля з API необов’язково; вистачить лише тих, що потрібні для відображення.
  4. Вебсервер / Docker

    • Достатньо вбудованого вебсервера PHP, але можете використовувати nginx/apache тощо.
    • Використовуйте Docker/Docker Compose.
  5. Додаткові побажання (не обов’язкові, але будуть перевагою):

    • Пагінація та сортування (за бюджетом, назвою, датою створення тощо).
    • Проста система кешування або обробка помилок API (rate limits, недійсний ключ тощо).
    • Кілька мінімальних тестів (unit / integration / end-to-end), що демонструють ваш підхід до тестування.

Формат здачі

  1. Готовий код має бути завантажений у публічний (або доступний за посиланням) репозиторій GitHub/GitLab/Bitbucket.
  2. Надіслати посилання на репозиторій на yaroslav@freelancehunt.com.
  3. У README.md додати інструкцію з запуску проєкту:
    • Згадати, як налаштувати змінні оточення (API ключ), базу даних.
    • Кроки для встановлення залежностей (composer install, npm install тощо).
    • Кроки для запуску.
  4. Якщо частину розширених завдань не встигнете, можете позначити це у вигляді TODO.

Корисні посилання

  • Отримання доступу до API Freelancehunt
  • API-документація Freelancehunt
    • Вам буде потрібен лише один API-endpoint для отримання списку проектів: curl 'https://api.freelancehunt.com/v2/projects' --header 'Authorization: Bearer XXXXX'

🚀 Що далі?

  • Після надсилання посилання на Git-репозиторій ми домовимося про Google Meet, де ви розкажете про свою реалізацію, поясните прийняті рішення та продемонструєте, як все працює.
  • Під час розмови обговоримо ваш підхід до коду, архітектури та ваших ідей щодо оптимізації цього проєкту.

Бажаємо успіху й чекаємо на вашу реалізацію!