Skip to content

Marmo77/egzamin-programista

Repository files navigation

🎓 Egzamin Programista

Nowoczesna platforma do przygotowania się do egzaminów zawodowych INF.03 i INF.04

Live Demo GitHub License

Strona główna - Egzamin Programista

🌐 Zobacz Demo📝 LICENCJA💬 Zgłoś Problem


📚 O Projekcie

Egzamin Programista to darmowa, open-source'owa platforma internetowa stworzona z myślą o uczniach techników informatycznych przygotowujących się do egzaminów zawodowych INF.03 (Tworzenie i administrowanie stronami i aplikacjami internetowymi) oraz INF.04 (Projektowanie i programowanie aplikacji).

🎯 Dlaczego powstał ten projekt?

Jako uczeń, który sam przeszedł przez stresujący proces przygotowań do egzaminów zawodowych, zdecydowałem się stworzyć narzędzie, które pomoże innym w skutecznej nauce. Platforma zawiera:

  • Ponad 2000 pytań z oficjalnej bazy CKE
  • Symulacje prawdziwych egzaminów z timerem 60 minut
  • Szczegółowe wyniki z analizą błędów
  • Arkusze praktyczne z poprzednich lat
  • 100% za darmo - bez reklam, bez ukrytych kosztów

✨ Główne Funkcje

🧪 Testy Teoretyczne

Rozwiązuj testy składające się z 40 losowych pytań z wybranej kwalifikacji. Każdy test symuluje prawdziwe warunki egzaminacyjne z limitem czasu 60 minut.

Wybór kwalifikacji

Cechy testów:

  • 📊 40 losowych pytań z bazy ponad 2000 pytań
  • ⏱️ Timer odliczający czas (60 minut)
  • 🖼️ Pytania z obrazami (jak na prawdziwym egzaminie)
  • 📝 Możliwość nawigacji między pytaniami
  • 💾 Automatyczny zapis postępu

📖 Pytania z Obrazami

Wiele pytań zawiera ilustracje, wykresy lub fragmenty kodu - dokładnie tak jak na oficjalnym egzaminie CKE.

Pytanie z obrazem

💻 Interfejs Egzaminacyjny

Przejrzysty interfejs pokazuje postęp, pozostały czas oraz umożliwia szybką nawigację między pytaniami.

Interfejs egzaminu INF.03

Funkcje podczas testu:

  • 🎯 Wskaźnik postępu (np. "Pytanie 5 z 40")
  • 🕐 Widoczny timer z ostrzeżeniem gdy zostaje mało czasu
  • 🗺️ Mapa pytań (widok wszystkich 40 pytań)
  • ✅ Oznaczenie odpowiedzianych pytań kolorem
  • ⚠️ Możliwość zgłoszenia błędu w pytaniu

📊 Szczegółowe Wyniki

Po zakończeniu testu otrzymujesz pełną analizę swoich odpowiedzi wraz z poprawnymi odpowiedziami.

Wyniki egzaminu

Co pokazują wyniki:

  • 🎯 Procent poprawnych odpowiedzi
  • ✅ Liczba poprawnych odpowiedzi
  • ❌ Liczba błędnych odpowiedzi
  • ⏱️ Czas realizacji testu
  • 📝 Przegląd wszystkich pytań z zaznaczeniem:
    • Twojej odpowiedzi
    • Poprawnej odpowiedzi
    • Wyjaśnienia (aktualnie niedostępne)

🌙 Tryb Ciemny

Platforma wspiera tryb ciemny, który jest łagodniejszy dla oczu podczas długich sesji nauki.

Tryb ciemny

📄 Arkusze Praktyczne

Praktyka

dostępne są:

  • Kompletne arkusze egzaminacyjne z poprzednich lat
  • Pliki do pobrania (ZIP)
  • Rozwiązania przykładowe
  • Zasady oceniania
  • I więcej

🛠️ Technologie

Projekt został zbudowany z wykorzystaniem nowoczesnych technologii webowych:

Frontend Backend & Database Narzędzia
⚛️ React 18 🗄️ Supabase 📦 Vite
📘 TypeScript 🔐 PostgreSQL 🎨 Tailwind CSS
🧭 React Router ☁️ Vercel 🧩 Shadcn/ui
🎣 React Hooks 📊 Vercel Analytics 🔔 Sonner

Dlaczego te technologie?

  • React + TypeScript: Zapewnia type-safety i łatwiejsze utrzymanie kodu
  • Supabase: Darmowa baza danych w chmurze z prostym API
  • Tailwind CSS: Szybkie stylowanie bez pisania CSS
  • Vercel: Darmowy hosting z automatycznym deploymentem

🚀 Jak Korzystać?

