Dokumentacja projektu Strona Warsztatów Matematycznych

-1. Skrót

Strona Warsztatow Matematycznych jest strona służąca uczestnikom i prowadzącym Warsztaty Matematyczne oraz kółka matematyczne w XIV LO im. S. Staszica w Warszawie. Uczestnik może przed strone ściągąć materiały z odbytych zajęć, zadawać pytania do organizatorów oraz dowiadywać się o nowościach. Prowadzący ma prawo zamieszczać informacje o prowadzonych przez siebie kółkach, jak i dokładac materiały do swoich zajęc.

Poniższy dokument składa sie z dwóch części: opisu działania strony WWW oraz opisu konstrukcji bazy danych i interfejsu do bazy danych w Scheme

0. Spis treści

-1. Skrót
0. Spis treści
1. Opis działania strony WWW
1.1. Część uczestnika
1.1.1. Strona główna
1.1.2. Strona pojedynczych warsztatów
1.1.3. Strona kółek
1.1.4. Strona galeria
1.1.4.1. Strona galeria - wszystkie galerie
1.1.4.2. Strona galeria - pojedyncza galeria
1.1.5. Strona FAQ
1.2. Część prowadzącego
1.2.1. Odpowiadanie na pytania
1.2.2. Zmiana danych
1.2.3. Zarządzanie własnymi kółkami
1.2.4. Zarządzanie własnymi materiałami
1.2.5. Dodanie niusa
1.3. Funkcjonalności administratora
2. Opis konstrukcji
2.1. Model logiczny
2.2. Zmiany w stosunku do modelu logicznego
2.3. Widoki
2.4. Zachowanie spójności bazy danych
2.5. Implementacja CGI w Scheme
2.5.1. Biblioteka wm_lib.ss
2.5.2. Zewnetrzne komendy - kompilowanie TeXa
3. Obecne instalacje
4. FAQ prowadzących, w szczególności o kompilowaniu TeXów

1. Opis działania strony WWW

Strona WWW składa się z menu z lewej strony oraz z głównej części widoku po prawej. W menu można wybrać podstronę bądź zalogować się jako prowadzący.
Podstrony dzielą się na te dostępne przez zwykłego użytkownika oraz te dostępne po zalogowaniu się, tylko dla prowadzących

1.1. Część uczestnika

Przeciętny użytkownik może:

1.1.1. Strona główna

Strona główna jest standardową podstroną wyświetlaną na początku wejścia na stronę. Na niej widoczne są aktualne niusy (nius standardowo ma ważność jednego miesiąca) oraz stała informacja na temat celu istnienia strony.

1.1.2. Strona pojedynczych warsztatów

Z bocznego menu można wybrać jedne z warsztatów matematycznych. Podstrona informująca o pojedynczych warsztatach zawiera:

1.1.3. Strona kółek

Podstrona zawierająca informację o kółkach matematycznych i zawodach próbnych odbytych w szkole. Każdy prowadzący ma prawo dodać swoje kółko do listy. Do kółek można dołączać materiały. Podstrona składa się z listy kółek i ew. materiałów do tych kółek.

1.1.4. Strona galeria

1.1.4.1. Strona galeria - wszystkie galerie

Podstrona galeria wyświetla listę wydarzeń (kółek, warsztatów, zawodów) do których są jakieś zdjęcia. Kliknięcie na określoną galerię przenosi użytkownika do strony z pojedynczą galerią

1.1.4.2. Strona galeria - pojedyncza galeria

Pojedyncza galeria wyświetla miniaturki zdjęć z wydarzenia, oraz linki do pełnowymiarowych zdjęć. W chwili obecnej wszystkie zdjęcia znajdują się na serwerze duch.

1.1.5. Strona FAQ

Strona z często zadawanymi pytaniami (bądź też pytaniami wartymi odpowiedzi). Składa się ona z:

