Spis treści

Psycholog online

Poniżej jest umieszczana automatycznie treść podstrony psycholog znajdującej się w namespace projektu. Proszę ją utworzyć i traktować jako stronę startową - tam umieszczamy linki do poszczególnych podstron, które też mają się znajdować w projekcie, np. analiza_wymagan. W namespace mogą też Państwo umieszczać pliki (obrazki, diagramy, archiwa) linkowane na stronie danego projektu. Proszę usunąć ten akapit po zapoznaniu się z jego treścią.

Źródło projektu:
psycholog_online.tar.gz

Projekt konceptualny

Sformułowanie zadania projektowego

Celem projektu jest stworzenie aplikacji pozwalającej na stały kontakt psychologa ze swoim pacjentem w przypadku gdy osobista wizyta jest utrudniona lub niemożliwa. Pokonując barierę lokalizacji pacjent uzyskuje możliwość leczenia się u najlepszego specjalisty. Uzyskuje także dostęp do lekarzy którzy nie przyjmują w najbliższej okolicy jego zamieszkania.

Pacjent dostaje dostęp do bazy danych lekarzy. Uzyskuje informację o ich specjalizacji oraz przebiegu ich kariery. Dzięki tym informacjom może podjąć najlepszą decyzję o zapisaniu się na leczenie do konkretnego lekarza. W prosty i intuicyjny sposób może poprosić o poradę, zadać pytanie czy umówić się na tradycyjne leczenie. Pacjent przez cały czas trwania procesu leczenia ma wgląd do historii korespondecji z danym lekarzem. W prosty sposób dostaje chronologiczną listę konkretnch pytań oraz porad specjalisty.

Lekarz przez cały proces leczenia ma dostęp do danych pacjentów którzy podjęli u niego leczenie. System wspomaga organizację całego procesu kuracji. Zapewnia dostęp do historii korespondencji z pacjentem. Co więcej lekarz uzyskuje możliwość prowadzenia historii przebiegu schorzenia danego pacjenta. Notatki które może dodawać to spostrzeżenie, próby diagnozy, oraz ogół informacji które w prostszy sposób pomogą podać trafniejszą diagnozę.

Analiza stanu wyjściowego

Poszukiwania serwisu internetowego, który odpowiadałby dokładnie mojej aplikacji nie przyniosły pożądanego skutku. Co prawda istnieją serwisy które świadczą podobne usługi tj. e-poradnia.online.synapsis.pl czy www.e-psychologowie.pl. Koncentrują się one jednak na stałej wewnętrznej bazie lekarzy i umożliwiają rejestrację jedynie pacjentom. Ogranicza to w ich przypadku stworzenie społeczności udzielającej się w serwisie. Dodatkową motywacją do angażowanie się w życie społecznosci dla lekarzy i pacjentów będzie forma reklamy na stronie. Najbardziej aktywni lekarze otrzymują reklamy swoich gabinetów na głównej stronie, podobnie jak użytkownicy którzy polecą aplikację największą ilość razy.

Analiza wymagań użytkownika

Admin

Logowanie
Przypominanie hasła
Edycja profilu - zmiana hasła
Lsitowanie wszystkich użytkowników, usunięcie

Proces leczenia (dostęp do kuracji wszytskich użytkowników):
Listowanie kuracji, edycja, usunięcie
Historia korespondencji
Przeglądanie pytań do psychologa - dodanie, edycja, usunięcie
Przeglądanie porad - dodanie, edycja, usunięcie

Historia schorzenia pacjenta(dostęp do kuracji wszytskich użytkowników):
Listowanie schorzeń, edycja, usunięcie
Schorzenie - dodanie, edycja, usunięcie
Notatki - dodanie, edycja, usunięcie

Specjalizacje - dodanie, edycja, usunięcie

Lekarz

Rejestracja
Logowanie
Przypominanie hasła
Edycja profilu - zmiana hasła
Wyświetlanie danych wszystkich lekarzy

Proces leczenia:
Listowanie kuracji
historia korespondencji
Odbieranie pytań od pacjenta
Porady dodanie, edycja, usunięcie

Historia schorzenia pacjenta:
Schorzenie - dodanie, edycja, usunięcie
Notatki - dodanie, edycja, usunięcie

Listowanie leczonych pacjentów

Pacjent

Rejestracja
Logowanie
Przypominanie hasła
Edycja profilu - zmiana hasła
Wyświetlanie danych wszystkich lekarzy
Zapisanie się na leczenie

