Zatrudniono mnie do opracowania narzędzia Harmonogram kursów online dla oddziału Uniwersytetu Południowej Kalifornii. Było to w 2005 roku. Poproszono mnie o zaprogramowanie dodatku o nazwie Course Scheduler.
Dyrektor, która mnie zatrudniła, chciała mieć konkretny wygląd wszystkich kursówa a to był rok 2005; wolała wygląd a\'la MS Excel. Klient chce, klient ma, prawda?
Spędziłem wiele dni próbując znaleźć rozwiązanie. Któregoś dnia, gdy jechałem autobusem do pracy ze stacji Vermont/Beverly, kropki w mojej głowie w końcu się połączyły i wpadłem na genialny - na tamten czas przynajmniej - pomysł: wykorzystać piksele jako minuty do zbudowania wirtualnego planu zajęć.
Slajdy piąty, szósty i siódmy przedstawiają pomysł wdrożony w życie.
Backend napędza oczywiście grafika, jednak wszystko na niej umieszczone jest dynamicznie według napisanego przeze mnie scenariusza.
A reszta to już historia...
Koordynator kursu wypełnia formularz planu zajęć. Formularz zawiera kilka trików JavaScript umożliwiających włączenie/wyłączenie pól (np. w określone dni są określone godziny, więc reszta opcji jest wyłączona)
Po zapisaniu zamówienia na kurs w systemie koordynator ma możliwość podglądu jego listy i przesłania wniosku do kierownika studiów. Przed złożeniem każde zgłoszenie można edytować. Teraz kontrolę przejmuje jeden z moich skryptów, a koordynator wysyła zapytanie i oblicza, które Studio jest najodpowiedniejsze dla danego kursu. Ten sam skrypt sprawdza konflikty dat i jeśli takie istnieją, żądanie nie jest przesyłane i drukowany jest błąd konfliktu dat. Koordynator musi wówczas dokonać edycji tego kursu i wybrać inne godziny (dni) lub wysłać specjalną prośbę do Dyrektora
Panel DYREKTORSKI (admin panel). Tutaj znajdują się wszelkie wnioski przesłane przez wszystkich koordynatorów. W lewej zakładce Dyrektor może wybrać Semestr (liczba wskazuje, ile wniosków zostało przesłanych).
System pokazuje tylko te semestry, do których został wysłany wniosek. Semestry bez wniosków nie są wyświetlane. Studio Assigned pokazuje numer studia, do którego przypisano dany kurs. Dyrektor ma możliwość zmiany studia
Pani Dyrektor chciała, żebym zbudował graficzne odzwierciedlenie złożonych wniosków. Spełniłem jej wymagania stosując warstwy DIV, które były ustawione w pozycji 'absolutnie' od lewego górnego rogu, tworząc wynik w formie siatki - coś w rodzaju arkusza kalkulacyjnego.
Każda minuta była reprezentowana przez 2 lub 3 piksele, dlatego łatwo było napisać funkcję, która renderuje ramki w idealnym rozmiarze (długości), aby naśladować rzeczywistą porę dnia
Każde z tych pól to interaktywne linki - administrator może kliknąć dowolne z nich, aby otworzyć nowe okno ze wstępnie wypełnionymi polami wejściowymi i możliwością edycji każdego zaplanowanego kursu
Jeżeli dany kurs posiada także sesję dyskusyjną (w przypadku niektórych kursów dyskusja odbywa się raz w tygodniu), Dyrektor ma możliwość edycji wyłącznie szczegółów kursu lub tylko szczegółów dyskusji (prawy dolny róg, O jak Only ). Jeżeli wszystko jest w porządku, Dyrektor (Manager) może opublikować kurs. Kolory w Time Matrix zmienią się z blaknącego zielonego i żółtego na stałe: zielony dla kursu i żółty dla dyskusji (jeśli istnieje)






