Quest: CzatoNotatnik lekcyjny PHP API + JS + Bootstrap

Cel projektu

Stworzyć w zespole prostą aplikację webową umożliwiającą:

  • wspólny czat dla wszystkich uczestników lekcji,
  • prywatną notatkę dla każdego ucznia,
  • tablicę tekstową edytowaną tylko przez belfra.

Aplikacja działa w przeglądarce, z backendem w PHP i bazą danych MySQL.

Założenia techniczne

Backend (API – PHP)

  • Serwer API w PHP
  • Komunikacja w formacie JSON (REST).
  • Główne endpointy:
    • GET /messages?last_id=X – pobiera nowe wiadomości (polling co 2s).
    • POST /messages – dodaje nową wiadomość.
    • GET /board / POST /board – odczyt/zapis tablicy nauczyciela.
    • GET /notes / POST /notes – odczyt/zapis prywatnych notatek.
  • Autoryzacja (role: teacher / student).

Frontend (JS + Bootstrap)

  • Jednostronicowa aplikacja (index.html).
  • 3 główne sekcje UI:
    1. Tablica nauczyciela – widoczna dla wszystkich, edytowalna tylko przez belfra.
    2. Czat grupowy – wszyscy mogą pisać i widzieć wiadomości w czasie rzeczywistym (polling co 2s).
    3. Prywatne notatki – widoczne tylko dla zalogowanego użytkownika.
  • Komunikacja z API za pomocą fetch().

Baza danych (MySQL)

Tabele przykładowe:

  • users(id, name, role)
  • messages(id, user_id, text, created_at)
  • board(id, content, updated_at)
  • notes(id, user_id, content, updated_at)

Działanie aplikacji

  1. Użytkownik loguje się
  2. Co 2 sekundy frontend pobiera nowe wiadomości (polling).
  3. Nauczyciel może edytować tablicę tekstową → zapis przez API.
  4. Każdy użytkownik może:
    • pisać na czacie,
    • zapisywać własną notatkę (przez API lub dodatkowo lokalnie).

Organizacja pracy zespołowej

Role w zespole (przykład podziału)

  • Frontend Developer – interfejs użytkownika (Bootstrap, JS).
  • Backend Developer – API i baza danych (PHP + MySQL).
  • UX/UI Designer – układ strony, użyteczność, style.
  • Tester / Dokumentalista – README, testy, opisy endpointów.

Praca na github.com

Oceniane elementy projektu

Wystawiam dwie oceny:

  • Zespołową ocenę jakości współpracy (ocena wagi 3) – taką samą dla wszystkich
  • Indywidualną ocenę jakości dodawanego kodu (ocena wagi 1) – może być różna dla wszystkich

W ocenie zespołowej zwracam uwagę na:

  • Widoczność w repozytorium eksperymentów dotyczących działania gita (na początkowym etapie)
  • Naturalność wprowadzanych ulepszeń w kodzie (jeśli jedna osoba doda większość kodu w krótkim czasie to źle)
  • Praca widoczna w repozytorium obejmuje cały czas trwania projektu
  • Czy praca nad projektem odbywa się również z domu 🙂

Dodatkowe punkty za:

  • Rejestrację/logowanie z rolami (uczeń/nauczyciel),
  • Pokazywanie, kto jest online,
  • Responsywny wygląd (mobile-friendly),
  • Dokumentację API w pliku api-docs.md.

Tagi: Brak tagów

Twój komentarz

Zapisz moje dane, adres e-mail i witrynę w przeglądarce aby wypełnić dane podczas pisania kolejnych komentarzy.