Proces leczenia:
Listowanie kuracji, edycja, usunięcie
Listowanie historii korespondencji
Pytanie do psychologa dodanie, edycja, usunięcie
Przeglądanie porad

Listowanie lekarzy przypisanych do pacjenta

Określenie scenariuszy użycia

Pacjent Lekarz Admin

1. Rejestracja
Użytkownik klika „Sign up”
Pojawia się formularz
Uzupełnia dane i klika przycisk „Sign up”
Jeśli uzupełnił wszytsko prawidłowo to zostaje utworzone nowe konto a użytkownik zostaje przekierowany do głównej strony
Jeśli popełnił błąd zostaje wyświetlona informacja o błędzie

2. Logowanie
Użytkownik klika „Sign in”
Pojawia się formularz
Uzupełnia dane i klika przycisk „Sign in”
Jeśli uzupełnił wszytsko prawidłowo to zostaje zalogowany a następnie przekierowany do głównej strony
Jeśli popełnił błąd zostaje wyświetlona informacja o błędzie

3. Edycja profilu - zmiana hasła
Użytkownik klika „Edit profile”
Pojawia się formularz
Uzupełnia dane i klika przycisk „Update”
Jeśli uzupełnił wszytsko prawidłowo to zostaje zalogowany a następnie przekierowany do głównej strony
Jeśli popełnił błąd zostaje wyświetlona informacja o błędzie

4. Wyświetlanie danych wszystkich lekarzy
Użytkownik klika „List of doctors”
Pojawia się lista lekarzy (Name and Surname, Specialization)
Użytkownik klika „Show”
Pojawiają się dokładne informacje (Name and Surname, Specialization, CV)

Pacjent

1. Zapisanie się na leczenie
Użytkownik klika „Sign up for treatment”
Pojawia się lista lekarzy (Name and Surname)
Użytkownik wybiera lekarza i klika „Create Treatment”
Użytkownik zapisał się na leczenie a następnie przekierowany do strony pokazującej szczegóły leczenia

2. Listowanie kuracji, edycja, usunięcie
Użytkownik klika „Treatment process”
Pojawia się lista kuracji
Jeśli użytkownik kliknie Edit
Pojawia się formularz
Uzupełnia dane i klika przycisk „Update”
Jeśli uzupełnił wszytsko prawidłowo to zostaje zalogowany a następnie przekierowany do głównej strony
Jeśli popełnił błąd zostaje wyświetlona informacja o błędzie
Jeśli użytkownik kliknie Destroy
Pojawia się komunikat „Are you sure?”
Jeśli kliknie „Yes” kuracja zostanie usunięta w przeciwnym wypadku kuracja nie zostanie usunięta

3. Pytanie do psychologa dodanie, edycja, usunięcie

Użytkownik klika „Treatment process” a później „Correspondency”
Pojawia się historia korespondencji
Jeśli użytkownik kliknie „Edit”
Pojawia się formularz
Uzupełnia dane i klika przycisk „Update”
Jeśli uzupełnił wszytsko prawidłowo to zostaje zalogowany a następnie przekierowany do głównej strony
Jeśli popełnił błąd zostaje wyświetlona informacja o błędzie
Jeśli użytkownik kliknie „Destroy”
Pojawia się komunikat „Are you sure?”
Jeśli kliknie „Yes” kuracja zostanie usunięta w przeciwnym wypadku pytanie nie zostanie usunięte
Jeśli kliknie „New Question”
Pojawia się formularz
Uzupełnia dane i klika przycisk „Create”
Jeśli uzupełnił wszytsko prawidłowo to zostaje utworzone pytanie a następnie zostaje przekierowany do historii korespondencji
Jeśli popełnił błąd zostaje wyświetlona informacja o błędzie

4. Przeglądanie porad
Użytkownik klika „Treatment process” a później „Correspondency”
Pojawia się historia korespondencji
Użytkownik klika „Show”
Pojawiają się szczegóły porady

5. Listowanie lekarzy przypisanych do pacjenta\\ Użytkownik klika „List of my doctors”
Pojawia się lista lekarzy
Użytkownik klika „Show”
Pojawiają się szczegółowe dane o lekarzu

Lekarz

1. Listowanie kuracji
Użytkownik klika „Treatment process”
Pojawia się lista kuracji

2. Przeglądanie pytań od pacjenta
Użytkownik klika „Treatment process” a później „Correspondency”
Pojawia się historia korespondencji
Użytkownik klika „Show”
Pojawiają się szczegóły treści pytania

