Aplikacja sprawdzająca wiedzę ucznia

Wstęp

W dzisiejszych czasach coraz więcej osób uczy się programowania. Na rynku istnieje wiele narzędzi i platform, które ułatwiają naukę kodowania, takich jak Codecademy, LeetCode czy HackerRank. Stworzona przeze mnie aplikacja wyróżnia się na tle konkurencji dzięki funkcji monitorowania postępów ucznia, co pozwala mi jako nauczycielowi śledzić i oceniać prace uczniów w czasie rzeczywistym. W tym artykule opisuję działanie mojego narzędzia oraz jego kluczowe funkcje, skupiając się na możliwościach sprawdzania wiedzy ucznia.

Kluczowe funkcje aplikacji

Aplikacja skupia się głównie na obsłudze języków PHP, HTML, CSS oraz JavaScript. Pozwala na tworzenie, testowanie oraz uruchamianie kodu w wybranych językach programowania. Kod źródłowy aplikacji jest dostępny na GitHub, co pozwala innym nauczycielom i programistom na modyfikację i rozwijanie narzędzia według własnych potrzeb.

Do komunikacji z serwerem wykorzystuje się technologię AJAX, co pozwala na wysyłanie i odbieranie danych bez konieczności odświeżania strony. Aplikacja używa plików z katalogu „work” do zapisywania postępów ucznia, co umożliwia śledzenie zmian i analizę pracy ucznia w czasie.

Aplikacja posiada także zabezpieczenia, które uniemożliwiają uczniom kopiowanie treści zadania oraz kopiowanie i wklejanie kodu do okienka z kodem. Dzięki temu uczniowie są zmuszeni do samodzielnego rozwiązania problemu, co pozwala nauczycielom na lepsze monitorowanie ich postępów i rzeczywiste umiejętności.

Ważną funkcją aplikacji jest możliwość generowania pliku PDF z postępami ucznia. Nauczyciel może łatwo wygenerować raport ze wszystkimi wersjami kodu ucznia, dzięki czemu ma szybki i wygodny dostęp do analizy pracy ucznia.

Bezpieczeństwo i konfiguracja aplikacji

Aplikacja została przetestowana w środowisku XAMPP, jednak ze względu na ograniczenia i potencjalne zagrożenia bezpieczeństwa, rekomenduję użycie Dockera lub uruchomienie XAMPP w izolowanym systemie Windows w VirtualBoxie, a nawet w systemach Linux/Unix, instalując jedynie Apache lub Nginx, gdyż aplikacja nie korzysta z bazy danych. W pliku „execute.php” zostały zablokowane niektóre niebezpieczne funkcje PHP, aby zminimalizować ryzyko ataków czy wycieku informacji.

Aplikację można uruchomić w środowisku lokalnym, bez konieczności łączenia się z Internetem. Ta funkcja może być szczególnie korzystna dla nauczycieli, którzy chcą zminimalizować ryzyko ściągania lub korzystania z dodatkowych materiałów online przez uczniów.

Opis plików aplikacji:

  • app.js: zawiera logikę aplikacji, w tym obsługę AJAX
  • authenticate.php: odpowiada za autentykację użytkowników
  • code.php: pośredniczy w przesyłaniu kodu ucznia do serwera
  • config.php: zawiera konfigurację aplikacji (należy tu podać dane logowania nauczyciela i hasło dla ucznia)
  • execute.php: odpowiada za uruchomienie kodu ucznia, z zablokowanymi niebezpiecznymi funkcjami PHP
  • fpdf: zawiera bibliotekę FPDF, wykorzystywaną do generowania plików PDF
  • generate_pdf.php: generuje plik PDF z postępami ucznia
  • get_code.php: pobiera kod ucznia z serwera
  • get_task_content.php: pobiera treść zadania dla ucznia
  • get_version.php: pobiera wcześniejsze wersje kodu ucznia
  • index.php: główna strona aplikacji
  • list_versions.php: wyświetla listę wcześniejszych wersji kodu ucznia
  • login.php: logowanie do aplikacji
  • logout.php: wylogowanie z aplikacji
  • review.js: zawiera logikę dla nauczyciela do przeglądania kodu ucznia
  • review.php: pozwala nauczycielowi na przeglądanie kodu ucznia
  • save_code.php: zapisuje kod ucznia na serwerze
  • save_task_content.php: zapisuje treść zadania na serwerze
  • task_content.txt: przechowuje treść zadania dla ucznia
  • translations: katalog z tłumaczeniami dla aplikacji
  • translations.js: zawiera logikę do obsługi tłumaczeń w aplikacji
  • work: katalog, w którym przechowywane są pliki związane z postępami ucznia

Wszystkie te elementy tworzą spójny i funkcjonalny system, który pozwala nauczycielom na skuteczne śledzenie pracy uczniów, a uczniom na naukę i testowanie swojego kodu w bezpiecznym środowisku.

Przyszłość aplikacji

Chociaż obecna wersja aplikacji jest przydatna, już planuję kolejne ulepszenia, które uczynią ją jeszcze bardziej użyteczną dla nauczycieli i uczniów. Kolejna wersja będzie miała funkcje wieloużytkownikowe, umożliwiając obsługę wielu uczniów oraz przypisywanie im kilku, a nawet różnych zadań. Taki rozwój aplikacji pozwoli na jeszcze lepsze zarządzanie procesem nauki oraz na zindywidualizowanie podejścia do każdego ucznia.

Podsumowanie

Stworzona przeze mnie aplikacja to narzędzie, które łączy funkcje edukacyjne z możliwością śledzenia postępów ucznia. Nie tylko ułatwia nauczycielom kontrolę nad pracą uczniów, ale także pozwala uczniom na naukę i testowanie kodu w bezpiecznym środowisku. Przyszłość aplikacji wydaje się obiecująca, z planowanymi ulepszeniami, które uczynią ją jeszcze bardziej użyteczną dla użytkowników.

Aplikacja dostępna do pobrania z GitHuba.

Leave a Comment

Twój adres e-mail nie zostanie opublikowany. Wymagane pola są oznaczone *

Scroll to Top