Warto nadmienić, iż zadane pytanie nie pojawia się w wyższej liście, gdyż nie jest jeszcze odpowiedziane - pojawi się, jeśli jakiś prowadzący na nie odpowie. Prowadzący w ramach wolnego czasu mogą odpowiadać na pytania.

1.2. Część prowadzącego

W momencie zalogowania się przez prowadzącego, w miejsce formularza logowania, pojawia się dodatkowe menu dla prowadzących. Oprócz wylogowania się, prowadzący może:

O ile w części użytkownika ukryłem możliwe do wywołania przez laika możliwości wywołania tego, iż baza danych da nam po łapach, o tyle uznałem, że prowadzący są zaawansowanymi uzytkownikami i nie przestraszą się komunikatu "Error: duplicate key violation".

1.2.1. Odpowiadanie na pytania

Prowadzący ma prawo, w tej podstronie:

1.2.2. Zmiana danych

W tej podstronie prowadzący może zmienić swoje dane: imię, nazwisko, adres e-mail oraz hasło.

1.2.3. Zarządzanie własnymi kółkami

W tej podstronie prowadzący może:

Strona składa się z listy zajęć, formularza do dodawania "prowadzeń" zajęć oraz formularza do dodawania nowych kółek. Kółko ma swoją "datę trwania", wpisywaną ręcznie, którą wpisuje prowadzący w trybie, jaki sobie życzy (nie jest ona nijak weryfikowana, może to być np. przedział czasowy) oraz datę początku wydarzenia, która służy do sortowań przy wypisywaniu wydarzeń.

1.2.4. Zarządzanie własnymi materiałami

W tej podstronie prowadzący ma wgląd w materiały, których jest autorem. Może on:

Podstrona składa się z listy materiałów oraz formularza do dodawania nowego materiału

1.2.5. Dodanie niusa

Podstrona zawiera formularz, dzięki któremu prowadzący może dodać nowego niusa na stronę główną. Nius ma standardową ważność miesiąć

1.3. Funkcjonalności administratora

Pozostałe możliwości użycia bazy danych uznałem za bardzo rzadko wykorzystywane, oraz nie powinni mieć do nich dostęp prowadzący oraz uzytkownicy. Są to:

Powyższe czynności ręcznie wykonuje administrator na bazie danych.

2. Opis konstrukcji

Baza danych znajduje się w Postgresie, interfejs został napisany w Schemie.

2.1. Model logiczny

Diagram związków encji bazy danych znajduje się tu.

2.2. Zmiany w stosunku do modelu logicznego

Wprowadziłem następujące dodatki, niewidziane na diagramie logicznym:

2.3. Widoki

W celu uczytelnienia skryptów i przerzucenia części odpowiedzialności do bazy danych wprowadziłem kilka widoków ułatwiających wyświetlanie informacji na stronie:

2.4. Zachowanie spójności bazy danych

W celu zapewnienia spójności bazy danych dodałem:

2.5. Implementacja CGI w Scheme

Interfejs został napisany w Scheme, z wykorzystaniem bibliotek do cgi oraz Postgresa. Implementacja składa się z:

2.5.1. Biblioteka wm_lib.ss

Biblioteka wm_lib.ss jest zbiorem podstawowych funkcji używanych w skryptach bezpośrednio tworzących strony. Składa się ona z:

Jest ona załączana raz, na początku działania index.cgi

2.5.2. Zewnetrzne komendy - kompilowanie TeXa

Strona potrzebuje móc skompilować przychodzący materiał w TeXu, do tego jest stworzony prosty Makefile, z poziomu Scheme jest wywoływany make za pomocą funkcji system.

3. Obecne instalacje

Obecnie baza danych zainstalowana jest na:

Strona podmieniła dawną stronę warsztatów matematycznych, stworzoną przez Alka Jankowskiego. Skopiowałem ze strony Alka wygląd oraz ogólny układ podstron, strona Alka nie korzystała z bazy danych.

4. FAQ prowadzących, w szczególności o kompilowaniu TeXów