3. Porady - dodanie, edycja, usunięcie
Użytkownik klika „Treatment process” a później „Correspondency”
Pojawia się historia korespondencji
Jeśli użytkownik kliknie „Edit”
Pojawia się formularz
Uzupełnia dane i klika przycisk „Update”
Jeśli uzupełnił wszytsko prawidłowo to zostaje zalogowany a następnie przekierowany do głównej strony
Jeśli popełnił błąd zostaje wyświetlona informacja o błędzie
Jeśli użytkownik kliknie „Destroy”
Pojawia się komunikat „Are you sure?”
Jeśli kliknie „Yes” porada zostanie usunięta w przeciwnym wypadku porada nie zostanie usunięta
Jeśli kliknie „Give advice”
Pojawia się formularz
Uzupełnia dane i klika przycisk „Create Advice”
Jeśli uzupełnił wszystko prawidłowo to zostaje utworzone pytanie a następnie zostaje przekierowany do historii korespondencji
Jeśli popełnił błąd zostaje wyświetlona informacja o błędzie

4. Schorzenia - dodanie, edycja, usunięcie
Użytkownik klika „Treatment process” a później „History of diseases”
Pojawia się historia choroby
Jeśli użytkownik kliknie „Edit”
Pojawia się formularz
Uzupełnia dane i klika przycisk „Update”
Jeśli uzupełnił wszytsko prawidłowo to dane zostają zaktualizowane a następnie przekierowany do historii choroby
Jeśli popełnił błąd zostaje wyświetlona informacja o błędzie
Jeśli użytkownik kliknie „Destroy”
Pojawia się komunikat „Are you sure?”
Jeśli kliknie „Yes” schorzenie zostanie usunięte w przeciwnym wypadku schorzenie nie zostanie usunięte
Jeśli kliknie „New Disease”
Pojawia się formularz
Uzupełnia dane i klika przycisk „Create Disease”
Jeśli uzupełnił wszytsko prawidłowo to zostaje utworzone schozenie a następnie zostaje przekierowany do historii choroby
Jeśli popełnił błąd zostaje wyświetlona informacja o błędzie

6. Notatki - dodanie, edycja, usunięcie
Użytkownik klika „Treatment process” a później „History of diseases”
Pojawia się historia choroby
Jeśli użytkownik kliknie „Edit”
Pojawia się formularz
Uzupełnia dane i klika przycisk „Update”
Jeśli uzupełnił wszytsko prawidłowo to dane zostają zaktualizowane a następnie przekierowany do historii choroby
Jeśli popełnił błąd zostaje wyświetlona informacja o błędzie
Jeśli użytkownik kliknie „Destroy”
Pojawia się komunikat „Are you sure?”
Jeśli kliknie „Yes” notatka zostanie usunięta a w przeciwnym wypadku notatka nie zostanie usunięta
Jeśli kliknie „New Note”
Pojawia się formularz
Uzupełnia dane i klika przycisk „Create Note”
Jeśli uzupełnił wszytsko prawidłowo to zostaje utworzone schorzenie a następnie zostaje przekierowany do historii choroby
Jeśli popełnił błąd zostaje wyświetlona informacja o błędzie

7. Listowanie leczonych pacjentów
Użytkownik klika „List of my patients”
Pojawia się lista pacjentów
Użytkownik klika „Show”
Pojawiają się szczegółowe dane o pacjencie

8.Admin - dostęp do wszystkich funkcjonalności pacjenta i lekarza

1. Specjalizacje - dodanie, edycja, usunięcie
Użytkownik klika „Specialization management”
Jeśli użytkownik kliknie „Edit”
Pojawia się formularz
Uzupełnia dane i klika przycisk „Update”
Jeśli uzupełnił wszytsko prawidłowo to dane zostają zaktualizowane a następnie przekierowany do listy specjalizacji
Jeśli popełnił błąd zostaje wyświetlona informacja o błędzie
Jeśli użytkownik kliknie „Destroy”
Pojawia się komunikat „Are you sure?”
Jeśli kliknie „Yes” specjalizacja zostanie usunięta a w przeciwnym wypadku nie zostanie usunięta
Jeśli kliknie „New Specialization”
Pojawia się formularz
Uzupełnia dane i klika przycisk „Create Specjalization”
Jeśli uzupełnił wszytsko prawidłowo to zostaje utworzone schorzenie a następnie zostaje przekierowany do historii choroby
Jeśli popełnił błąd zostaje wyświetlona informacja o błędzie

