Projekt: System wspomagania osób studiujących Strona: 1 / 7 Opracowali: Zatwierdzili: Spis treści Damian Głuchowski Krzysztof Krajewski Krzysztof Krajewski dr inż. Sławomir Skoneczny Spis treści... 1 1. Wprowadzenie... 2 2. Ustalenia wstępne... 2 3. Format danych... 2 3.1. Rodzaj przechowywanych danych... 2 3.2. Baza danych... 3 4. Operacje dostępne dla aplikacji klienckiej... 4 4.1. Format danych... 4 4.2. Lista operacji... 4 5. Budowa aplikacji... 5 5.1. Zastosowane biblioteki... 6 5.2. Model... 6 5.3. Kontroler... 6 5.4. Widok... 7 5.5. Klasy pomocnicze... 7 Historia wersji... 7 Strona 1 z 7
Projekt: System wspomagania osób studiujących Strona: 2 / 7 1. Wprowadzenie Celem projektu jest stworzenie w języku PHP, która będzie udostępniała dane aplikacji mobilnej oraz umożliwiała zarządzanie nimi poprzez przeglądarkę WWW. 2. Ustalenia wstępne Język programowania: PHP 5.3.8 Format udostępnianych danych: Baza danych: JSON MySQL Środowisko programistyczne (IDE): Netbeans 7.0 Sposób współpracy i wersjonowania: Subversion (SVN) 3. Format danych 3.1. Rodzaj przechowywanych danych Aplikacja serwerowa będzie przechowywała jedynie dane dostępne dla wszystkich, takie jak: zbliżających się ciekawe wydarzenia (imprezy, koncerty, filmy) plan zajęd dla różnych uczelni, kierunków i semestrów zmiany harmonogramu (święta, zamiany dni jak np. czwartek zamiast wtorku) Oznacza to, że po stronie serwera nie będą przechowywane dane konkretnego studenta. Dane na sewerze, oprócz dodawania propozycji wydarzeo, będą mogły byd edytowane jedynie przez administratorów systemu. Strona 2 z 7
Projekt: System wspomagania osób studiujących Strona: 3 / 7 3.2. Baza danych Projekt bazy danych: Dane z tabel wydarzenia, przedmioty, zajęcia, egzaminy i harmonogram mogą byd pobrane przez aplikacje mobilną. Tabela użytkownicy zawiera dane logowania administratorów systemu, którzy będą mogli edytowad dane wg posiadanych uprawnieo. Tabele wydarzenia_rodzaje, dni_rodzaje, zajecia_rodzaje, powtarzalność będą zawierały te same dane na serwerze i aplikacji mobilnej. Strona 3 z 7
Projekt: System wspomagania osób studiujących Strona: 4 / 7 4. Operacje dostępne dla aplikacji klienckiej 4.1. Format danych Dane przesyłane będą w formacie JSON. Jest to lekki format wymiany danych komputerowych, dzięki czemu nie obciąża dodatkowo transferu. Dla porównania XML wymaga zastosowania znaczników i specjalnego formatu danych, co znacznie zwiększa ilośd przesyłanych danych i wymaga obliczeo na ich upakowanie. 4.2. Lista operacji 1) Pobranie wydarzeo Adres: http://asystentstudenta.x25.pl/json/pobierzwydarzenia Dane wejściowe *POST+: brak Dane wyjściowe: tablica obiektów zgodnych z tabelą wydarzenia Strona 4 z 7
Projekt: System wspomagania osób studiujących Strona: 5 / 7 2) Pobranie listy dostępnych planów zajęd Adres: http://asystentstudenta.x25.pl/json/pobierzdostepneplany Dane wejściowe *POST+: brak Dane wyjściowe: tablica tablic asocjacyjnych zawierających: id z tabeli uczelenie_semestry uczelnia - nazwa uczelni z tabeli uczelnie kierunek nazwa kierunki z tabeli uczelnie_kierunki semestr nazwa semestru z tabeli uczelenie_semestry 3) Pobranie przedmiotów z danego planu zajęd Adres: http://asystentstudenta.x25.pl/json/pobierzplanzajec Dane wejściowe *POST+: id identyfikator semestru z poprzedniej operacji Dane wyjściowe: tablica obiektów zawierających wszystkie atrybuty z tabeli przedmioty oraz: zajecia tablica obiektów zgodnych z tabelą zajecia egzaminy tablica obiektów zgodnych z tabelą egzaminy 4) Pobranie harmonogramu Adres: http://asystentstudenta.x25.pl/json/pobierzharmonogram Dane wejściowe: brak Dane wyjściowe: tablica obiektów zgodna z tabelą harmonogram 5. Budowa aplikacji Aplikacja zostanie zbudowana w oparciu o wzorzec MVC (model widok kontroler). Dzięki takiemu podziałowi w łatwy sposób możliwa będzie jej rozbudowa i konserwacja. Strona 5 z 7
Projekt: System wspomagania osób studiujących Strona: 6 / 7 5.1. Zastosowane biblioteki W projekcie zostaną użyte poniższe biblioteki: smarty - obiektowa biblioteka skryptów służąca do tworzenia szablonów dla aplikacji PHP php-activerecord - biblioteka do mapowania obiektowo-relacyjnego danych z bazy SQL (ORM) 5.2. Model Klasy modelu, czyli klasy przechowujące dane pobrane z bazy MySQL zostaną zbudowane z oparciu o wzorzec projektowy Active Record. Wyeliminuje to błędy związane z zapytaniami SQL i zwiększy przejrzystośd kodu. Biblioteka php-activerecord zabezpiecza również przed włamaniami typu SQL injection i umożliwia uniwersalne połączenie z różnymi rodzajami baz SQL. Wydarzenia, WydarzeniaRodzaje obsługuje wydarzenia dodawane do kalendarza Przedmioty przedmioty w planie zajęd studenta Egzaminy, PlanZaliczen klasy dotyczące planu zaliczeo i egzaminów Zajecia, ZajeciaRodzaje klasy przechowujące plan zajęd Harmonogram zmiany w harmonogramie roku (np. święta, zamiany dni, dni wolne) Uzytkownicy, UzytkownicyStatusy autoryzacja użytkowników i ich uprawnienia 5.3. Kontroler Klasy kontrolerów będą odpowiedzialne za logikę aplikacji, czyli odbieranie żądao, ich przetwarzanie i przesyłanie w formacie JSON lub wysyłanie do widoku. basecontroller kontroler bazowy z którego dziedziczone będą funkcje m.in. wyświetlania szablonów, autoryzacji użytkowników kalendarzcontroller zarządzanie wydarzeniami i zmianami harmonogramu Strona 6 z 7
Projekt: System wspomagania osób studiujących Strona: 7 / 7 uzytkownicycontroller autoryzacja i zarządzanie użytkownikami systemu planzajeccontroller zarządzanie planem zajęd jsoncontroller przesyłanie danych do klienta 5.4. Widok Widok będzie realizowany przez bibliotekę smarty. Pozwala ona rozdzielid wygląd aplikacji od logiki lub modelu. Umożliwia łatwą zmianę wyglądu i jest bardzo szybka w projektowaniu. Pozwala do prostego pliku HTML wstawid dane przesyłane z kontrolera. Oczywiście widok będzie wykorzystywany tylko do panelu administracyjnego. 5.5. Klasy pomocnicze Aplikacja główna klasa uruchomieniowa Config klasa przechowująca ustawienia Klasy bibliotek smarty i activerecord Historia wersji Data Autor Zakres Zatwierdził Wersja 23-10-2011 KK Pierwsza wersja A1 24-10-2011 GD Poprawki językowe / literówki A2 KK Wstawiony projekt bazy i opis operacji KK A3 Strona 7 z 7