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