Identyfikacja funkcji

Budowa i analiza diagramu przepływu danych.

Diagram kontekstowy
Diagram ogólny typu 0

DFD 1 History disease notes management

DFD 1 Correspondency management

DFD 1 User management

Wybór encji (obiektów) i ich atrybutów.

specializations
id
name

users
id
reset_password_token
encrypted_password
name
role
cv
specialization_id

advices
id
title
content
question_id

questions
id
title
content
treatment_id

treatments
id
user_id
doctor_id

notes
id
name
content
disease_id

diseases
id
name
content
treatment_id

ERD

Projekt diagramów STD

Projekt Logiczny

Projektowanie tabel, kluczy, kluczy obcych, powiązań między tabelami, indeksów, etc. Projekt bazy w języku SQL.

Projekt bazy danych w SQL

Database: `psycholog_development`

CREATE TABLE IF NOT EXISTS `advices` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`title` varchar(255) DEFAULT NULL,
`content` text NOT NULL,
`question_id` varchar(255) NOT NULL DEFAULT NULL,
PRIMARY KEY (`id`)
) ENGINE=InnoDB  DEFAULT CHARSET=latin1 AUTO_INCREMENT=19;
CREATE TABLE IF NOT EXISTS `diseases` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`name` varchar(255) NOT NULL DEFAULT NULL,
`content` text,
`treatment_id` int(11) NOT NULL DEFAULT NULL,
PRIMARY KEY (`id`)
) ENGINE=InnoDB  DEFAULT CHARSET=latin1 AUTO_INCREMENT=4;
CREATE TABLE IF NOT EXISTS `notes` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`name` varchar(255) NOT NULL DEFAULT NULL,
`content` text,
`disease_id` int(11) NOT NULL DEFAULT NULL,
PRIMARY KEY (`id`)
) ENGINE=InnoDB  DEFAULT CHARSET=latin1 AUTO_INCREMENT=7;
CREATE TABLE IF NOT EXISTS `questions` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`title` varchar(255) DEFAULT NULL,
`content` text NOT NULL,
`treatment_id` int(11) NOT NULL DEFAULT NULL,
PRIMARY KEY (`id`)
) ENGINE=InnoDB  DEFAULT CHARSET=latin1 AUTO_INCREMENT=17;
CREATE TABLE IF NOT EXISTS `specializations` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`name` varchar(255) NOT NULL DEFAULT NULL,
PRIMARY KEY (`id`)
) ENGINE=InnoDB  DEFAULT CHARSET=latin1 AUTO_INCREMENT=5;
CREATE TABLE IF NOT EXISTS `treatments` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`user_id` int(11) NOT NULL DEFAULT NULL,
`doctor_id` int(11) NOT NULL DEFAULT NULL,
PRIMARY KEY (`id`)
) ENGINE=InnoDB  DEFAULT CHARSET=latin1 AUTO_INCREMENT=13;
CREATE TABLE IF NOT EXISTS `users` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`email` varchar(255) NOT NULL DEFAULT '',
`encrypted_password` varchar(128) NOT NULL DEFAULT '',
`reset_password_token` varchar(255) NOT NULL DEFAULT NULL,
`name` varchar(255) NOT NULL DEFAULT NULL,
`role` varchar(255) NOT NULL DEFAULT NULL,
`cv` text,
`specialization_id` int(11) NOT NULL DEFAULT NULL,
PRIMARY KEY (`id`),
UNIQUE KEY `index_users_on_email` (`email`),
UNIQUE KEY `index_users_on_reset_password_token` (`reset_password_token`)
) ENGINE=InnoDB  DEFAULT CHARSET=latin1 AUTO_INCREMENT=11;

Słowniki danych

specializations
id, int(11), NOT NULL, identyfkator główny specjalizacji
name, varchar(255), NOT NULL, nazwa specjalizacji

users
id, int(11), NOT NULL, identyfkator główny użytkownika
reset_password_token, varchar(255), NOT NULL, token służacy do resetowania hasła
encrypted_password, varchar(255), NOT NULL, zakodowane hasło
name, varchar(255), NOT NULL, imię i nazwisko użytkownika
role, varchar(255), NOT NULL, nazwa roli użytkownika
cv, text, NULL, dane cv - lekarza lub dane użytkownika
specialization_id, int(11), NULL, klucz obcy specjalizacji

