Różnice

Różnice między wybraną wersją a wersją aktualną.

Odnośnik do tego porównania

pl:dydaktyka:ztb:2010:projekty:pdon:start [2010/07/02 10:35]
ztb2010
pl:dydaktyka:ztb:2010:projekty:pdon:start [2019/06/27 15:50]
Linia 1: Linia 1:
-==== Sformułowanie zadania projektowego:​ ==== 
  
-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 ===== 
-TODO 
- 
-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 =====  
- 
- 
- 
-=====Projekt diagramów STD =====  
- 
-**Diagram obsługi Artykułów (diagram dla Narzędzi jest analogiczny):​** 
- 
- 
- 
- 
-**Diagram obsługi forum:** 
- 
- 
- 
- 
- 
- 
- 
- 
-**Projektowanie tabel, kluczy, kluczy obcych, powiązań między tabelami, indeksów, etc. w oparciu o zdefiniowany diagram ER** 
- 
-<code sql> 
-</​code>​ 
- 
- 
-===== Analiza zależności funkcyjnych i normalizacja tabel (dekompozycja do 3NF, BCNF, 4NF, 5NF)===== ​ 
-// TODO 
- 
-===== 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) 
-  * actionmailer (3.0.0.beta4) 
-  * actionpack (3.0.0.beta4) 
-  * activemodel (3.0.0.beta4) 
-  * activerecord (3.0.0.beta4) 
-  * activeresource (3.0.0.beta4) 
-  * activesupport (3.0.0.beta4) 
-  * arel (0.4.0) 
-  * authlogic (2.1.3 a087ad) 
-  * builder (2.1.2) 
-  * bundler (0.9.26) 
-  * dispatcher (0.0.1) 
-  * erubis (2.6.6) 
-  * formtastic (1.0.0.beta 0c0a9e) 
-  * haml (3.1.0 9340ac) 
-  * has_scope (0.5.0 0a8c58) 
-  * i18n (0.4.1) 
-  * inherited_resources (1.1.2) 
-  * mail (2.2.5) 
-  * mime-types (1.16) 
-  * polish (0.0.4 8cfbb3) 
-  * polyglot (0.3.1) 
-  * rack (1.1.0) 
-  * rack-mount (0.6.6) 
-  * rack-test (0.5.4) 
-  * rails (3.0.0.beta4) 
-  * railties (3.0.0.beta4) 
-  * rake (0.8.7) 
-  * responders (0.6.1 3af189) 
-  * thor (0.13.7) 
-  * treetop (1.4.8) 
-  * tzinfo (0.3.22) 
-  * will_paginate (3.0.pre 60aa1c) 
-  
-===== Zdefiniowanie interfejsów do prezentacji,​ edycji i obsługi danych ===== 
- 
-**Rejestracja uzytkownika:​** 
- 
- 
-**Logowanie użytkownika:​** 
- 
- 
-**Dodanie/​modyfikacja artykułu:​** 
- 
- 
-**Dodanie/​modyfikacja programu:** 
- 
- 
-**Dodanie komentarza:​** 
- 
- 
-**Utworzenie nowego działu na forum:** 
- 
- 
-**Utworzenie nowego tematu na forum:** 
pl/dydaktyka/ztb/2010/projekty/pdon/start.txt · ostatnio zmienione: 2019/06/27 15:50 (edycja zewnętrzna)
www.chimeric.de Valid CSS Driven by DokuWiki do yourself a favour and use a real browser - get firefox!! Recent changes RSS feed Valid XHTML 1.0