Skip to content

SzymCode/RecruitmentTasks

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

161 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

LinkhouseBlog
PHP Typescript Laravel Vue.js Sass XAMPP Docker

This is a recruitment task project for Linkhouse company.


📖 Problem description
Cel: wykonanie prostej aplikacji do przeglądania artykułów z bloga Linkhouse. Aplikacja powinna pozwolić
użytkownikowi na przeglądanie listy artykułów oraz wyświetlanie ich opisów po kliknięciu (forma bloga).



Część frontendowa: Vue.js lub Nuxt.js

- Interfejs użytkownika:
    1. Formularz z polami do obsługi wyszukiwarki frontendowej
    2. Lista artykułów: tytuł, data publikacji
    3. Szczegóły artykułu: opis, kategorie, link

- Funkcjonalność:
    1. Otwieranie nowego artykułu po kliknięciu na liście
    2. Możliwość przejścia do pełnego artykułu z linku pod opisem
    3. Wyszukiwarka frontendowa - po tytule oraz kategoriach
    4. Możliwość powrotu do listy artykułów



Część backendowa: PHP

- Pobranie oraz parsowanie artykułów z https://linkhouse.pl/feed/

- Endpointy:
    1. [GET] /articles - listowanie wszystkich artykułów
    2. [GET] /article/:guid - szczegóły jednego artykułu

- Model danych:
    1. ArticleList: Array[{ guid, title, pubDate, category }]
    2. Article: { guid, title, link, description, category }

image

Instrukcje:
    - Zacznij od stworzenia nowego projektu backendu - wybrany framework PHP, oraz nowego projektu frontendu - Vue lub Nuxt.
    - Zaimplementuj wymienione powyżej funkcjonalności.
    - Zwróć uwagę na jakość kodu, strukturę projektu oraz obsługę błędów.

Dodatkowo:
    - Jeśli wystarczy Ci czasu, możesz dodatkowo zaimplementować angielską wersję językową z https://linkhouse.net/feed/
        w formie przełącznika PL/EN.

Kryteria oceny:
    - Poprawność działania aplikacji,
    - Struktura, nazewnictwo, jakość kodu,
    - Adekwatny dobór narzędzi, frameworków,
    - Obsługa błędów, przygotowanie się na błędne odpowiedzi serwera.

Uwagi:
    - Skup się na dostarczeniu prostego, schludnego, działającego rozwiązania,
    - Jeżeli nie zdążysz zrobić wszystkiego, skup się na kluczowych funkcjonalnościach.


🛠️ Installation & Setup
   XAMPP
nvm use --lts
  • Clone this repository from linkhouse-blog branch.
git clone -b linkhouse-blog https://github.com/SzymCode/RecruitmentTasks.git
  • Change .env.example file to .env

  • Install modules in root directory

npm install
composer update

Make sure u have installed all modules!

  • Run XAMPP mysql server and then create database
mysql -u root -p
create database linkhouse_blog

   Docker
nvm use --lts
  • Clone this repository from linkhouse-blog branch.
git clone -b linkhouse-blog https://github.com/SzymCode/RecruitmentTasks.git
  • Change .env.example file to .env

  • Install modules in root directory

composer update
php artisan sail:install    # prepare .env file

Make sure u have installed all modules!


🚀 Run
   XAMPP
  • root directory:
npm run dev
php artisan serve

   Docker

Remember to shutdown all XAMPP processes!

  • root directory:
sail up -d    # run containers in background

docker compose exec laravel.test bash    # this command open sail container's bash, then run command bellow
npm run dev

Possible problem:


❓ Usage
Migrations

Run migrations (optional with seed)

php artisan migrate:fresh --seed

Tests

Run all backend tests:

docker compose exec laravel.test bash    # this command open sail container's bash, then run command bellow

./vendor/bin/pest

npm
  1. Vite build:
npm run build
  1. Activate Husky git hooks:
npm run prepare
  1. Eslint fix:
npm run lint
  1. Run prettier:
npm run write

About

This repository contains my solutions for the recruitment tasks.

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors