Krótki opis systemu Aplikacja System Quizów ma na celu umożliwienie przeprowadzenia wśród użytkowników zestawu testów online, przy czym dostęp do kolejnego etapu testów użytkownik otrzyma po pomyślnym zdaniu wcześniejszego etapu. Testy będą prezentowane w nowoczesnej formie jaką umożliwia Youtube i jego api. Pytanie zostanie przedstawione w filmie, po czym aplikacja zatrzyma jego odtwarzanie, i wyświetli dostępne odpowiedzi do wyboru.

Zakładana funkcjonalność

1. Użytkownicy
	a. rejestracja
	b. logowanie
2. Administrator
	a. logowanie
	b. dodanie etapu quizu
		ba. Wskazanie filmu na youtube na podstawie którego tworzony jest quiz
		bb. Zdefiniowanie czasu trwania quizu (czasu na udzielenie odpowiedzi)
		bc. Dodanie pytań do quizu i poprawnych odpowiedzi, wraz z momentem (minuty i sekundy) w filmie, w którym mają być wyświetlone a film zatrzymany do chwili udzielenia odpowiedzi.
		bd. Podanie progu punktowego, od którego etap ma zostać uznany jako zdany.
		be. Wskazanie innych etapów, których zdanie jest konieczne, do przystąpienia do aktualnego etapu
	c. zarządzanie danymi wymaganymi do rejestracji użytkownika
		ca. Czy wymagana data urodzenia
		cb. Czy wymagany numer pesel
		cc. Czy wymagany adres zamieszkania
		cd. Czy wymagana szkoła uczestnika
3. Quizy
	a. lista dostępnych quizów dla użytkownika (nie wszystkie mogą być dostępne dla konkretnego użytkownika)
	b. przystąpienie do quizu (rozpoczyna się odliczanie czasu, jaki użytkownik ma na wypełnienie quizu)
	c. asynchroniczne odbieranie odpowiedzi użytkownika zaraz po ich udzieleniu
	d. wyniki quizów w których uczestnik wziął udział
	e. statystyki quizów (ile osób zdało, ile nie, średnia liczba poprawnych odpowiedzi)
4. Prosty system zarządzania treścią
	a. dodawanie/modyfikacja aktualności na stronie głównej
5. Ustawienia
	a. Zmiana hasła
	b. Zarządzanie danymi osobowymi

Wybór technologii

Język programowania i platforma.

Jako języka programowania wybrałem język C#, wraz z platformą .NET. Skorzystałem z najnowszej wersji frameworku MVC, 3.0 udostępnianego przez .NET, wraz z silnikiem do generacji widoków, o nazwie Razor.

ORM.

Dla dostępu do bazy danych wykorzystałem narzędzie typu ORM, jakim jest Entity Framework, dostarczany przez firmę Microsoft. E.F. jest intensywnie rozwijany, obecnie w wersji 4.0 zbliża się w dojrzałości projektu do .nHibernate. Wybrałem go, ponieważ pragnę w przyszłości związać się zawodowo z technologiami dostarczanymi przez Microsoft. E.F. umożliwia budowanie bazy danych z poziomu kodu, tzw. Code First. Daje to możliwość tworzenia odpowiednich tabel w bazie danych, na podstawie przygotowanego modelu, który jest następnie wykorzystywany bezpośrednio w aplikacji. E.F. na podstawie odpowiednio opisanych pól klasy modelu, przygotowuje dla niego tabele i pola w bazie danych. Z bardziej zaawansowanych funkcjonalności korzystałem z relacji jeden do wielu, umożliwiającej dodanie do modelu pola, będącego listą innych pod-modeli. W bazie danych tworzona jest w takim wypadku odrębna tabela, dla pod-modelu, zawierająca dodatkowo referencję do wpisu w tabeli modelu głównego, do którego odnosi się dany wpis. Chciałem także skorzystać z bardzo przydatnej funkcjonalności jaką jest Table per Hierarchy . Umożliwiłoby to jednolite (od strony kodu) operowanie każdym z typów quizów, jako dziedziczącym po ogólnej klasie quizu. Niestety TPH okazała się nie w pełni poprawnie działająca (lub błędnie udokumentowana). Dlatego jako model quizu stworzyłem ogólną klasę, która posiada pola specyficzne dla każdego z rodzajów quizu. Natomiast w aplikacji wykorzystywana jest tylko potrzebna część z nich. Skorzystałem natomiast z funkcjonalności E.F. jaką jest seedowanie inicjalizacyjne bazy danych, predefiniowanymi obiektami modelu. Funkcjonalność ta jest także bardzo przydatna przy każdej modyfikacji modelu.

Javascript i Youtube JS API

Projekt bazuje na udostępnianym przez Youtube API dla Javascript. Pozwala to na przygotowanie w aplikacji kodu Javascript-owego, który jest odpowiedzialny za sterowanie odtwarzaniem filmu. Javascript odpowiada w aplikacji za: -start filmu, -sprawdzanie czasu (sekund) filmu, i zatrzymanie go, gdy odtwarzanie dojdzie do sekundy w której powinno zostać wyświetlone pytanie, -wyświetlenie okienka za pomocą Jquery, które zostanie wypełnione treścią pytania, pobraną za pośrednictwem AJAXa. -po wybraniu odpowiedzi przez użytkownika, wysłanie odpowiedzi do aplikacji, także za pomocą AJAXa. -po zakończeniu filmu (event generowany przez flashowy obiekt playera Youtube), przekierowanie do strony podsumowującej wyniki quizu.

Diagram przypadków użycia

pl/dydaktyka/ztb/2012/projekty/quizy/start.txt · ostatnio zmienione: 2019/06/27 15:50 (edycja zewnętrzna)
www.chimeric.de Valid CSS Driven by DokuWiki do yourself a favour and use a real browser - get firefox!! Recent changes RSS feed Valid XHTML 1.0