Zadania:
Transkrypt
Zadania:
Zadania na projekt z TIN – lato 2008 Prowadzący: Łukasz Mosiej Informacje ogólne o projekcie 1. Terminy konsultacji: czwartek 8-10 (po uprzednim potwierdzeniu spotkania z prowadzącym). Jeśli jakiś zespół chciałby się spotkać proszę o informację drogą mailową minimum dwa dni przed spotkaniem. 2. Ostateczne terminy oddania kolejnych etapów projektu: a. Sprawozdanie wstępne: 17 kwiecień 2008 (każdy tydzień opóźnienia – 5 pkt mniej) b. Prezentacja i oddanie sprawozdania końcowego: 29 maja 2008 3. Sprawozdanie wstępne (4-6 stron): a. Szkic przyjętego rozwiązania b. Opis technologii z uzasadnieniem c. Specyfikacja wykorzystanych protokołów d. Wstępny opis testów i przypadków testowych 4. Sprawozdanie końcowe (6-10 stron): a. Opis przyjętego rozwiązania b. Opis wykorzystanych technologii c. Szczegółowa specyfikacja wykorzystanych protokołów d. Opis przeprowadzonych testów wraz z analizą wyników e. Schemat architektury rozwiązania ze wszystkimi przejściami f. Instrukcja instalacji i uruchomienia 5. Punktacja (maksymalnie 50 punktów): a. Sprawozdanie wstępne – 10 pkt b. Sprawozdanie końcowe – 10 pkt c. Aplikacja – 20 pkt d. Testy – 10 pkt 6. Zasady: a. Do każdego projektu może zgłosić się maksymalnie jeden zespół. Decyduje kolejność zgłoszeń drogą mailową. b. Tematy zarezerwowane będą zaznaczane w tym dokumencie. c. Korzystamy tylko z czystych gniazd – nie korzystamy z gotowych bibliotek, który wspomagają komunikację na poziomie gniazd (również w przypadku buforowania danych) d. Program powinien być napisany w języku C, C++ (w szczególnych przypadkach po ustaleniu z prowadzącym możliwe będzie napisanie programu w innym języku) e. Interfejs użytkownika jest sprawą drugorzędną (wystarczy tryb tekstowy). Istotą zadania jest komunikacja sieciowa i protokół. f. Oddanie projektu odbywa się na środowisku i sprzęcie przygotowanym przez zespół projektowy (możliwe jest oddanie projektu na własnym laptopie, bądź na zdalnym serwerze) g. Dokumentacja wstępna jak i dokumentacja końcowa oddawana jest w formie papierowej (dodatkowo należy wysłać dokumentację do prowadzącego) h. Kody źródłowe, instrukcję instalacji i uruchomienia należy wysłać po oddaniem projektu do prowadzącego Tematy projektów 1. System wymiany plików tekstowych i binarnych (ZAD1) Status: ZAJĘTE (ZESPÓŁ 2) Zadanie polega na stworzeniu narzędzia opartego na architekturze klient – serwer, umożliwiającego udostępnianie plików tekstowych i binarnych pomiędzy klientami za pośrednictwem serwera. Każdy klient ma skonfigurowane dwa foldery: a) share - z plikami do udostępnienia b) download - z plikami, które ściągnął Klient po zalogowaniu się na serwer przesyła listę plików, które udostępnia (łącznie z tymi które są w katalogu „download”), wraz z informacją o ich rozmiarze i dacie ostatniej modyfikacji. Każdy zalogowany klient może pobrać z serwera posortowaną listę (po dacie, nazwie, typie, rozmiarze, identyfikatorze klienta) plików i zacząć je pobierać do swojego katalogu. Plik całkowicie pobrany jest automatycznie wstawiany do listy plików udostępnionych. Klient powinien cyklicznie informować serwer o zmianach w udostępnionych plikach (po dodaniu lub usunięciu pliku po określonym czasie np. 5 sekundach) oraz cyklicznie pobierać informacje o udostępnionych plikach (np. co 5 sekund). Program powinien mieć oddzielny plik konfiguracyjny, w którym będzie można manipulować czasami pobierania listy oraz aktualizowania danych. Należy wykorzystać otwieranie wielu gniazd na raz - możliwe jest pobieranie wielu plików na raz z jednoczesnym udostępnianiem innych plików. 2. Bezpieczny komunikator (ZAD2) Status: WOLNE Zadanie polega na stworzeniu bezpiecznego komunikatora, który będzie w sposób dynamiczny zmieniał porty nasłuchujące i wysyłające. Komunikacja pomiędzy klientami ma się odbywać w dwóch trybach: z i bez użycia serwera. Dodatkowym atutem będzie wprowadzenie autoryzacji. 3. Zakłady bukmacherskie (ZAD3) Status: ZAJĘTE (ZESPÓŁ 1) Zadanie polega na stworzeniu mechanizmu, umożliwiającego złożenie zakładu. Każdy klient ma swoje konto na serwerze z odpowiednią sumą pieniędzy. Serwer ma za zadanie przyjmować zakłady, jeśli suma zakładów na jedną grę nie przekroczy konfigurowalnej sumy. Serwer posiada interfejs do zamykania zakładów i ustalania wyniku. Klienci są powiadamiani o wyniku i saldzie swojego konta. Każdy klient na starcie ma ustaloną konfigurowalną kwotę na zakłady. 4. Serwer proxy z blokadą rodzicielską + opcją cachowania danych (ZAD4) Status: ZAJĘTE (ZESPÓŁ 3) Zadanie polega na stworzeniu prostego serwera proxy, blokującego wszystkie niedozwolone treści. Niedozwolone treści są konfigurowalne z poziomu pliku tekstowego. Serwer ma logować wszystkie żądania. Dodatkowo serwer ma „cachować” poprzednio odwiedzone strony. 5. Gra - warcaby lub kółko i krzyżyk (ZAD5) Status: ZAJĘTE (ZESPÓŁ 6 – kółko i krzyżyk; ZESPÓŁ 5 - statki) Zadanie polega na stworzeniu jednej z powyższych gier (bądź innej po ustaleniu z prowadzącym), w której może uczestniczyć dowolna liczba graczy. Każdy gracz występuje w jednej z drużyn i w kolejności zgłoszenia do serwera wykonuje odpowiedni ruch. Serwer powinien umożliwiać obsługę wielu gier tego samego typu (warcaby, bądź kółko i krzyżyk) jednocześnie. Każdy klient podczas podłączenia do serwera dostaje listę trwających gier i może dołączyć się do jednej z nich, bądź może stworzyć nową grę. Serwer powinien stwierdzić kiedy gra się zakończyła i poinformować graczy o wyniku. 6. Bezpieczny komunikator gadu – gadu (ZAD6) Status: WOLNE Zadanie polega na stworzeniu klienta do gadu – gadu, który umożliwia transmisję szyfrowaną pomiędzy dwoma klientami. Klient musi posiadać mechanizmy do odszyfrowywania wiadomości. Klient powinien rozróżniać tryb transmisji danych i w przypadku stwierdzenia otrzymania zaszyfrowanej wiadomości powinien ją odszyfrować. Sposób szyfrowania i przedstawiania wiadomości do ustalenia na etapie projektu wstępnego. 7. Czat wielotematyczny (ZAD7) Status: ZAJĘTE (ZESPÓŁ 4) Zadanie polega na stworzeniu czatu, który umożliwiałby rozmowę z odpowiednimi osobami. Każdy użytkownik czatu przy logowaniu wybierałby swoją profesję (np. technik informatyk). Następnie mógłby z listy wybrać osobę z którą chciałby zadać pytanie. Każda osoba na raz może zadawać pytania wielu osobom. Jednakże rozmowa zostaje przerwana, gdy inna osoba zada danej osobie pytanie. Komunikaty są kolejkowane na serwerze. Po udzieleniu odpowiedzi klient może kontynuować rozmowę z innym użytkownikiem. Komunikacja pomiędzy klientami odbywa się przez serwer. Zespoły 1. Zespół 1 Skład zespołu: a) Krzysztof Piech b) Witold Gruszczyński c) Jacek Gębala d) Jan Jacek Skorupiński Zadanie: Zakłady bukmacherskie (ZAD3) Termin wyboru: 04-04-2008 21:27 2. Zespół 2 Skład zespołu: a) Zbigniew Fabijański b) Marcin Wyrzykowski c) Robert Słowiński d) Tomasz Nikiel Zadanie: System wymiany plików tekstowych i binarnych (ZAD1) Termin wyboru: 04-04-2008 22:39 (zespół 1 zgłosił się do zadania 3 o godzinę wcześniej i dlatego ZAD3 przypadło im) 3. Zespół 3 Skład zespołu: a) Paweł Laszewski b) Radosław Osiński c) Paweł Pasznik d) Maciej Zbierski Zadanie: Serwer proxy z blokadą rodzicielską + opcją cachowania danych (ZAD4) Termin wyboru: 07-04-2008 15:10 4. Zespół 4 Skład zespołu: a) Bartosz Kotłowski b) Kamil Boczkal c) Bartłomiej Jurek d) Przemysław Seneczko Zadanie: Czat wielotematyczny (ZAD7) Termin wyboru: 11-04-2008 22:21 5. Zespół 5 Skład zespołu: a) Weronika Gutfeter b) Adam Stelmaski c) Jakub Kochańczyk d) Michał Romanowski Zadanie: Gra - statki (ZAD5) Termin wyboru: 09-04-2008 14:01. 6. Zespół 6 Skład zespołu: a) Piotr Bratkowski b) Michał Domański c) Andrzej Fryzka d) Maciej Gugała Zadanie: Gra - kółko i krzyżyk (ZAD5) Termin wyboru: 08-04-2008 11:28