Files
2024-06-25 10:42:48 +02:00

4.0 KiB

Struktura Projektu i Wytyczne do Zadań

Projekt wymaga, aby każde zadanie przestrzegało określonej struktury katalogów oraz zawierało testy jednostkowe. Takie podejście zapewnia organizację i spójność pracy nad projektem.

Struktura Katalogów Zadań

  • Każde zadanie powinno mieć swój własny dedykowany folder.
  • Folder dla zadania powinien znajdować się w ścieżce katalogu według wzorca: tasks/task_X, gdzie X to numer zadania.

Przykład: dla zadania numer 1, katalog powinien być: tasks/task_01.

Wymagania Zadań

Każdy folder zadania powinien zawierać co najmniej dwa główne komponenty:

  1. Pliki Implementacyjne (PHP): Obejmuje wszystkie niezbędne pliki PHP wymagane do zaimplementowania funkcjonalności zadania.

  2. Testy Jednostkowe: Każde zadanie powinno mieć własne testy jednostkowe weryfikujące poprawność implementacji.

Pisanie Testów Jednostkowych

  • Testy jednostkowe powinny być umieszczone w podkatalogu tests w folderze zadania.
  • Użyj frameworka do testowania, takiego jak PHPUnit, do pisania testów.
  • Każdy plik testowy powinien być nazwany w sposób wskazujący, którą część zadania testuje, np. Task1Test.php.

Uruchamianie Testów

  • Testy dla każdego zadania powinny być możliwe do uruchomienia z poziomu katalogu zadania, np. za pomocą komendy phpunit tests/.

Przestrzegając tych wytycznych, praca nad każdym zadaniem będzie zorganizowana, co ułatwi zarządzanie projektami, przeglądanie kodu i współpracę.

Lista Zadań

  1. Kalkulator

    • Napisz prosty kalkulator wykonujący dodawanie dwóch liczb w PHP.
    • Rozszerz kalkulator, aby obsługiwał odejmowanie, mnożenie i dzielenie.
    • Kompletne zadanie powinno obejmować pełne typowanie statyczne całego programu, obsługę błędów, możliwe operacje do wykonania powinny być w osobnym typie enum
  2. Generator liczb losowych

    • Stwórz skrypt generujący określoną liczbę losowych liczb.
  3. Przelicznik temperatur

    • Napisz skrypt konwertujący temperatury między stopniami Celsjusza a Fahrenheita.
  4. Prosty serwer HTTP

    • Użyj PHP do stworzenia serwera, który wyświetla wiadomość powitalną.

Operacje na Tablicach

  1. Filtrowanie danych

    • Napisz funkcję filtrującą tablicę liczb, pozostawiając tylko te większe od określonej wartości.
  2. Sortowanie tablicy

    • Napisz funkcję sortującą tablicę według określonego klucza.
  3. Mapowanie tablicy

    • Przekształć tablicę liczb na tablicę ich kwadratów.

Operacje na Stringach

  1. Odwracanie stringa

    • Napisz funkcję, która odwraca dany string.
  2. Sprawdzanie palindromu

    • Napisz funkcję sprawdzającą, czy dany string jest palindromem.
  3. Frekwencja liter

    • Napisz skrypt zliczający, jak często poszczególne litery pojawiają się w danym stringu.

Operacje na Plikach

  1. Czytanie z pliku

    • Napisz skrypt, który czyta dane z pliku i wyświetla je.
  2. Zapis do pliku

    • Napisz skrypt zapisujący dane wejściowe do pliku.
  3. Monitorowanie folderu

    • Utwórz skrypt monitorujący zmiany w folderze i logujący te zmiany.

Podstawy pracy z Sieciami i API

  1. Klient HTTP

    • Napisz klienta HTTP w PHP, który pobiera dane z publicznego API.
  2. Prosta aplikacja CRUD

    • Utwórz aplikację CRUD (Create, Read, Update, Delete) z użyciem PHP i dowolnego frameworka, np. Laravel.

Praca z Bazami Danych

  1. Połączenie z MySQL

    • Zrealizuj połączenie z bazą danych MySQL i wykonaj operację odczytu.
  2. Tworzenie API z bazą danych

    • Rozbuduj aplikację CRUD, by dane były przechowywane w MySQL.
  3. Migracje bazy danych

    • Napisz skrypt do zarządzania migracjami w bazie danych (tworzenie/usuwanie tabel).

Zaawansowane Zadania

  1. Autentykacja użytkownika

    • Dodaj system logowania i autentykacji użytkownika do aplikacji.
  2. Zaawansowany serwer HTTP

    • Stwórz zaawansowany serwer HTTP w PHP z obsługą różnych ścieżek i parametrów zapytania.