Both sides previous revision
Poprzednia wersja
Nowa wersja
|
Poprzednia wersja
Nowa wersja
Both sides next revision
|
pl:dydaktyka:ztb:2010:projekty:znaczki:start [2010/06/27 16:41] ztb2010 |
pl:dydaktyka:ztb:2010:projekty:znaczki:start [2010/07/02 11:49] ztb2010 |
| |
===== Sforumułowanie zadania projektowego ===== | ===== 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 ===== | ===== Analiza stanu wejściowego ===== |
| |
| W polskim internecie istnieje niewiele rozwiązań dedykowanych filatelistom. Najbardziej popularnym jest [[http://kzp.pl|Katalog znaczków pocztowych]] oraz serwis [[http://www.filatelistyka.org/|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 ===== | ===== 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 ===== | ===== 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 ** |
| |
| {{:pl:dydaktyka:ztb:2010:projekty:znaczki:use_case_diagam.png|}} |
| |
===== Identyfikacja funkcji ===== | ===== 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 ===== | ===== FHD - Diagram hierarchii funkcji ===== |
===== DFD - Diagram przepływu danych ===== | |
| {{:pl:dydaktyka:ztb:2010:projekty:znaczki:fhd.png|}} |
| |
| ===== Budowa i analiza diagramu przepływu danych ===== |
| |
| === Diagram kontekstowy === |
| |
| {{:pl:dydaktyka:ztb:2010:projekty:znaczki:diagram_kontekstowy.png|}} |
| |
| === Diagram główny === |
| |
| {{:pl:dydaktyka:ztb:2010:projekty:znaczki:diagram_glowny.png|}} |
| |
| == 1.Obsługa użytkownika niezarejestrowanego == |
| |
| {{:pl:dydaktyka:ztb:2010:projekty:znaczki:uzytkownik_niezarejestrowany_dfd.png|}} |
| |
| == 2.Obsługa użytkownika zarejestrowanego == |
| |
| {{:pl:dydaktyka:ztb:2010:projekty:znaczki:uzytkownik_zarejestrowany_dfd.png|}} |
| |
| == 3.Obsługa administratora == |
| |
| {{:pl:dydaktyka:ztb:2010:projekty:znaczki:administratror_dfd.png|}} |
===== Diagram STD - State Transition Diagram ===== | ===== Diagram STD - State Transition Diagram ===== |
| |
| Diagram przejść stanów systemu: |
| |
| {{:pl:dydaktyka:ztb:2010:projekty:znaczki:state_transistion_diagram.png|}} |
| |
===== Projektowanie tabel ===== | ===== Projektowanie tabel ===== |
| |
| <code sql> |
| 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; |
| </code> |
| |
===== Normalizacja tabel ===== | ===== Normalizacja tabel ===== |
===== Wybór Encji i ich atrybutów ===== | |
===== Diagram ERD ===== | Wydaje się, że baza danych spełnia założenia [[http://pl.wikipedia.org/wiki/Posta%C4%87_normalna_%28bazy_danych%29|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 ===== |
| |
| {{:pl:dydaktyka:ztb:2010:projekty:znaczki:erd_znaczki.png|ERD dla portalu o znaczkach}} |
| |
| ===== Projektowanie operacji na danych ===== |
| |
| <code sql> |
| |
| </code> |
===== Implementacja (screeny, platforma, interfejsy, uzytkowanie, przyszłośc) ===== | ===== Implementacja (screeny, platforma, interfejsy, uzytkowanie, przyszłośc) ===== |
| |
| * Strona główna |
| {{:pl:dydaktyka:ztb:2010:projekty:znaczki:znaczek_01.png?200}} |
| * Dodawanie informacji na stronie głównej |
| {{:pl:dydaktyka:ztb:2010:projekty:znaczki:znaczek_02.png?200}} |
| * Katalog znaczków - strona informacyjna |
| {{:pl:dydaktyka:ztb:2010:projekty:znaczki:znaczek_03.png?200}} |
| * Katalog znaczków - informacje o znaczku |
| {{:pl:dydaktyka:ztb:2010:projekty:znaczki:znaczek_04.png?200}} |
| * Katalog znaczków - dodawanie informacji o znaczku |
| {{:pl:dydaktyka:ztb:2010:projekty:znaczki:znaczek_05.png?200}} |
| |
===== Literatura ===== | ===== Literatura ===== |
| |
| * [[http://www.databaseanswers.org/data_models/|Database Answers]] |
| * [[http://pl.wikipedia.org/wiki/Posta%C4%87_normalna_%28bazy_danych%29|Postać normalna (Wikipedia)]] |
| * William Kent, "A Simple Guide to Five Normal Forms in Relational Database Theory", Communications of the ACM 26(2), Feb. 1983, 120-125. |