advices
id, int(11), NOT NULL, identyfkator główny porady
title, varchar(255), NULL, tytuł porady
content, text, NOT NULL, zawartość porady
question_id, int(11), NOT NULL, klucz obcy pytania

questions
id, int(11), NOT NULL, identyfkator główny pytania
title, varchar(255), NULL, tytuł pytania
content, text, NOT NULL, zawartość pytania
treatment_id, int(11), NOT NULL, klucz obcy leczenia

treatments
id, int(11), NOT NULL, identyfkator główny leczenia
user_id, int(11), NOT NULL, klucz obcy użytkownika
doctor_id, int(11), NOT NULL, klucz obcy lekarza

notes
id, int(11), NOT NULL , identyfkator główny notatki
name, varchar(255), NULL, tytuł notatki
content, text, NOT NULL, zawartość notatki
disease_id, int(11), NOT NULL, klucz obcy choroby

diseases
id, int(11), NOT NULL, identyfkator główny choroby
name, varchar(255), NOT NULL, nazwa choroby
content, text, NULL, informacje dodatkowe o chorobie pacjenta
treatment_id, int(11), NOT NULL, klucz obcy leczenia

Analiza zależności funkcyjnych i normalizacja tabel

Pierwsza postać normalna (1NF)

Baza danych spełnia poniższe wymagania:
opisuje jeden obiekt
wartości atrybutów są elementarne (atomowe, niepodzielne) - każda kolumna jest wartością skalarną
nie zawiera kolekcji (powtarzających się grup informacji)
posiada klucz główny

Rozpatrywana baza danych jest w pierwszej postaci normalnej.

Druga postać normalna (2NF)

Każda kolumna zależy funkcyjnie od całego klucza głównego (a nie np. od części klucza). Baza jest w drugiej postaci normalnej.

Trzecia postać normalna (3NF)

Wszystkie atrybuty tabel zależą w sposób bezpośredni od klucza głównego - nie ma relacji przechodnich. Baza jest w trzeciej postaci normalnej.

Projektowanie operacji na danych

logowanie

SELECT `users`.* FROM `users` WHERE `users`.`email` = 'd3@3.pl' LIMIT 1

szukanie użytkownika

SELECT `users`.* FROM `users` WHERE `users`.`id` = 3 LIMIT 1

aktualizacja danych użytkownika

UPDATE `users` SET `name` = 'doctor333', `encrypted_password` = '$2a$10$bExVABd0ft5x0sWRiI6.IuFDm9t3RfaVt5CXSPVwLO24ui9W0SRty'  WHERE `users`.`id` = 3

listowanie lekarzy

SELECT `users`.* FROM `users` WHERE (role = 'doctor')

listowanie procesów leczenia

SELECT `treatments`.* FROM `treatments` WHERE (`treatments`.doctor_id = 3)

listowanie pytań od pacjenta

SELECT `questions`.* FROM `questions` WHERE (`questions`.treatment_id = 2)

listowanie odpowiedzi dla danego pytania

SELECT `advices`.* FROM `advices` WHERE (`advices`.question_id = 6)

wysłanie odpowiedzi przez lekarza

INSERT INTO `advices` (`title`, `content`, `question_id`) VALUES ('rada', 'przykładowa odpowiedź ', 6)

usuwanie odpowiedzi

DELETE FROM `advices` WHERE `advices`.`id` = 9

aktualizacja odpowiedzi

UPDATE `advices` SET `question_id` = 6, `content` = 'odpowiedz' WHERE `advices`.`id` = 18

listowanie procesu leczenia, chorób i notatek

SELECT `treatments`.* FROM `treatments` WHERE `treatments`.`id` = 2 LIMIT 1
SELECT `diseases`.* FROM `diseases` WHERE (`diseases`.treatment_id = 2)
SELECT `notes`.* FROM `notes` WHERE (`notes`.disease_id = 3)

dodawanie nowej notki i choroby

INSERT INTO `notes` (`name`, `content`, `disease_id`) VALUES ('Note1', 'content of a note', 3)
INSERT INTO `diseases` (`name`, `content`, `treatment_id`) VALUES ('choroba 2', 'opis choroby', 2)

listowanie pajentów leczących się u danego lekarza

SELECT `treatments`.* FROM `treatments` WHERE (`treatments`.doctor_id = 3) 

Raport końcowy

Implementacja bazy danych

