Tematy Projektów

Jednoosobowe

1. Sieciowa turowa gra logiczna, np: szachy, warcaby, reversi. Jeden serwer do którego podłączają się gracze. Wspiera wiele równoległych rozgrywek między parami graczy. Wymagania: Walidacja ruchów po stronie serwera, powiadomienie o wyniku rozgrywki, wykrycie i obsługa rozłączenia gracza

2. Zdalne zamykanie systemów operacyjnych. Jeden program-agent per węzeł z systemem operacyjnym do zamykania. Jeden serwer, który wie o wszystkich agentach oraz zna uprawnienia klientów.
Wymagania: uprawnienia per klient – które maszyny może wyłączać, możliwość wyłączenia wskazanych przez klienta maszyn, możliwosć dynamicznej rejestracji nowych agentów, monitorowanie stanu agentów – wł./wył.

Dwuosobowe

3.Ciągła synchronizacja katalogów. Program który dba o to, by zawartość katalogu u wszystkich klientów była taka sama. Zmiany plików są wykrywane natychmiastowo. Działanie: Po uruchomieniu i podaniu ścieżki do folderu który ma być synchronizowany klient może dodawać, modyfikować i usuwać z niego pliki. Serwer monitoruje te zmiany i wysyła je do innych połączonych klientów
Wymagane: wykrywanie współbieżnej zmiany w katalogu i właściwie jej obsłużone. Jeden serwer, wiedzący o innych agentach.

4. Wieloosobowa gra czasu rzeczywistego. Dowolna gra w którą da się grać w więcej niż dwie osoby. Jeden serwer do którego podłączają się gracze. Liczba graczy na grę może być z góry znana.
Wymagane: serwer pozwala na przeprowadzanie równoległych gier. Wykrycie i obsługa rozłączenia gracza. GUI.

5. "Zręcznościowa" gra karciana / planszowa w której wiele osób naraz może wykonać ruch na raz. Np. Prawo dżungli Jeden serwer do którego podłączają się gracze. Liczba graczy na grę może być z góry znana.
Wymagane: serwer pozwala na przeprowadzanie równoległych gier. Wykrycie i obsługa rozłączenia gracza. GUI.

6. Radio internetowe. Serwer ma kolejkę plików dźwiękowych, które kolejno strumieniuje do wszystkich podłączonych klientów.
Wymagane: klienci mogą wgrywać na serwer nowe pliki, widzą bieżący stan kolejki i mogą wykonywać dowolne operacje na niej, mogą też zlecić przeskoczenie do następnego pliku z kolejki. Wymagane GUI.

7. Komunikator internetowy. Aplikacja pozwalająca na komunikację między klientami.
Wymagane: komunikator ma pozwalać na tworzenie konta, logowanie z hasłem, wyświetlenie znajomych, prowadzenie wielu konwersacji jednocześnie, grupowa konwersacja miedzy minimum 3 uzytkownikami. Dane uzytkownikow zapisywane poa programem. Wymagane GUI.

8. E-mail: wieloserwerowy system poczty elektronicznej.
Wymagania: wysyłanie wiadomości do lokalnego serwera, przesyłanie wiadomości między serwerami, pobieranie wiadomości ze skrzynki, konta z mailem, logowanie hasłem. Wymagane GUI.

Odgórne wymagania i zasady oceny

  • Wstępne uzgodnienie z prowadzącym tematu projektu. Najlepiej do końca grudnia przed przerwa (uzgodnić można osobiście lub mailowo)
  • Wszystkie projekty należy zrealizować w architekturze klient-serwer.
  • Implementacje serwerów współbieżnych należy wykonać dla systemów operacyjnych GNU/Linux z użyciem języka C/C++, używać API bsd-sockets.
  • Implementację klienta można wykonać na dowolnej platformie z użyciem dowolnego języka programowania, po uzyskaniu zgody prowadzącego.
  • Kod projektów muszą być utrzymywane w repozytorium GIT: https://gitlab.cs.put.poznan.pl/ [lub innym dostępnym dla prowadzącego]
  • Wymagane jest Sprawozdanie.(1-2 strony opisu projektu)
  • Prezentacja i oddanie projektu prowadzącemu.
  • Projekt trzeba oddać do końca semestru.

Na ocenę mają wpływ następujące czynniki:

  • Błędy kompilacji, błędy zarządzania pamięcią, etc.
  • Braku spełnienia zasad opisanych na tej stronie (np. Termin, język implementacji)
  • Uzasadnione wątpliwości dotyczących samodzielności pracy
  • Rażącego zaniedbania czytelności kodu
  • Brak sprawozdania

Proszę o dodanie do repozytoriów projektów

GitLab:@AdamGodzinski

GitHub:@AdamGodzinski

Szablon sprawozdania

Szablon_2022

Navigation

  • SK2