1️⃣ Wejdź na Stronę

Odwiedź: egzamin-programista.vercel.app

2️⃣ Wybierz Kwalifikację

Na stronie głównej kliknij "Test Teoretyczny", a następnie wybierz:

  • INF.03 - jeśli przygotowujesz się do egzaminu z tworzenia stron internetowych
  • INF.04 - jeśli przygotowujesz się do egzaminu z programowania aplikacji

3️⃣ Rozpocznij Test

  • Test składa się z 40 losowych pytań
  • Masz 60 minut na rozwiązanie
  • Możesz nawigować między pytaniami w dowolnej kolejności
  • Na boku ekranu widzisz timer i mapę pytań

4️⃣ Zakończ i Zobacz Wyniki

  • Po odpowiedzeniu na wszystkie pytania (lub gdy skończy się czas) kliknij "Zakończ"
  • Zobaczysz szczegółowe wyniki ze wszystkimi pytaniami
  • Sprawdź swoje błędy i ucz się na nich!

💡 Wskazówki

  • 📅 Rób testy regularnie - powtarzanie jest kluczem do sukcesu
  • 🎯 Analizuj błędy - zawsze sprawdzaj dlaczego się pomyliłeś
  • ⏱️ Ćwicz pod presją czasu - na prawdziwym egzaminie też będzie limit
  • 📱 Używaj na telefonie - strona jest w pełni responsywna
  • 🌙 Wybierz tryb ciemny - jeśli uczysz się wieczorem

❓ Znalazłeś bład w pytaniu?

  • Na stronie podczas rozwiązywania testu możesz użyć przycisku "Zgłoś pytanie" (flagą)
  • Opisz dokładnie jaki jest problem

👨‍💻 Dla Developerów (aktualnie niedostępne)

Struktura Projektu

egzamin-programista/
├── public/
│   ├── inf03-images/      # Obrazy do pytań INF.03
│   └── inf04-images/      # Obrazy do pytań INF.04
├── src/
│   ├── components/        # Komponenty React
│   │   ├── Home/         # Strona główna
│   │   ├── Theory/       # Sekcja testów teoretycznych
│   │   ├── Practice/     # Sekcja praktyczna (w przygotowaniu)
│   │   └── ui/          # Komponenty UI (przyciski, karty, itp.)
│   ├── hooks/           # Custom React hooks
│   ├── types/           # Typy TypeScript
│   └── utils/           # Narzędzia pomocnicze

🤝 Jak Pomóc?

Projekt jest open-source i każdy może wnieść swój wkład! Oto jak możesz pomóc:

🐛 Znalazłeś błąd?

  • Zgłoś go w zakładce Issues
  • Opisz problem dokładnie (co się dzieje, co powinno się dziać)
  • Dodaj screenshoty jeśli to możliwe

💡 Masz pomysł na nową funkcję?

  • Otwórz Issue z tagiem "enhancement"
  • Opisz dokładnie jaką funkcję chciałbyś dodać i dlaczego

🗺️ Plany Rozwoju

✅ Gotowe

  • System testów teoretycznych (INF.03 i INF.04)
  • Ponad 2000 pytań w bazie danych
  • Timer i śledzenie postępu
  • Szczegółowe wyniki
  • System zgłaszania błędów w pytaniach
  • Tryb ciemny
  • Responsywny design (mobile/tablet/desktop)
  • Optimalizacja SEO

🚧 W Trakcie

  • Sekcja arkuszy praktycznych z poprzednich lat
  • Pobieranie plików ZIP z arkuszami
  • Przykładowe rozwiązania do arkuszy

🔮 W Planach

  • Historia wyników użytkownika
  • Link do udestępnienia swojego wyniku
  • Tryb praktyki (bez timera)
  • Statystyki dla każdego pytania
  • System tagów/kategorii pytań
  • Użytkownik odpowiada na 1 pytanie na raz i odrazu otrzymuje odpowiedź
  • Konto użytkownika (opcjonalne)

❓ Najczęściej Zadawane Pytania

Czy strona jest naprawdę darmowa?
Tak! Projekt jest całkowicie darmowy i nie zawiera reklam. Jest to projekt non-profit stworzony aby pomóc uczniom.
Skąd pochodzą pytania?
Wszystkie pytania pochodzą z oficjalnej bazy CKE (Centralna Komisja Egzaminacyjna) i są tymi samymi pytaniami które mogą pojawić się na prawdziwym egzaminie.
Czy mogę używać strony na telefonie?
Tak! Strona jest w pełni responsywna i działa świetnie na telefonach, tabletach i komputerach.
Czy moje wyniki są gdzieś zapisywane?
Wyniki są zapisywane lokalnie w Twojej przeglądarce (localStorage). Nie wysyłamy ich na żaden serwer, więc są całkowicie prywatne.
Co jeśli znajdę błąd w pytaniu?
Podczas rozwiązywania testu możesz kliknąć ikonę flagi obok pytania i zgłosić problem. Sprawdzimy zgłoszenie i naprawimy błąd.
Czy mogę pobrać stronę i używać offline?
Obecnie nie, ale jest to w planach. Na razie potrzebujesz połączenia internetowego aby korzystać ze strony.