Implementacja bazy danych została utworzona w oparciu o diagramy erd i sql. Ponieważ aplikacja została napisana w technologii RubyonRails implementacja bazy danych aplikacji może przebiegać na 2 sposoby.

Pierwszy sposób to skorzystanie z mechanizmu ORM. modele w Rails reprezentowane są przez klasy dziedziczące po klasie bazowej ActiveRecord::Base. ActiveRecord jest mechanizmem ORM, tzn. przedstawia tabelaryczne dane z bazy danych w formie klas i obiektów. Tabeli w bazie danych odpowiada klasa dziedzicząca po ActiveRecord, kolumnom tabeli – właściwości(atrybuty) tej klasy, natomiast wartościom pól w bazie danych wartości atrybutów obiektów danej klasy.

Innym sposobem jest skorzystanie z projektu bazy danych w SQL zaprezentowany w projekcie logicznym.

Zdefiniowanie interfejsów do prezentacji, edycji i obsługi danych


Rejestracja


Lista lekarzy


Aktualizacja użytkownika


Lista procesów leczenia


Korespondencja, pytania i odpowiedzi


Historia Leczenia


Nowa rada


Zapisanie użytkownika na leczenie

Zdefiniowanie dokumentów do przetwarzania i prezentacji danych

W aplikacji nie ma zapotrzebowania tworzenia dokumentów ani raportów z racji jej charakteru. Projekt to nieskomplikowana internetowa aplikacjia tworzona w małym zespole programistycznym zatem istniejąca dokumentacja jest wystarczająca.

Zdefiniowanie panelu sterowania aplikacji

Panel administracyjny tworzą linki edycji, usuwania i tworzenia nowych zasobów. Linki wbudowane są w standardową aplikacjię przez co zyskuje ona na przejrzystości i intuicyjności.

Zdefiniowanie makropoleceń dla realizacji typowych operacji

Tworzenie aplikacji korzystającej z frameworka RubyonRails nie wspiera własnych rozwiązań. Pisząc aplikacje korzystamy z szeregu wewnętrznych rozwiązań wpisujących się w regułę Convention Over Configuration, polegająca na sprowadzeniu do minimum niezbędnej konfiguracji przez zastępowanie jej gotowymi domyślnymi, zalecanymi wzorcami.

Uruchamianie i testowanie aplikacji

Aplikacja została uruchomiona lokalnie przy wykorzystaniu serwera WebBrick oraz przeglądarek internetowej Mozilla Firefox i Google Chrome. Łączenie się aplikacji z bazą danych realizowane było przy wykorzystaniu mechanizmu ActiveRecord. Testowanie aplikacji polegało na ręcznym sprawdzeniu działania czynności wykonywanych w aplikacji.

Wprowadzanie danych

W aplikacji nie występuje automatyczne wprowadzanie danych. Dane wprowadzane są ręcznie za pośrednictwem aplikacji WWW przez użytkownika a te które potrzebne sa do działania aplikacji ( np specjalizacje lekaskie) wprowadzane są przez administratora.

Wdrażanie systemu do użytkowania

Wdrażanie systemu będzie w polegało na utworzeniu bazy danych na serwerze, skopiowaniu danych i skonfigurowaniu jej w czym pomaga narzędzie Capistrano. Po wdrożeniu system będzie można przetestować korzystając z przeglądarki internetowej.

Przeprowadzenie szkolenia użytkowników

Prostota aplikacji eliminuje ten podpunkt. Na głównej stronie aplikacji mogłaby pojawić się infografika o przeznaczeniu aplikacji i o paru krokach kozystania z niej.

Zapewnienie obsługiwania systemu po wdrożeniu

Obsługa aplikacji po wdrożeniu to kontrola poprawności działania programu oraz bazy danych. Autorzy powinni reagować na feedback od użytkowników na temat postaci aplikacji a także informacji o błędach. Ważne jest także skalowalność a zatem przygotowanie bazy, serwera jak i aplikacji do znacznego obciązenia w przypadku zwiększenia liczby użytkowników.

Rozwijanie i modyfikowanie aplikacji

Aplikacja mogłaby rozwijać się dynamicznie wraz z pojawieniem się informacji zwrotnych od użytkowników jak i nowych pomysłów. Trzeba wziąć pod uwagę konkurencje która w razie powodzenia proejktu pojawiłaby się na rynku. Sytuacja powinna być monitorowana tak aby aplikacji była aktualna i spełniała standardy

2011/05/06 12:33