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

Podobne dokumenty