100 lines
3.8 KiB
Markdown
100 lines
3.8 KiB
Markdown
# 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.
|
|
|
|
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
|
|
5. **Filtrowanie danych**
|
|
- Napisz funkcję filtrującą tablicę liczb, pozostawiając tylko te większe od określonej wartości.
|
|
|
|
6. **Sortowanie tablicy**
|
|
- Napisz funkcję sortującą tablicę według określonego klucza.
|
|
|
|
7. **Mapowanie tablicy**
|
|
- Przekształć tablicę liczb na tablicę ich kwadratów.
|
|
|
|
### Operacje na Stringach
|
|
8. **Odwracanie stringa**
|
|
- Napisz funkcję, która odwraca dany string.
|
|
|
|
9. **Sprawdzanie palindromu**
|
|
- Napisz funkcję sprawdzającą, czy dany string jest palindromem.
|
|
|
|
10. **Frekwencja liter**
|
|
- Napisz skrypt zliczający, jak często poszczególne litery pojawiają się w danym stringu.
|
|
|
|
### Operacje na Plikach
|
|
11. **Czytanie z pliku**
|
|
- Napisz skrypt, który czyta dane z pliku i wyświetla je.
|
|
|
|
12. **Zapis do pliku**
|
|
- Napisz skrypt zapisujący dane wejściowe do pliku.
|
|
|
|
13. **Monitorowanie folderu**
|
|
- Utwórz skrypt monitorujący zmiany w folderze i logujący te zmiany.
|
|
|
|
### Podstawy pracy z Sieciami i API
|
|
14. **Klient HTTP**
|
|
- Napisz klienta HTTP w PHP, który pobiera dane z publicznego API.
|
|
|
|
15. **Prosta aplikacja CRUD**
|
|
- Utwórz aplikację CRUD (Create, Read, Update, Delete) z użyciem PHP i dowolnego frameworka, np. Laravel.
|
|
|
|
### Praca z Bazami Danych
|
|
16. **Połączenie z MySQL**
|
|
- Zrealizuj połączenie z bazą danych MySQL i wykonaj operację odczytu.
|
|
|
|
17. **Tworzenie API z bazą danych**
|
|
- Rozbuduj aplikację CRUD, by dane były przechowywane w MySQL.
|
|
|
|
18. **Migracje bazy danych**
|
|
- Napisz skrypt do zarządzania migracjami w bazie danych (tworzenie/usuwanie tabel).
|
|
|
|
### Zaawansowane Zadania
|
|
19. **Autentykacja użytkownika**
|
|
- Dodaj system logowania i autentykacji użytkownika do aplikacji.
|
|
|
|
20. **Zaawansowany serwer HTTP**
|
|
- Stwórz zaawansowany serwer HTTP w PHP z obsługą różnych ścieżek i parametrów zapytania.
|