💖 Wsparcie

Jeśli projekt Ci się podoba i pomógł w przygotowaniach do egzaminu:

  • Zostaw gwiazdkę na GitHub
  • 📢 Podziel się z kolegami z klasy
  • 🐛 Zgłaszaj błędy i pomysły na ulepszenia
  • 💻 Dołącz do rozwoju - każdy Pull Request jest mile widziany!

🚀 O Rozwoju Projektu

Ten projekt był dla mnie bardzo fajną przygodą, traktowałem go jako okazją do nauki reacta, baz danych, componentów, logicznego myślenia oraz pewnych działań. Oczywiście że natrafiłem na wiele problemów np. kompunkacją między komponentami, zwłaszcza przy TypeScript'cie, który nie wybacza błędów! Starałem się używać jak najmniej AI to możliwe, ponieważ miała to głównie być formą nauki.

📈 Statystyki Projektu

Metryka Wartość
⏱️ Czas pracy ~80-150 godzin
💾 Baza danych 2000+ pytań
📝 Linii kodu ~11000+ linii
🎨 Komponentów React 40+ komponentów
🖼️ Obrazów 650+ obrazów do pytań
🐛 Poprawek 100+ commitów

🎓 Czego Się Nauczyłem?

Projekt był doskonałą okazją do nauki i praktyki w prawdziwym środowisku:

Frontend Development

  • ⚛️ React 18 - Hooks, Context, Lazy Loading, Memoization
  • 📘 TypeScript - Typy, Interfejsy, Generics
  • 🎨 Tailwind CSS - Utility-first styling, Responsive design
  • 🧩 Radix UI - Accessible komponenty, Compound components
  • 🔄 React Router - Routing, Navigation, Lazy routes

Backend & Database

  • 🗄️ Supabase - PostgreSQL, Real-time subscriptions
  • 📊 SQL - Queries, Joins, Indexing, Optymalizacja
  • 🔐 Authentication (planowane) - User management
  • 📁 File Storage - Obrazy pytań, CDN

DevOps & Deployment

  • ☁️ Vercel - Continuous deployment, Edge functions
  • 🔧 Vite - Build optimization, Hot Module Replacement
  • 📊 Analytics - Performance monitoring
  • 🌐 SEO - Meta tags, Sitemap, Structured data

Soft Skills

  • 🎯 Problem Solving - Debugging, Optymalizacja performance
  • 📝 Dokumentacja - README, Code comments
  • 🐛 Testing - Error boundaries, Edge cases
  • 🎨 UI/UX Design - User flow, Accessibility

🏆 Największe Wyzwania

  • Rozpoczęcie projektu od samego zera oraz dobranie odpowiedniego "Tech Stack"
  • Komunikacja między bazą danych, a aplikacją
  • TypeScript fragmentami jest wstanie narobić problemów
  • Problemów było znacznie więcej, ale o to chodzi w programowaniu, aby rozwiązywać problemy 🙂

🎯 Czy Warto?

ABSOLUTNIE TAK! 🎉

Ten projekt nauczył mnie więcej niż setki tutoriali. Uczenie się przez praktykę to najlepsza metoda! Jeśli jesteś początkującym programistą - zrób własny projekt. Nie musi być idealny, ważne żeby był:

  • Rozwiązywał prawdziwy problem
  • Wymagał nauki nowych rzeczy
  • Mógł być pokazany w portfolio
  • Pomagał innym ludziom

📚 Polecane Zasoby

Jeśli chcesz stworzyć podobny projekt, polecam:

(tutoriale na youtube też są również bardzo dobrą opcją na początek - (JavaScript Mastery, Bro Code))


📄 Licencja

Ten projekt jest dostępny na licencji MIT. Zobacz plik LICENSE dla więcej informacji.


👨‍💻 Autor

Marmo77

Marmo77

GitHub


Stworzone z ❤️ dla uczniów techników informatycznych i programistów

Powodzenia na egzaminach! 🎓🚀


© 2025 Egzamin Programista. Wszystkie prawa zastrzeżone.

About

Strona zrobiona aby pomóc ucznią zdać Egzamin inf03 & inf04

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages