Przejdź do głównej zawartości

Generator CV (mini)

Stworzysz Generator CV - aplikację webową, która na podstawie danych wprowadzonych w formularzu generuje profesjonalnie wyglądające CV w formacie HTML. Użytkownik wypełnia pola (dane osobowe, doświadczenie, umiejętności), a aplikacja tworzy gotowy dokument do wydruku lub zapisania.

Czego się nauczysz?

  • Przetwarzania złożonych formularzy w PHP
  • Dynamicznego generowania dokumentów HTML
  • Pracy z szablonami i stylami CSS do druku
  • Tworzenia i zapisywania plików na serwerze

W prawdziwej pracy...

Generatory dokumentów to popularna kategoria aplikacji webowych - od CV po faktury, umowy i certyfikaty. Umiejętność dynamicznego tworzenia dokumentów HTML/PDF jest ceniona w każdej firmie i otwiera drogę do projektów z zakresu automatyzacji biurowej.

  1. Formularz danych Użytkownik wprowadza dane osobowe (imię, nazwisko, email, telefon), doświadczenie zawodowe i umiejętności w rozbudowanym formularzu.

  2. Generowanie CV Na podstawie wprowadzonych danych aplikacja tworzy sformatowany dokument HTML z odpowiednim układem i stylami.

  3. Podgląd i zapis Wygenerowane CV jest wyświetlane do podglądu, z możliwością wydruku lub zapisania jako plik HTML.

Przykładowa struktura pliku JSON (historia CV):

{
"cvs": [
{
"id": 1,
"first_name": "Jan",
"last_name": "Kowalski",
"email": "jan.kowalski@email.pl",
"phone": "123456789",
"experience": "Programista PHP - Firma XYZ (2023-2026)",
"skills": "PHP, HTML, CSS, JavaScript",
"template": "modern",
"created_at": "2026-02-13 10:30:00"
}
]
}

Wymagane funkcje:

  • Formularz: imię, nazwisko, email, telefon, doświadczenie, umiejętności
  • Walidacja podstawowa w PHP (wymagane pola)
  • Generowanie prostego widoku CV w HTML
  • Podstawowe style CSS (czytelny układ)
  • Przycisk do wydruku (window.print())

Przykładowy scenariusz:

Anna szuka pracy i potrzebuje CV. Otwiera aplikację, wypełnia formularz swoimi danymi, klika “Generuj CV”. Wyświetla się sformatowane CV, które drukuje używając przycisku “Drukuj”.

Ocena: 3.0

Generowanie CV w HTML:

<?php
$html = '<!DOCTYPE html>
<html lang="pl">
<head>
<meta charset="UTF-8">
<title>CV - ' . htmlspecialchars($firstName . ' ' . $lastName) . '</title>
<style>
body { font-family: Arial, sans-serif; max-width: 800px; margin: 0 auto; }
h1 { color: #333; border-bottom: 2px solid #007bff; }
.section { margin: 20px 0; }
@media print { .no-print { display: none; } }
</style>
</head>
<body>
<h1>' . htmlspecialchars($firstName . ' ' . $lastName) . '</h1>
<div class="contact">
<p>Email: ' . htmlspecialchars($email) . '</p>
<p>Telefon: ' . htmlspecialchars($phone) . '</p>
</div>
<div class="section">
<h2>Doświadczenie</h2>
<p>' . nl2br(htmlspecialchars($experience)) . '</p>
</div>
<div class="section">
<h2>Umiejętności</h2>
<p>' . htmlspecialchars($skills) . '</p>
</div>
<button class="no-print" onclick="window.print()">Drukuj CV</button>
</body>
</html>';
?>

Zapis CV do pliku:

<?php
$filename = 'cv_' . strtolower($lastName) . '_' . date('Y-m-d') . '.html';
$filepath = 'generated/' . $filename;
// Upewnij się, że katalog istnieje
if (!is_dir('generated')) {
mkdir('generated', 0755, true);
}
file_put_contents($filepath, $html);
echo '<a href="' . $filepath . '" download>Pobierz CV</a>';
?>

Walidacja email i telefonu:

<?php
$errors = [];
if (!filter_var($email, FILTER_VALIDATE_EMAIL)) {
$errors[] = 'Nieprawidłowy format email';
}
if (!preg_match('/^[0-9]{9}$/', $phone)) {
$errors[] = 'Telefon musi zawierać 9 cyfr';
}
?>

Wykorzystaj lekcje!

Cotygodniowe spotkania podczas lekcji to idealny moment, by:

  • Pokazać postępy - nawet małe kroki się liczą
  • Wyjaśnić wątpliwości - pytaj, nie zgaduj
  • Skonsultować rozwiązania - feedback pomoże Ci się rozwijać

Pracuj iteracyjnie - lepiej mieć działający wariant A niż niedokończony C!