Both sides previous revision
Poprzednia wersja
Nowa wersja
|
Poprzednia wersja
|
pl:dydaktyka:ztb:2010:projekty:pdon:start [2010/07/02 09:46] ztb2010 usunięto |
pl:dydaktyka:ztb:2010:projekty:pdon:start [2019/06/27 15:50] (aktualna) |
* http://postgis.refractions.net/ | ==== Sformułowanie zadania projektowego: ==== |
* http://www.spatial.cs.umn.edu/Book/labs/vania/spatialQueries.html | |
| Celem projektu jest niesienie pomocy osobom niepełnosprawnym. Osoby takie bardzo |
| często z uwagi na swoje ograniczone możliwości, są pozbawione przyjemności |
| uczestnictwa w wielu dziedzinach życia. Naszym zadaniem, a właściwie obowiązkiem |
| wobec takich osób, jest możliwe udostępnienie pomocnych narzędzi, aby takie osoby nie czuły |
| się ograniczone w żaden dodatkowy sposób. |
| |
| Z racji rozwijających się w ogromnym tempie możliwości jakie dają media (szczególnie |
| Internet), postanowiliśmy stworzyć kompleksowy serwis, który byłby pomocny w |
| korzystaniu z tego medium. W serwisie będą znajdowały się zarówno narzędzia jak i |
| wszelkie potrzebne informacje na ich temat. |
| |
| Stwarzałby on nieograniczone możliwości dla producentów sprzętu rehabilitacyjnego, |
| lekarzy i klinik, które mogłyby na jego łamach przedstawiać najnowsze możliwości leczenia lub niwelowania ograniczeń swoich pacjentów. |
| Będzie to jedyne miejsce, gdzie osoby niepełnosprawne będą mogły wymieniać się |
| uwagami oraz spostrzeżeniami na wiele tematów ze swojego życia. |
| |
| ==== Analiza stanu wyjściowego ==== |
| |
| W chwili obecnej w sieci można znaleźć podobne rozwiązania, jednak są one |
| stworzone bardzo prowizorycznie, a ich funkcjonalność jest bardzo ograniczona. Każdy |
| z takich serwisów, przedstawia jedynie fragment możliwości naszego serwisu, na |
| przykład oferuje wybrane narzędzia pomocy niepełnosprawnym. |
| Dużo, z obecnie działających rozwiązań ma charakter dodatku do bardziej |
| rozbudowanych serwisów nie traktujących o tematyce naszego projektu (udostępnianie |
| programów dla niepełnosprawnych w serwisie, który oferuje wszelkie rodzaje |
| dostępnych programów). |
| |
| Nasz serwis byłby kompleksowym rozwiązaniem i pewnym miejscem, gdzie ludzie |
| dotknięci przez swoje ograniczenia mogliby udać się w poszukiwaniu pomocy. |
| W trakcie rozwoju serwisu, umożliwiłoby to zostanie liderem w tej tematyce i dalszą |
| promocję. Niniejszym stałby się popularny i pomocny w popularyzowaniu szczególnych |
| rozwiązań. To z pewnością przyczyniłoby się do wykorzystania wyznaczonego miejsca |
| w serwisie na płatną promocję produktów oferowanych przez jego sponsorów. |
| |
| |
| ==== Analiza wymagań użytkownika ==== |
| |
| * możliwość rejestracji i logowanie |
| * przeglądanie i korzystanie ze zbiorów artykułów i narzędzi |
| * dodawanie i edycja artykułów i narzędzi przez zarejestrowanych uzytkowników |
| * dodawanie komentarzy przez zarejestrowanych użytkowników |
| * przeglądanie forum |
| * dodawanie działów i tematów na forum przez zarejestrowanych użytkowników |
| * dodawanie postów przez zarejestrowanych uzytkowników |
| ===== Określenie scenariuszy użycia===== |
| |
| - Jako niezalogowany użytkownik serwisu, chcę założyć nowe konto, aby móc się zalogować do serwisu. |
| - Jako użytkownik serwisu, chcę przejść na listę dostępnych artykułów w wybranej kategorii, aby móc przeczytać wybrany z nich. |
| - Jako użytkownik serwisu, chcę przejść na stronę wyszukiwarki, aby odnaleźć interesujące mnie informacje. |
| - Jako zalogowany użytkownik serwisu, chcę zmienić swoje dane personalne, aby zaktualizować swoje dane osobowe w związku ze zmianą miejsca zamieszkania. |
| - Jako zalogowany użytkownik serwisu, chcę wejść na forum dyskusyjne, aby rozpocząć nowy temat dyskusji. |
| - Jako użytkownik serwisu, chcę zobaczyć listę dostępnych narzędzi wspomagania pracy z komputerem dla osób niepełnosprawnych, aby ściągnąć i zainstalować wybrany program, który najlepiej spełnia moje oczekiwania. |
| - Jako zalogowany użytkownik serwisu, chcę wysłać wiadomość do innego użytkownika serwisu, aby uzyskać dodatkowe informacje. |
| - Jako zalogowany użytkownik serwisu, chcę skomentować czytany przeze mnie artykuł, aby podzielić się swoim zdaniem i dodać kolejne informacje. |
| - Jako administrator serwisu, chcę wejść na stronę serwisu, i usuwam reklamy i zbędne komentarze pozostawione przez roboty spamujące aby zachować przejrzystość serwisu. |
| - Jako zalogowany użytkownik, chcę zgłasosić propozycję dodania do zasobów portalu nowego programu, bądź propozycji programu, aby pomóc innym użytkownikom. |
| - Jako pracownik instytucji trzecich, chcę odnaleźć osoby potrzebujące, aby popularyzować swoją organizację charytatywną wśród grupy docelowej. |
| =====Identyfikacja funkcji ===== |
| |
| Funkcje dla administratora: |
| |
| * Logowanie jako administrator |
| * Modyfikowanie strony głównej |
| * Modyfikowanie profilu użytkownika |
| * Modyfikowanie strony Artykułu |
| * Modyfikowanie strony Programu |
| * Usuwanie artykułów |
| * Usuwanie programów |
| * Moderacja forum |
| * Zakładanie nowych działów forum |
| |
| Funkcje dla użytkownika: |
| * Logowanie jako użytkownik |
| * Rejestracja użytkownika |
| * Komentowanie artykułów |
| * Komentowanie programów |
| * Tworzenie nowych tematów na forum |
| * Publikowanie nowych opisów programu |
| * Publikowanie nowych Artykułów |
| |
| |
| ===== Analiza hierarchii funkcji projektowanej aplikacji ===== |
| |
| |
| {{:pl:dydaktyka:ztb:2010:projekty:pdon:analiza_hierarchii.png?640|}} |
| |
| |
| |
| |
| ===== Budowa i analiza diagramu przepływu danych ===== |
| |
| Wybór encji (obiektów) i ich atrybutów |
| |
| <code> |
| Role |
| id integer |
| name string |
| authorizable_type string |
| authorizable_id integer |
| created_at datetime |
| updated_at datetime |
| |
| Program |
| id integer |
| name string |
| platform string |
| summary text |
| content text |
| tags string |
| author_id integer |
| creator string |
| created_at datetime |
| updated_at datetime |
| href string |
| download_href string |
| |
| Article |
| id integer |
| name string |
| content text |
| author_id integer |
| created_at datetime |
| updated_at datetime |
| summary text |
| type string |
| slug string |
| Page |
| id integer |
| name string |
| content text |
| author_id integer |
| created_at datetime |
| updated_at datetime |
| summary text |
| type string |
| slug string |
| |
| User |
| id integer |
| email string |
| activity_id integer |
| fullname string |
| nick string |
| crypted_password string |
| password salt string |
| persistance_token string |
| single_access_token string |
| persihable_token string |
| login_count integer |
| failed_login_count integer |
| last_request at datetime |
| current_login_at datetime |
| last_login_at datetime |
| created_at datetime |
| updated_at datetime |
| is_admin boolean |
| |
| RoleUser |
| id integer |
| role_id integer |
| user_id integer |
| state string |
| created_at datetime |
| updated_at datetime |
| |
| DiggedSiteDigg |
| id integer |
| user_id integer |
| digged_site_id integer |
| created_at datetime |
| updated_at datetime |
| |
| InternalMessage |
| id integer |
| sender_id integer |
| receiver_id integer |
| subject string |
| parent_id integer |
| content text |
| xreated_at datetime |
| updated_at datetime |
| |
| ForumSection |
| id integer |
| name string |
| description text |
| created_at datetime |
| updated_at datetime |
| |
| Comment |
| id integer |
| author_id integer |
| content string |
| commentable_types string |
| commentable_id string |
| created_at datetime |
| updated_at datetime |
| |
| DiggedSite |
| id integer |
| author_id integer |
| href string |
| comment text |
| state string |
| click_count integer |
| created_at datetime |
| updated_at datetime |
| |
| ForumPost |
| id integer |
| subject_id integer |
| author_id integer |
| content text |
| type string |
| created_at datetime |
| updated_at datetime |
| name string |
| forum_section_id integer |
| |
| ForumTopic |
| id integer |
| subject_id integer |
| author_id integer |
| content text |
| type string |
| created_at datetime |
| updated_at datetime |
| name string |
| forum_section_id integer |
| |
| </code> |
| |
| ===== Projektowanie powiązań (relacji) pomiędzy encjami ===== |
| |
| {{:pl:dydaktyka:ztb:2010:projekty:pdon:graf_bazy.png?640|}}=====Projekt diagramów STD ===== |
| |
| **Diagram obsługi Artykułów (diagram dla Narzędzi jest analogiczny):** |
| |
| {{:pl:dydaktyka:ztb:2010:projekty:pdon:std1.png?640|}} |
| |
| |
| **Diagram obsługi forum:** |
| |
| {{:pl:dydaktyka:ztb:2010:projekty:pdon:std2.png?640|}} |
| |
| |
| |
| |
| |
| |
| **Projektowanie tabel, kluczy, kluczy obcych, powiązań między tabelami, indeksów, etc. w oparciu o zdefiniowany diagram ER** |
| |
| <code sql> |
| |
| -- |
| -- Table structure for table 'comments' |
| -- |
| |
| CREATE TABLE IF NOT EXISTS 'comments' ( |
| 'id' int(11) NOT NULL auto_increment, |
| 'author_id' int(11) default NULL, |
| 'content' varchar(255) collate utf8_unicode_ci default NULL, |
| 'commentable_type' varchar(255) collate utf8_unicode_ci default NULL, |
| 'commentable_id' int(11) default NULL, |
| 'created_at' datetime default NULL, |
| 'updated_at' datetime default NULL, |
| PRIMARY KEY ('id') |
| ) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci AUTO_INCREMENT=10 ; |
| |
| -- -------------------------------------------------------- |
| |
| -- |
| -- Table structure for table 'digged_sites' |
| -- |
| |
| CREATE TABLE IF NOT EXISTS 'digged_sites' ( |
| 'id' int(11) NOT NULL auto_increment, |
| 'author_id' int(11) default NULL, |
| 'href' varchar(255) collate utf8_unicode_ci default NULL, |
| 'comment' text collate utf8_unicode_ci, |
| 'state' varchar(255) collate utf8_unicode_ci default NULL, |
| 'click_count' int(11) default NULL, |
| 'created_at' datetime default NULL, |
| 'updated_at' datetime default NULL, |
| PRIMARY KEY ('id') |
| ) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci AUTO_INCREMENT=1 ; |
| |
| |
| -- -------------------------------------------------------- |
| |
| -- |
| -- Table structure for table 'digged_site_diggs' |
| -- |
| |
| CREATE TABLE IF NOT EXISTS 'digged_site_diggs' ( |
| 'id' int(11) NOT NULL auto_increment, |
| 'user_id' int(11) default NULL, |
| 'digged_site_id' int(11) default NULL, |
| 'created_at' datetime default NULL, |
| 'updated_at' datetime default NULL, |
| PRIMARY KEY ('id') |
| ) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci AUTO_INCREMENT=1 ; |
| |
| |
| -- -------------------------------------------------------- |
| |
| -- |
| -- Table structure for table 'forum_posts' |
| -- |
| |
| CREATE TABLE IF NOT EXISTS 'forum_posts' ( |
| 'id' int(11) NOT NULL auto_increment, |
| 'subject_id' int(11) default NULL, |
| 'author_id' int(11) default NULL, |
| 'content' text collate utf8_unicode_ci, |
| 'type' varchar(255) collate utf8_unicode_ci default NULL, |
| 'created_at' datetime default NULL, |
| 'updated_at' datetime default NULL, |
| 'name' varchar(255) collate utf8_unicode_ci default NULL, |
| 'forum_section_id' int(11) default NULL, |
| PRIMARY KEY ('id') |
| ) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci AUTO_INCREMENT=10 ; |
| |
| |
| -- -------------------------------------------------------- |
| |
| -- |
| -- Table structure for table 'forum_sections' |
| -- |
| |
| CREATE TABLE IF NOT EXISTS 'forum_sections' ( |
| 'id' int(11) NOT NULL auto_increment, |
| 'name' varchar(255) collate utf8_unicode_ci default NULL, |
| 'description' text collate utf8_unicode_ci, |
| 'created_at' datetime default NULL, |
| 'updated_at' datetime default NULL, |
| PRIMARY KEY ('id') |
| ) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci AUTO_INCREMENT=3 ; |
| |
| |
| -- -------------------------------------------------------- |
| |
| -- |
| -- Table structure for table 'forum_topics' |
| -- |
| |
| CREATE TABLE IF NOT EXISTS 'forum_topics' ( |
| 'id' int(11) NOT NULL auto_increment, |
| 'subject_id' int(11) default NULL, |
| 'author_id' int(11) default NULL, |
| 'content' text collate utf8_unicode_ci, |
| 'type' varchar(255) collate utf8_unicode_ci default NULL, |
| 'created_at' datetime default NULL, |
| 'updated_at' datetime default NULL, |
| PRIMARY KEY ('id') |
| ) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci AUTO_INCREMENT=1 ; |
| |
| |
| -- -------------------------------------------------------- |
| |
| -- |
| -- Table structure for table 'internal_messages' |
| -- |
| |
| CREATE TABLE IF NOT EXISTS 'internal_messages' ( |
| 'id' int(11) NOT NULL auto_increment, |
| 'sender_id' int(11) default NULL, |
| 'receiver_id' int(11) default NULL, |
| 'subject' varchar(255) collate utf8_unicode_ci default NULL, |
| 'parent_id' int(11) default NULL, |
| 'content' text collate utf8_unicode_ci, |
| 'created_at' datetime default NULL, |
| 'updated_at' datetime default NULL, |
| PRIMARY KEY ('id') |
| ) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci AUTO_INCREMENT=1 ; |
| |
| |
| -- -------------------------------------------------------- |
| |
| -- |
| -- Table structure for table 'pages' |
| -- |
| |
| CREATE TABLE IF NOT EXISTS 'pages' ( |
| 'id' int(11) NOT NULL auto_increment, |
| 'name' varchar(255) collate utf8_unicode_ci default NULL, |
| 'content' text collate utf8_unicode_ci, |
| 'author_id' int(11) default NULL, |
| 'created_at' datetime default NULL, |
| 'updated_at' datetime default NULL, |
| 'summary' text collate utf8_unicode_ci, |
| 'type' varchar(255) collate utf8_unicode_ci NOT NULL default 'Page', |
| 'slug' varchar(255) collate utf8_unicode_ci default NULL, |
| PRIMARY KEY ('id') |
| ) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci AUTO_INCREMENT=13 ; |
| |
| |
| -- -------------------------------------------------------- |
| |
| -- |
| -- Table structure for table 'programs' |
| -- |
| |
| CREATE TABLE IF NOT EXISTS 'programs' ( |
| 'id' int(11) NOT NULL auto_increment, |
| 'name' varchar(255) collate utf8_unicode_ci default NULL, |
| 'platform' varchar(255) collate utf8_unicode_ci default NULL, |
| 'summary' text collate utf8_unicode_ci, |
| 'content' text collate utf8_unicode_ci, |
| 'tags' varchar(255) collate utf8_unicode_ci default NULL, |
| 'author_id' int(11) default NULL, |
| 'creator' varchar(255) collate utf8_unicode_ci default NULL, |
| 'created_at' datetime default NULL, |
| 'updated_at' datetime default NULL, |
| 'href' varchar(255) collate utf8_unicode_ci default NULL, |
| 'download_href' varchar(255) collate utf8_unicode_ci default NULL, |
| PRIMARY KEY ('id') |
| ) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci AUTO_INCREMENT=5 ; |
| |
| |
| -- -------------------------------------------------------- |
| |
| -- |
| -- Table structure for table 'roles' |
| -- |
| |
| CREATE TABLE IF NOT EXISTS 'roles' ( |
| 'id' int(11) NOT NULL auto_increment, |
| 'name' varchar(255) collate utf8_unicode_ci default NULL, |
| 'authorizable_type' varchar(255) collate utf8_unicode_ci default NULL, |
| 'authorizable_id' int(11) default NULL, |
| 'created_at' datetime default NULL, |
| 'updated_at' datetime default NULL, |
| PRIMARY KEY ('id') |
| ) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci AUTO_INCREMENT=1 ; |
| |
| |
| -- -------------------------------------------------------- |
| |
| -- |
| -- Table structure for table 'role_users' |
| -- |
| |
| CREATE TABLE IF NOT EXISTS 'role_users' ( |
| 'id' int(11) NOT NULL auto_increment, |
| 'role_id' int(11) default NULL, |
| 'user_id' int(11) default NULL, |
| 'state' varchar(255) collate utf8_unicode_ci default NULL, |
| 'created_at' datetime default NULL, |
| 'updated_at' datetime default NULL, |
| PRIMARY KEY ('id') |
| ) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci AUTO_INCREMENT=1 ; |
| |
| |
| -- -------------------------------------------------------- |
| |
| -- |
| -- Table structure for table 'schema_migrations' |
| -- |
| |
| CREATE TABLE IF NOT EXISTS 'schema_migrations' ( |
| 'version' varchar(255) collate utf8_unicode_ci NOT NULL, |
| UNIQUE KEY 'unique_schema_migrations' ('version') |
| ) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci; |
| |
| |
| -- -------------------------------------------------------- |
| |
| -- |
| -- Table structure for table 'sessions' |
| -- |
| |
| CREATE TABLE IF NOT EXISTS 'sessions' ( |
| 'id' int(11) NOT NULL auto_increment, |
| 'session_id' varchar(255) collate utf8_unicode_ci NOT NULL, |
| 'data' text collate utf8_unicode_ci, |
| 'created_at' datetime default NULL, |
| 'updated_at' datetime default NULL, |
| PRIMARY KEY ('id'), |
| KEY 'index_sessions_on_session_id' ('session_id'), |
| KEY 'index_sessions_on_updated_at' ('updated_at') |
| ) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci AUTO_INCREMENT=20 ; |
| |
| |
| -- -------------------------------------------------------- |
| |
| -- |
| -- Table structure for table 'users' |
| -- |
| |
| CREATE TABLE IF NOT EXISTS 'users' ( |
| 'id' int(11) NOT NULL auto_increment, |
| 'email' varchar(255) collate utf8_unicode_ci NOT NULL, |
| 'activity_id' int(11) default '0', |
| 'fullname' varchar(255) collate utf8_unicode_ci default NULL, |
| 'nick' varchar(255) collate utf8_unicode_ci default NULL, |
| 'crypted_password' varchar(255) collate utf8_unicode_ci NOT NULL, |
| 'password_salt' varchar(255) collate utf8_unicode_ci NOT NULL, |
| 'persistence_token' varchar(255) collate utf8_unicode_ci NOT NULL, |
| 'single_access_token' varchar(255) collate utf8_unicode_ci NOT NULL, |
| 'perishable_token' varchar(255) collate utf8_unicode_ci NOT NULL, |
| 'login_count' int(11) NOT NULL default '0', |
| 'failed_login_count' int(11) NOT NULL default '0', |
| 'last_request_at' datetime default NULL, |
| 'current_login_at' datetime default NULL, |
| 'last_login_at' datetime default NULL, |
| 'current_login_ip' varchar(255) collate utf8_unicode_ci default NULL, |
| 'last_login_ip' varchar(255) collate utf8_unicode_ci default NULL, |
| 'created_at' datetime default NULL, |
| 'updated_at' datetime default NULL, |
| 'is_admin' tinyint(1) default '0', |
| PRIMARY KEY ('id') |
| ) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci AUTO_INCREMENT=2 ; |
| |
| |
| |
| </code> |
| |
| |
| ===== Projektowanie operacji na danych===== |
| Operacje na danych realizowane są przy użyciu frameworka do mapowania obiektowo-relacyjnego dla języka Ruby - ActiveRecord. Dzięki temu, operacje na danych są ekstremalnie proste, np. |
| |
| <code ruby> |
| @resource = User.find(1) # wyszukiwanie po id |
| @resource = Article.find_by_slug('Home') # wyszukiwanie po nazwie zawartej w adresie |
| @resources = Article.all(:limit => 10, :offset => 10) |
| # wyszukanie 10 rekordów z przesunięciem o 10 |
| @resource = User.create(params[:user]) # tworzenie rekordu |
| @resource = User.find(1).destroy # usuwanie rekordu |
| </code> |
| |
| Dodatkowo, dzięki wykorzystaniu biblioteki warstwy kontrolera InheritedResources, wyeliminowana została konieczność definiowania akcji użytkownika explicite. Zamiast tego, generowany jest zestaw metod: |
| |
| <code ruby> |
| new |
| index |
| show(id) |
| edit(id) |
| create(id) |
| update(id) |
| destroy(id) |
| </code> |
| |
| Metody te same w sobie zawierają kod, który umożliwia operacje na danych. Na przykład, metoda create będzie miała następujący kształt, pomimo tego, że w kodzie kontrolera sie nie pojawi: |
| |
| <code ruby> |
| def create |
| @resource = RESOURCE_CLASS.new(params[RESOURCE_NAME]) |
| # utworzenie rekordu aktywnego o zadanych parametrach |
| if @resource.save # zapis do bazy danych |
| # wyrenderuj widok poprawny |
| else |
| # wyrenderuj stronę błędu |
| end |
| end |
| </code> |
| |
| gdzie: |
| |
| * RESOURCE_CLASS to klasa warstwy modelu związana z danym kotrnolerem, np. Article |
| * RESOURCE_NAME to nazwa zasobu używana do przekazywana parametru, np. article |
| |
| ===== Implementacja bazy danych ===== |
| |
| Baza danych została zaimplementowana na silniku mySQL w wersji 5.1. Do jej obsługi używana jest biblioteka ActiveRecord w wersji 3.0.0.beta4, będąca standardowym mechanizmem frameworku Ruby on Rails 3. |
| |
| * mysql: 5.0.75-0ubuntu10.5 |
| * rubygems 1.3.6 |
| * Ruby on Rails 3 beta 4 |
| |
| oraz gemy: |
| |
| * abstract (1.0.0) - tworzenie metod abstrakcyjnych w Ruby |
| * actionmailer (3.0.0.beta4) - zależność dla Ruby on Rails, wysyłanie wiadomości e-mail |
| * actionpack (3.0.0.beta4) - zależność dla Ruby on Rails, rozszerzenia Ruby |
| * activemodel (3.0.0.beta4) - zależność dla Ruby on Rails, metaklasa silnika ORM (odpowiednik interfejsu) |
| * activerecord (3.0.0.beta4) - zależność dla Ruby on Rails, silnik ORM |
| * activeresource (3.0.0.beta4) - zależność dla Ruby on Rails, klient REST |
| * activesupport (3.0.0.beta4) - zależność dla Ruby on Rails, rozszerzenia Ruby |
| * arel (0.4.0) - zależność dla Ruby on Rails |
| * authlogic (2.1.3 a087ad) - obsługa autentykacji użytkowników |
| * builder (2.1.2) - zależność dla języka Markup |
| * bundler (0.9.26) - tworzenie "paczek" gemów (środowisko gemów konfigurowalne na poziomie aplikacji, a nie systemu) |
| * dispatcher (0.0.1) - middleware do komunikacji Ruby<->serwer www |
| * erubis (2.6.6) - język szablonów |
| * formtastic (1.0.0.beta 0c0a9e) - łatwy sposób tworzenia semnatycznych formularzy |
| * haml (3.1.0 9340ac) - język szablonów |
| * has_scope (0.5.0 0a8c58) - rozszerzenie warstwy kontrolera |
| * i18n (0.4.1) - internacjonalizacja aplikacji |
| * inherited_resources (1.1.2) - rozszerzenie warstwy kontrolera |
| * mail (2.2.5) - transport e-maili |
| * mime-types (1.16) - definiuje typy plików |
| * polish (0.0.4 8cfbb3) - polskie tłumaczenie komunikatów aplikacji |
| * polyglot (0.3.1) - tłumaczenia aplikacji |
| * rack (1.1.0) - interfejs dla serwera www |
| * rack-mount (0.6.6) - interfejs dla serwera www |
| * rack-test (0.5.4) - interfejs dla serwera www |
| * rails (3.0.0.beta4) - framework |
| * railties (3.0.0.beta4) - rozszerzenia Ruby |
| * rake (0.8.7) - odpowiednik make/Makefile w środowisku Ruby |
| * responders (0.6.1 3af189) - dostęp do danych aplikacji w różnych formatach |
| * thor (0.13.7) - interfejs dla serwera www |
| * treetop (1.4.8) - język dziedzinowy do parsowania tekstu |
| * tzinfo (0.3.22) - rozszerzenia mechanizmów związanych z obsługa dat |
| * will_paginate (3.0.pre 60aa1c) - paginacja na warstwie widoku i kontrolera |
| |
| ===== Zdefiniowanie interfejsów do prezentacji, edycji i obsługi danych ===== |
| |
| **Rejestracja uzytkownika:** |
| |
| {{:pl:dydaktyka:ztb:2010:projekty:pdon:gui1.png?640|}} |
| |
| **Logowanie użytkownika:** |
| |
| {{:pl:dydaktyka:ztb:2010:projekty:pdon:gui2.png?640|}} |
| |
| **Dodanie/modyfikacja artykułu:** |
| |
| {{:pl:dydaktyka:ztb:2010:projekty:pdon:gui3.png?640|}} |
| |
| **Dodanie/modyfikacja programu:** |
| |
| {{:pl:dydaktyka:ztb:2010:projekty:pdon:gui4.png?640|}} |
| |
| **Dodanie komentarza:** |
| |
| {{:pl:dydaktyka:ztb:2010:projekty:pdon:gui5.png?640|}} |
| |
| **Utworzenie nowego działu na forum:** |
| |
| {{:pl:dydaktyka:ztb:2010:projekty:pdon:gui6.png?640|}} |
| |
| **Utworzenie nowego tematu na forum:** |
| |
| {{:pl:dydaktyka:ztb:2010:projekty:pdon:gui7.png?640|}} |