Dokumentacja techniczna sytemu „NTP rekrut”
Transkrypt
Dokumentacja techniczna sytemu „NTP rekrut”
Dokumentacja systemu „NTP rekrut” Autor: Sławomir Miller 1 Spis treści: 1. Wstęp 1.1 Wprowadzenie 1.2 Zakres dokumentu 2. Instalacja 2.1 2.2 2.3 2.4 2.5 Wymagania systemowe Początek Prawa dostępu Etapy instalacji Ustawienia bazy danych 3. Instrukcja obsługi 3.1 3.2 3.3 3.4 3.5 3.6 3.7 3.8 Logowanie Uprawnienia Produkty Dodawanie produktów Oferty Dodawanie oferty Dodawanie użytkowników Edycja pól słownikowych 4. Struktura bazy danych 4.1 Struktura tabel 4.2 Powiązania 5. Wykorzystane rozwiązania 5.1 5.2 5.3 5.4 5.5 5.6 Sterowanie Template Raportowanie błędów Kopiowanie plików graficznych Bezpieczeństwo sesji Zawartość 2 1. Wstęp 1.1 Wprowadzenie Dostarczona aplikacja stanowi system obsługujący bazę danych produktów i ofert. Celem dokumentu jest wprowadzenie użytkownika w system oraz objaśnienie rozwiązań technicznych w nim zastosowanych. 1.2 Zakres dokumentu Dokument obejmuje zasady instalacji i późniejszego użytkowania oraz obejmuje aspekty natury technicznej. Przedstawia on wykorzystane rozwiązania w procesie implementacji jak i wykorzystane struktury danych. 3 2. Instalacja 2.1 Wymagania systemowe Aby aplikacja działała poprawnie wymagane jest odpowiednie środowisko: - serwer http (np. apache) - PHP 4.x.x/5.x.x - MySQL 4.x.x 2.2 Początek Aby aplikacja mogła poprawnie działać należy przekopiować odpowiednie pliki bez naruszania ich struktury do docelowego folderu, który stanowi folder dokumentów html serwera http. 2.3 Prawa dostępu Przed uruchomieniem aplikacji należy ustawić odpowiednie prawa zapisu do katalogów: - /conf - /photos W systemie „linux” można tego dokonać poleceniem „chmod” (pomoc: man chmod). W systemach windows rodziny NT uprawnienia ustawiamy wybierając odpowiednią opcje z menu podręcznego. 2.4 Etapy instalacji Teraz jesteśmy gotowi do uruchomienia aplikacji. Wywołujemy ją poprzez wpisanie odpowiedniego adresu w przeglądarce (np. http://localhost/ntp/). Naszym oczom ukaże się pierwszy ekran instalacyjny. Aby przeprowadzić instalację poprawnie należy postępować zgodnie z poleceniami wyświetlanymi na ekranie. 2.5 Ustawienia bazy danych Do poprawnego skonfigurowania aplikacji niezbędne jest odpowiednie ustawienie bazy danych mysql. Musimy stworzyć bazę danych oraz użytkownika mającego odpowiednie prawa dostępu do stworzonej bazy danych. Niezbędne polecenia SQL znajdziesz w pliku [sql/install.sql]. 4 Po wprowadzeniu parametrów bazy danych program instalacyjny automatycznie tworzy niezbędne tablice. W przypadku gdy tablice są już utworzone pozostawia je bez zmian i kontynuuje instalacje. 5 3. Instrukcja obsługi 3.1 Logowanie Podczas pierwszego logowania użyj loginu i hasła podanego podczas instalacji. Po poprawnym wprowadzeniu danych w zależności od uprawnień zobaczysz menu z odpowiednimi opcjami. 3.2 Uprawnienia System posiada dwa rodzaje uprawnień użytkownika. Zwykły użytkownik może przeglądać produkty i oferty jak i dodawać je. Administarator ma dodatkowo możliwość dodawania użytkowników oraz wprowadzania zmian w polach słownikowych. 3.3 Produkty W dziale produkty mamy listę wszystkich dostępnych produktów, którą możemy sortować według „nazwy skróconej”, „kategorii” i „opiekuna”, sortowanie odbywa się po kliknięciu na powyższe linki. 3.4 Dodawanie produktów W tej sekcji mamy możliwość dodawania własnych produktów do bazy danych. Aby dodać produkt należy wypełnić zamieszczony formularz, w przypadku nie wypełnienia wymaganych pól użytkownik zostanie o tym poinformowany odpowiednim komunikatem. Aby umieścić fotografię należy po kliknięciu przycisku „przeglądaj” wybrać ją z dysku a następnie kliknąć „ok”. 3.5 Oferty W dziale oferty mamy listę wszystkich dostępnych ofert, którą możemy sortować według „numeru oferty”, „odbiorcy” i „opiekuna”, sortowanie odbywa się po kliknięciu na powyższe linki. 3.6 Dodawanie oferty Najpierw musimy określić ile produktów będzie w ofercie w tym celu wypełniamy odpowiednie pole i przechodzimy dalej. Następnie wypełniamy formularz podając wszystkie niezbędne dane. W przypadku pominięcia wymaganych danych użytkownik zostanie o tym poinformowany odpowiednim komunikatem. W przypadku wyboru produktów podajemy przy każdej pozycji ilość zamawianych produktów jak i rabat, wszelkie obliczenia dokonywane są automatycznie i nie można ich edytować. 6 Gotową ofertę możesz zapisać do bazy danych poprzez kliknięcie przycisku „Zapisz” lub zapisać ją i automatycznie wydrukować poprzez wybranie opcji „Drukuj”. W przypadku wydruku zostanie otwarte oddzielne okno z podglądem wydruku jak i wywołane zostanie okno drukowania drukarki. 3.7 Dodawanie użytkowników Użytkowników można dodawać tylko z poziomu „Administratora”. Aby dodać użytkownika należy wypełnić odpowiedni formularz wybierając rodzaj użytkownika. 3.8 Edycja pól słownikowych Edycji pól słownikowych może dokonywać tylko „Administrator”. Po lewej stronie formularza wybieramy pole słownikowe do edycji. Po wybraniu pola słownikowego, w środkowej części zobaczymy aktualnie występujące wartości w polu słownikowym. Aby usunąć dane pole należy je zaznaczyć, a następnie kliknąć przycisk „Usuń”. Jeśli chcemy dodać pole należy wpisać jego wartość w prawej części formularza, a następnie kliknąć przycisk „Dodaj”. W przypadku wystąpienia jakichkolwiek nieprawidłowości użytkownik zostanie o nich poinformowany odpowiednim komunikatem. 7 4. Struktura bazy danych 4.1 Struktura tabel W bazie danych występuje pięć tabel: Implementację SQL każdej z tabel można znaleźć w plikach: - “sql/dictionary_fields.sql“ - “sql/offer.sql“ - “sql/offer_products.sql“ - “sql/product.sql“ - “sql/user.sql“ 8 4.2 Powiązania Między tabelami w bazie danych występują następujące powiązania: W przypadku pól słownikowych mamy swobodę działania w ich dodawaniu wraz z pojawianiem się nowych formularzy w aplikacji. Ponieważ rozbudowa aplikacji pociąga za sobą zmiany w kodzie źródłowym nie było potrzeby umieszczania nazw i rodzajów pól słownikowych w bazie danych. W bazie danych zapisane są jedynie wartości owych pól. 9 5. Wykorzystane rozwiązania 5.1 Sterowanie Głównym plikiem sterującym aplikacją jest plik „index.php” to on w zależności od działań użytkownika wyświetla zawartość strony. Każda strona posiada swój plik . php oraz przyporządkowany do niego plik .html. W index.php „includowane” są tylko niezbędne pliki do wyświetlenie i obsłużenia danej strony, dzięki temu zbędny niewykorzystywany kod nie jest inicjowany. 5.2 Template Dzięki wykorzystaniu Xteplatów, których specyfikacja znajduje się w plik „libs/class.XTemplate.php”, mamy całkowite rozdzielenie warstwy php od warstwy html. Rozwiązanie to zdecydowanie porządkuje układ aplikacji jak i pozwala w prosty i bezproblemowy sposób definiować wygląd całej strony. 5.3 Raportowanie błędów Błędy raportowane są w prawym górnym rogu ekranu W aplikacji zastosowano podwójne sprawdzanie wysyłanych danych z formularza. Najpierw dane sprawdzane są po stronie klienta, by nie obciążać serwera, następnie ze względów bezpieczeństwa, sprawdzane są po stronie serwera w skryptach php. Błędy w obu przypadkach raportowane są w ten sam sposób. Uwaga ! W przypadku przeglądarek innych niż Internet Explorer, błędy z poziomu javascript raportowane są poprzez okienka „alert”. 10 5.4 Kopiowanie plików graficznych W bazie danych umieszczane są jedynie linki do plików graficznych, które przechowywane są w katalogu „/photos”. Powodem takiego rozwiązania jest to iż w przypadku mySQLa duża liczba plików umieszczonych bezpośrednio w bazie mocno ją obciąża i powoduje spadek jej wydajności. 5.5 Bezpieczeństwo sesji W aplikacji została zastosowana prosta sesja, która w tablicy „$_SESSION” przechowuje uprawnienia użytkownika. W większej aplikacji z wiekszymi wymaganiami bezpieczeństwa stosuje się generowanie i przechowywanie indywidualnego klucza w bazie danych na podstawie którego następuje identyfikacja użytkownika. 5.6 Zawartość Aplikacja ma następującą strukturę katalogów: / /conf /css /doc /img /libs /photos /sql /tpl - katalog główny zawiera pliki sterujące php - zawiera plik konfiguracyjny config.php - style css - dokumentacja - grafika - biblioteki php - przechowuje dodane zdjęcia produktów - pliki tabel bazy danych (plik database.sql zawiera zrzut mysqldump z bazy) - pliki .html (templates) 11