Techniki Internetowe (TIN)

Regulamin projektu

Do zdobycia w ramach projektu jest 50 pkt.
Wymagane minimum do zaliczenia to 25 pkt.

Ocenie podlegać będzie dopiero finalna wersja projektu, jednak w czasie realizacji projektu należy zaliczyć kolejne kamienie milowe/etapy - za opóźnienia w ich zaliczaniu (tj. w przypadku rażąco złej jakości lub opóźnienia nadesłania akceptowalnej wersji) naliczane będą punkty karne w wymiarze 1 pkt. karny za każdy dzień spóźnienia. Liczy się data nadesłania pocztą elektroniczną akceptowalnej dla prowadzącego wersji, jednak ich rozliczenie wymaga osobistego spotkania z prowadzącym celem omówienia rezultatów.

Punktacja

Ocena projektu będzie wyliczana wg wzoru: A+B+C+D-E, gdzie:
  1. (10 pkt.) zrealizowana funkcjonalność i działanie systemu.
  2. (5 pkt.) architektura rozwiązania - podział na moduły, wątki/procesy, klasy itp.
  3. (20 pkt. ale nie więcej niż 200% uzyskanych w A) jakość kodu:
    prawidłowe posługiwanie się interfejsem sieciowym, obsługa sytuacji krytycznych, ale także "klasyczne" aspekty programowania (np. zarządzanie pamięcią, "niesieciowe" sytuacje krytyczne, synchronizacja wątków/procesów, styl kodu).
  4. (15 pkt.) dokumentacja projektowa - w tym:
  5. punkty karne za ew. opóźnienia.

Etapy i daty realizacji

  1. ... jak najszybciej ... - uzgodnienie i uszczegółowienie tematów projektowych. Bez tego zabieranie się za projekt wstępny może nie mieć sensu...
  2. 29.11.2021 - projekt wstępny (w postaci elektronicznej) zawierający te same informacje co dokumentacja końcowa, w zakresie adekwatnym dla projektu wstępnego. Projekt ten będzie w dalszym toku projektu uzupełniany do postaci dokumentacji końcowej. Z projektu tego ma jasno wynikać, że zespół wie co i jak ma realizować projektowany system, ale także, że każdy z członków zespołu ma jasno określone prace do wykonania.
  3. 13.12.2021 - realizacja najniższej warstwy komunikacyjnej (obsługa gniazda), w tym "czyste" zakańczanie wszystkich procesów.
  4. 03.01.2022 - realizacja wybranego podzbioru funkcjonalności, wymagającego interakcji wszystkich składników systemu.
  5. 24.01.2022 - nadesłanie finalnej wersji projektu i dokumentacji.
  6. 31.01.2022 - ostateczny termin wystawienia ocen (ok. 18:00).

Projekt należy zaprezentować i omówić osobiście całym zespołem.
Osoby przedstawiające swoje rozwiązania przed 2 czerwca mają szanse na wprowadzanie poprawek.

Projekt może być rozliczony tylko i wyłącznie po prezentacji jego działania w ramach dostępnych na Wydziale laboratoriów lub na sprzęcie własnym (np. laptopy) - każdy zespół jest odpowiedzialny za wcześniejsze rozeznanie w sytuacji i zorganizowanie niezbędnej infrastruktury na potrzeby prezentacji i rozliczenia projektu. Istnieje możliwość realizacji prywatnej podsieci na potrzeby takowej prezentacji - należy jednak przeprowadzić wcześniejsze "rozpoznanie" żeby uniknąć konsternacji w trakcie oddawania.
Proszę zwracać uwagę na sytuacje krytyczne (opóźnienia w sieci, chwilowe utraty łączności itp. - prawidłowa implementacja projektu powinna umieć sobie radzić z tego typu problemami).

Platformy

Szczegółowy wybór platformy sprzętowej i programowej jest do ustalenia per projekt.
Ogólne reguły (negocjowalne w uzasadnionych przypadkach):

Uwagi ogólne

Tematy Projektów

Poniżej przykłady zagadnień projektowych.
Opisy są skrótowe - należy je uszczegółowić na konsultacjach.
Propozycje tematów własnych są mile widziane.

System monitorujący

Serwer zbierający określone dane, monitorujący ich wartości i powiadamiający użytkowników.
Na przykład: serwer zbiera dane o zużyciu CPU z wielu maszyn (informacje przesyłają specjalizowane klienty serwera), agreguje wyniki i informuje zainteresowanych użytkowników (inny rodzaj klientów, albo powiadamianie mailem etc.)
Na przykład 2: "inteligentny dom".

Gra sieciowa

Wymaganie: gra "czasu rzeczywistego" (strzelanka, RTS)- turowe odpadają, chyba że "massive".

Sieciowy system plików

Współdzielenie plików przez użytkowników - pliki mogą być na serwerze, może to być system rozproszony (mini-chmura albo peer-to-peer).

System do współpracy

System umożliwiający użytkownikom wspólną pracę nad jakimś problemem.
Na przykład: edycja dokumentów, wspólne rysowanie itp.
Strona główna