Rozbudowa logiki biznesowej platformy edukacyjnej: potwierdzenie zajęć, kontrola frekwencji i historia lekcji (Django + React)
Ważne
Przed rozpoczęciem prac należy dokładnie zapoznać się z aktualną realizacją projektu.
W odpowiedzi proszę podać:
• wstępną ocenę kosztów projektu;
• wstępną ocenę terminów realizacji;
• doświadczenie w pracy z Django i React;
• przykłady podobnych projektów.
Po zapoznaniu się z projektem będzie konieczne:
• określenie, jaki funkcjonalność już została zrealizowana;
• określenie, jaki funkcjonalność została zrealizowana częściowo;
• określenie, jaki funkcjonalność całkowicie brakuje;
• zaproponowanie optymalnego planu realizacji;
• przedstawienie dokładnej oceny liczby godzin;
• przedstawienie ostatecznego kosztu projektu.
Preferencje będą miały osoby, które najpierw zrozumieją istniejącą architekturę projektu, a dopiero potem przedstawią ostateczną ocenę prac.
Opis projektu - Istnieje działająca platforma edukacyjna (analog Preply), opracowana w Django + React.
Obecnie po zakończeniu lekcji system automatycznie przenosi zajęcia z sekcji „Nadchodzące” do sekcji „Zakończone”.
Przy tym:
• brakuje potwierdzenia zajęć przez studenta;
• brakuje informacji, czy lekcja się odbyła;
• brakuje informacji o nieobecności nauczyciela;
• brakuje informacji o nieobecności studenta;
• brakuje historii potwierdzeń zajęć.
Konieczne jest wdrożenie pełnoprawnego systemu potwierdzania lekcji, kontroli frekwencji i przechowywania historii potwierdzeń.
Celem projektu
Stworzenie przejrzystego systemu rejestracji wyników zajęć, który pozwoli:
• zrozumieć, czy lekcja się odbyła;
• rejestrować nieobecności studentów i nauczycieli;
• prowadzić historię potwierdzeń;
• dostarczać administracji narzędzia do kontroli jakości platformy;
• przygotować podstawy do dalszej logiki finansowej platformy.
Również ważne jest, aby wdrożony system mógł być później używany do automatycznej zmiany statusu finansowego lekcji i wypłaty środków nauczycielowi po potwierdzeniu zajęć.
Na tym etapie wdrożenie Tutor Wallet i systemu wypłat nie wchodzi w skład tego projektu, jednak architektura rozwiązania powinna uwzględniać możliwość dalszej integracji z logiką finansową platformy.
Funkcjonalność potwierdzenia lekcji
Na 5 minut przed zakończeniem lekcji należy wyświetlić dyskretne powiadomienie wewnątrz lekcji:
"Proszę potwierdzić wynik zajęć po ich zakończeniu."
Po zakończeniu lekcji student powinien otrzymać prośbę o potwierdzenie wyniku zajęć.
Opcje odpowiedzi:
• Zajęcia się odbyły
• Nauczyciel się nie pojawił
• Nie mogłem być obecny
Przypomnienia
Po zakończeniu lekcji:
• pierwsze powiadomienie zaraz po zakończeniu zajęć;
• ponowne przypomnienie po 12 godzinach w przypadku braku odpowiedzi;
• automatyczne przetwarzanie po 24 godzinach.
Automatyczne potwierdzenie
Jeśli student nie potwierdził wyniku zajęć w ciągu 24 godzin:
• system automatycznie potwierdza lekcję;
• lekcja jest uznawana za odbywającą się;
• status lekcji automatycznie zmienia się na Auto Confirmed.
Przy tym w systemie powinno być rejestrowane, że potwierdzenie zostało wykonane automatycznie.
Statusy lekcji
Konieczne jest wdrożenie następujących statusów:
• Zaplanowane
• Potwierdzone
• Oczekujące na potwierdzenie
• Zakończone
• Auto Potwierdzone
• Nauczyciel się nie pojawił
• Student się nie pojawił
• Anulowane
System powinien automatycznie zmieniać statusy w zależności od działań użytkownika.
Historia potwierdzeń
Dla każdej lekcji należy przechowywać:
• studenta;
• nauczyciela;
• datę lekcji;
• czas lekcji;
• wynik potwierdzenia;
• kto wykonał potwierdzenie;
• datę i czas potwierdzenia;
• sposób potwierdzenia.
Przykłady:
Student: John Smith
Nauczyciel: Anna Brown
Wynik potwierdzenia:
Lekcja zakończona
Potwierdzone przez:
Studenta
Data:
30.05.2026 18:42
Typ potwierdzenia:
Ręczne
lub
Student: John Smith
Nauczyciel: Anna Brown
Wynik potwierdzenia:
Lekcja zakończona
Potwierdzone przez:
System
Data:
31.05.2026 18:00
Typ potwierdzenia:
Automatyczne (24h timeout)
Historia potwierdzeń powinna być przechowywana bez ograniczenia czasu przechowywania i być dostępna dla administratora do przeglądania w dowolnym momencie.
Wielojęzyczność
Wiadomości systemu powinny być wyświetlane w języku interfejsu użytkownika.
Minimalnie należy przewidzieć:
• Język ukraiński
• Język rosyjski
• Język angielski
Część administracyjna
Administrator powinien mieć możliwość:
• przeglądania wszystkich lekcji;
• przeglądania statusów lekcji;
• przeglądania historii potwierdzeń;
• przeglądania automatycznie potwierdzonych lekcji;
• przeglądania Tutor No Show;
• przeglądania Student No Show.
Wyszukiwanie i filtrowanie
Konieczne jest wdrożenie wyszukiwania i filtrowania lekcji według statusów:
• Zaplanowane
• Potwierdzone
• Oczekujące na potwierdzenie
• Zakończone
• Auto Potwierdzone
• Nauczyciel się nie pojawił
• Student się nie pojawił
• Anulowane
Podstawowa statystyka
Dla nauczyciela:
• łącznie lekcji;
• zakończonych lekcji;
• potwierdzonych przez studenta;
• automatycznie potwierdzonych;
• Tutor No Show;
• Student No Show.
Dla studenta:
• łącznie lekcji;
• zakończonych lekcji;
• Tutor No Show;
• Student No Show;
• oczekujących na potwierdzenie lekcji.
Ważne
Ten projekt nie obejmuje opracowania Tutor Wallet i systemu wypłat dla nauczycieli.
Ten projekt nie obejmuje panelu administracyjnego platformy.
Głównym celem projektu: wdrożenie systemu potwierdzania zajęć, kontroli frekwencji, przechowywania historii potwierdzeń i związanych statusów lekcji.
Stos technologiczny projektu
• Django
• React
Po pomyślnym zakończeniu projektu możliwe jest dalsze współprace w zakresie rozwoju Student Dashboard, Tutor Dashboard, logiki finansowej platformy i systemu wypłat dla nauczycieli.