To jest stara wersja strony!
Dawid Boisse, Wojciech Myśliwiec
Streszczenie
Projekt stanowi podstawę bazodanową dla projektu realizowanego z przedmiotu Technologie i Programowanie WWW.
Implementacja (w ciągłej fazie rozwoju) dostępna jest pod adresem http://znaczki.malopolska.pl
Sforumułowanie zadania projektowego
Celem projektu jest stworzenie serwisu dla filatelistów, który umożliwiałby im monitorowanie nowości i zmian na polskim rynku filatelistycznym. Elektroniczne źródła informacji z rynku filatelistycznego bywają skąpe w informacje oraz często nieaktualizowane na bieżąco. Brakuje również prostej wymiany informacji pomiędzy sympatykami znaczków, bardzo istotnej przy kompletowaniu zasobów.
Zwieńczeniem byłaby działalność gospodarcza polegająca na okresowej subskrypcji katalogu znaczków drogą elektroniczną.
W obecnej chwili wymagane jest fizyczne przeszukiwanie specjalistycznych sklepów filatelistycznych, co w mniejszych miejscowościach nie jest takie trywialne.
Wychodząc naprzeciw potrzebom, nasz portal miałby pełnić funkcję podstawowego źródła wyżej wymienionych informacji. Chcielibyśmy przy tym stworzyć szansę wzrostu popularności tego hobby poprzez ułatwienie dostępu do informacji dla potencjalnych zainteresowanych.
Użytkownicy w serwisie będą posiadali możliwość przeglądania katalogu online (zamiast w formie papierowej), wymiany informacji poprzez forum oraz komentarze o wszelkich aspektach działalności hobbystycznej oraz docelowo zamawiania katalogu drogą elektroniczną(w przyszłości).
Pozyskanie większej ilości odwiedzić będzie motywacją do dalszego rozwoju serwisu, pozyskania środków finansowych z odwiedzin strony oraz przyciągania nowych osób do filatelistyki w Polsce.
Analiza stanu wejściowego
W polskim internecie istnieje niewiele rozwiązań dedykowanych filatelistom. Najbardziej popularnym jest Katalog znaczków pocztowych oraz serwis Filatelistyka.org. O ile pierwszy z wymienionych wydaje się obejmować zbliżoną funkcjonalność, jednak w nieco bardziej ogólnym zakresie, o tyle drugi jest portalem generalnie traktującym o filatelistyce, a nie konkretnie ukierunkowanym na katalog znaczków w formie online.
Obie strony są projektami niekomercyjnymi.
Analiza wymagań użytkownika
Wymagane
Rejestracja nowych użytkowników
Zarządzanie kontem(przypomnienie hasła)
Przeglądanie katalogu znaczków
Wyszukiwanie znaczków po numerze katalogowym
Widok szczegółowy znaczka, komentarze, opinie
Dodawanie nowego znaczka do bazy
Moderacja wpisów przez administratora/moderatora
Łatwe dodawanie wpisów na stronie głównej
Ciekawy layout/design, elementy pozostałe(
FAQ, Regulamin)
Opcjonalne
Oferta okresowej subskrypcji katalogu(przyszłość)
Sondy, badanie preferencji użytkowników
Dodanie nieintruzywnych reklam
Monitorowanie aktywności odwiedzin
Określenie scenariuszy użycia
Scenariusze dla gościa
Rejestracja w serwisie
Przeglądanie katalogu
Wyszukiwanie po numerze katalogowym
Generowanie PDF ze szczegółami wpisu z katalogu
Przegląd informacji o serwisie (
FAQ/Regulamin/Kontakt)
Wysłanie wiadomości kontaktowej
Scenariusze dla użytkownika
Logowanie/Wylogowywanie
Przypomnienie hasła
Dodawanie wpisu do katalogu
Przeglądanie katalogu
Wyszukiwanie po numerze katalogowym
Generowanie PDF ze szczegółami wpisu z katalogu
Dodawanie komentarzy do wpisu
Przegląd informacji o serwisie (
FAQ/Regulamin/Kontakt)
Wysłanie wiadomości kontaktowej
Scenariusze dla administratora/moderatora
Logowanie/Wylogowywanie
Dodawanie/edycja/usuwanie wiadomości na stronie głównej
Zarządzanie wpisami w katalogu
Dodawanie komentarzy do wpisu
Weryfikacja/unieważnianie dodanych przez użytkowników wpisów
Przegląd logów i statystyk
Diagram przypadków użycia
Identyfikacja funkcji
Logowanie/wylogowywanie z serwisu
Rejestracja konta użytkownika
Dodawanie wpisów na stronie głównej przez administratora
Dodanie/usunięcie/modyfikacja informacji o znaczkach
Generowanie dokumentu PDF dla danego znaczka
Moderacja (uprawnienie dla użytkownika) wpisów w bazie znaczków
Backup bazy danych
FHD - Diagram hierarchii funkcji
Budowa i analiza diagramu przepływu danych
Diagram kontekstowy
Diagram główny
1.Obsługa użytkownika niezarejestrowanego
2.Obsługa użytkownika zarejestrowanego
3.Obsługa administratora
Diagram STD - State Transition Diagram
Diagram przejść stanów systemu:
Projektowanie tabel
CREATE TABLE IF NOT EXISTS `admin` (
`admin_name` VARCHAR(20) CHARACTER SET utf8 NOT NULL,
`admin_pass` VARCHAR(32) CHARACTER SET utf8 NOT NULL,
`admin_email` VARCHAR(60) CHARACTER SET utf8 NOT NULL
) ENGINE=MyISAM DEFAULT CHARSET=utf8 COLLATE=utf8_bin;
CREATE TABLE IF NOT EXISTS `users` (
`user_name` VARCHAR(20) CHARACTER SET utf8 NOT NULL,
`user_pass` VARCHAR(32) CHARACTER SET utf8 NOT NULL,
`user_email` VARCHAR(60) CHARACTER SET utf8 NOT NULL
) ENGINE=MyISAM DEFAULT CHARSET=utf8 COLLATE=utf8_bin;
CREATE TABLE IF NOT EXISTS `users_not_confirmed` (
`users_not_confirmed_name` VARCHAR(20) NOT NULL,
`users_not_confirmed_pass` VARCHAR(32) NOT NULL,
`users_not_confirmed_email` VARCHAR(60) NOT NULL
) ENGINE=MyISAM DEFAULT CHARSET=utf8;
CREATE TABLE IF NOT EXISTS `main_page_info` (
`main_page_info_title` VARCHAR(30) CHARACTER SET utf8 NOT NULL,
`main_page_info_msg` VARCHAR(2048) CHARACTER SET utf8 NOT NULL,
`main_page_info_user` VARCHAR(20) CHARACTER SET utf8 NOT NULL,
`main_page_info_date` DATE NOT NULL,
`main_page_info_time` TIME NOT NULL
) ENGINE=MyISAM DEFAULT CHARSET=utf8 COLLATE=utf8_bin;
CREATE TABLE IF NOT EXISTS `poststamps` (
`poststamp_id` INT(4) NOT NULL,
`poststamp_title` VARCHAR(256) CHARACTER SET utf8 NOT NULL,
`poststamp_price` FLOAT NOT NULL,
`poststamp_print_tech` VARCHAR(32) CHARACTER SET utf8 NOT NULL,
`poststamp_tooth` VARCHAR(11) CHARACTER SET utf8 NOT NULL,
`poststamp_color` VARCHAR(32) CHARACTER SET utf8 NOT NULL,
`poststamp_amount` INT(10) NOT NULL,
`poststamp_release` DATE NOT NULL,
`poststamp_additional` VARCHAR(2048) CHARACTER SET utf8 NOT NULL,
`poststamp_user` VARCHAR(20) CHARACTER SET utf8 NOT NULL,
`poststamp_date` DATE NOT NULL,
`poststamp_time` TIME NOT NULL,
`poststamp_checked` tinyint(1) NOT NULL
) ENGINE=MyISAM DEFAULT CHARSET=utf8 COLLATE=utf8_bin;
CREATE TABLE IF NOT EXISTS `stamps_comments` (
`stamp_comment_title` VARCHAR(30) NOT NULL,
`stamp_comment_stampid` INT(4) NOT NULL,
`stamp_comment_user` VARCHAR(20) NOT NULL,
`stamp_comment_date` DATE NOT NULL,
`stamp_comment_time` TIME NOT NULL,
`stamp_comment_msg` VARCHAR(8192) NOT NULL
) ENGINE=MyISAM DEFAULT CHARSET=utf8;
Normalizacja tabel
Wydaje się, że baza danych spełnia założenia 3NF.
Relacja jest w pierwszej postaci normalnej, jeśli wartości atrybutów są elementarne (atomowe, niepodzielne) - są to pojedyncze wartości określonego typu, a nie zbiory wartości. Tabela reprezentująca tę relację nie zawiera powtarzających się grup informacji. Każda kolumna jest wartością skalarną (atomową), a nie macierzą lub listą czy też czymkolwiek, co posiada własną strukturę.
Relacja jest w drugiej postaci normalnej wtedy i tylko wtedy gdy jest w I postaci normalnej i każda kolumna zależy funkcyjnie od całego klucza głównego (a nie np. od części klucza).
Mamy z nią do czynienia wtedy i tylko wtedy, gdy tabela jest w 2NF oraz gdy wszystkie pola nie będące polami klucza głównego są od niego zależne bezpośrednio.
Diagram ERD oraz wybór encji i ich atrybutów
Projektowanie operacji na danych
Literatura
-
-
William Kent, „A Simple Guide to Five Normal Forms in Relational Database Theory”, Communications of the ACM 26(2), Feb. 1983, 120-125.