Raport końcowy

1. Implementacja bazy danych

Implementacja utworzonej bazy danych została przeprowadzona zgodnie z założonym schematem w oparciu o projekt przedstawiony na poniższym diagramie ERD:

Plik: baza.sql przedstawia skrypt w języku SQL, który posłużył do utworzenia pustych tabel w bazie danych. Należy zwrócić uwagę, że w związku z przyjętymi założeniami, nie było konieczne wprowadzania żadnych inicjalnych danych do bazy - powstała aplikacja nie korzysta z danych znajdujących się w tabelach bazy od początku swojego działania.

2. Definicja interfejsów do prezentacji, edycji i obsługi danych

Dane zaprezentowane w poniższych kwerendach są przykładowe i służą jedynie ustaleniu poprawności kodu SQL. Poza przedstawionymi zapytaniami do bazy danych, w przypadku realizacji większości wymienionych operacji i funkcji, zastosowano również inne mechanizmy (np. przy wykorzystaniu pakietu GWT oraz JDBC).

1. Rejestracja użytkownika do systemu:

 INSERT INTO users VALUES ("login","hasło","Imię","Nazwisko","a@a.pl","1966-02-02","2011-06-02","2011-06-02");

2. Logowanie do systemu:

 INSERT INTO sessions VALUES (1234, "login" , "127.0.0.1", TRUE);
 UPDATE users SET logdate = "2011-06-03" WHERE login = "login");

3. Wylogowanie z systemu:

 DELETE FROM sessions WHERE sessionID = "login"; 

4. Edycja danych użytkownika (profilu użytkownika):

 UPDATE users SET password = "nowehasło" , name = "Noweimię" , surname = "Nowenazwisko" , email = "nowymail@nowymail.pl" , city = "Nowemiasto", birthdate = "1966-02-07" WHERE login = "login"; 

5. Pobieranie danych aktualnie zalogowanego użytkownika:

 SELECT login , password, name, surname, email, city, birthdate, logdate, regdate FROM users NATURAL JOIN sessions WHERE sessions.sessionID = 1234; 

6. Tworzenie nowej grupy rozliczeniowej:

 INSERT INTO groups(groupname, groupowner, autooptymalization)  VALUES("nazwagrupy", "login", FALSE);
 INSERT INTO groupmembers VALUES("login",12);

7. Usuwanie grupy rozliczeniowej:

 DELETE FROM groupmembers WHERE groupID = 12;
 DELETE FROM groups WHERE groupID = 12;

8. Pobieranie informacji o grupach roliczeniowych:

 SELECT groupID, groupname, groupowner, autooptymalization FROM groups  WHERE groupowner = "login";
 SELECT name, surname, login FROM groupmembers NATURAL JOIN users WHERE groupmembers.groupID = 12;

9. Tworzenie nowego zaproszenia / prośby o dołączenie do grupy:

 INSERT INTO groupjoin(groupjoinowner, groupID, login, invitation)  VALUES("login", 12, "loginkogos", TRUE);

10. Anulowanie zaproszenia / prośby o dołączenie do grupy:

 DELETE FROM groupjoin WHERE groupjoinID = 123;

11. Akceptacja zaproszenia / prośby o dołączenie do grupy:

 INSERT INTO groupmembers VALUES("login",12);
 DELETE FROM groupjoin WHERE groupjoinID = 123;

12. Pobieranie danych o otrzymanych zaproszeniach (analogicznie wysłanych zaproszeniach, otrzymanych prośbach, wysłanych prośbach):

 SELECT groupname, name, surname, groupjoinID FROM groupjoin NATURAL JOIN groups NATURAL JOIN users WHERE groupjoin.invitation = TRUE AND groupjoin.groupjoinowner <> "login";

13. Tworzenie nowego zobowiązania:

 INSERT INTO commitments (commitmentname, obligor, obligee, groupID, commitmentowner, sum, comment, commitmentdate, status )  VALUES("zobowiazanie", "login_dłużnika", "login", 12, , "login", 125, "Komentarz do zobowiazania", 1);

14. Usuwanie zobowiązania:

 DELETE FROM commitments WHERE commitmentID = 5;

15. Zmiana statusu zobowiązania:

 UPDATE commitments SET status = 2 WHERE commitmentID = 5;

16. Pobieranie danych o otrzymanych zobowiązaniach:

 SELECT commitmentID, commitmentname, obligor, obligee, groupID, commitmentowner, sum, comment, commitmentdate, status FROM commitments WHERE commitments.status = 2 AND commitmentowner <> "login" AND (obligor = "login" OR obligee = "login");

3. Uruchamianie oraz testowanie aplikacji

Uruchomienie aplikacji zostało przeprowadzone po uprzednim jej przetestowaniu pod kątem poprawności działania. Na potrzeby projektu, aplikacja była uruchamiana lokalnie przy wykorzystaniu środowiska Eclipse oraz przeglądarki internetowej Mozilla Firefox. Baza danych została umieszczona na serwerze mysql.agh.edu.pl oraz alternatywnie lokalnie. Łączenie się aplikacji z bazą danych realizowane było przy wykorzystaniu bibliotek JDBC. Testowanie programu polegało na analizie działania poszczególnych operacji wykonywanych w aplikacji związanych w większości przypadków z operacjami wykonywanymi na użytkowanej bazie danych. Należy zauważyć, że istotnym aspektem była analiza łączenia się aplikacji z serwerem bazy danych pod kątem poprawności nawiązywania szybkiego połączenia.

4. Wprowadzanie danych

W niniejszej aplikacji wprowadzanie danych do bazy danych odbywa się wyłącznie w sposób ręczny. Nie występuje potrzeba automatycznego importu danych przed ani w trakcie działania aplikacji. Z uwagi na naturę Portalu Rozliczeń Grupowych (poniekąd portal ten wpisuje się w zasadę działania aplikacji społecznościowych), tylko użytkownik wprowadza konieczne dane do systemu, tworzy swoje konto, loguje się, wyświetla dane o sobie, zakłada grupy rozliczeniowe, tworzy zobowiązania, itp.

5. Wdrażanie systemu do użytkowania

Wdrożenie omawianej w tym dokumencie aplikacji opierało się w głównej mierze na implementacji bazy danych na serwerze MySQL oraz lokalnym uruchomieniu aplikacji przy wykorzystaniu środowiska programistycznego Eclipse oraz przeglądarki internetowej Mozilla Firefox. Na obecnym etapie rozwoju oprogramowania nie wystąpiła potrzeba wdrożenia go na zdalnym serwerze.

6. Przeprowadzanie szkolenia użytkowników

W związku z domyślnym działaniem aplikacji nie przewidziano prowadzenia szkoleń dla użytkowników. Niemniej jednak należy zauważyć, że takie szkolenia mogłyby być oparte o stworzenie krótkich filmów instruktażowych wraz z odpowiednim komentarzem, ukazujących różne aspekty działania aplikacji.

7. Zapewnienie obsługiwania systemu po wdrożeniu

Utrzymanie systemu w przypadku omawianej aplikacji sprowadza się do kontroli poprawności działania programu oraz bazy danych. Istotnym aspektem jest zapewnienie należycie dużego serwera bazy danych, tak, aby w miarę przyrostu użytkowników, nie występowały problemy z brakiem pamięci bazy. Sama aplikacja również musi być kontrolowana w przypadku przetwarzania dużej ilości danych.

8. Rozwijanie i modyfikowanie aplikacji

Jedną z ważniejszych perspektyw rozwojowych powstałej aplikacji, jest możliwość optymalizacji rozliczeń między użytkownikami wewnątrz grup rozliczeniowych. Optymalizacja ta odpowiadałaby za zmniejszenie liczby operacji rozliczeniowych między użytkownikami oraz normalizację przepływu wartości zobowiązań. Innym aspektem, którego rozwój mógłby pozytywnie wpłynąć na działanie aplikacji jest wykorzystanie zdalnego serwera. Oczywistym krokiem rozwojowym aplikacji jest również modyfikacja niesprawnie działających modułów oraz poprawienie wykrytych błędów systemu.

9. Opracowanie doświadczeń wynikających z realizacji projektu

Głównym aspektem, który należy opisać pośród doświadczeń wynikających z realizacji projektu jest czas poświęcony na wdrożenie się w zagadnienia i technologie związane z opracowywanym systemem. Należy wziąć pod uwagę przy realizacji następnych projektów, że jednym na najbardziej czasochłonnych zagadnień jest poznawanie techniki implementacyjnej systemu.

Drugim aspektem jest konieczność dokładnego opracowania specyfikacji projektu przed przystąpieniem do właściwej jego implementacji. Z doświadczeń uzyskanych na podstawie zrealizowanego projektu, można wysunąć wnioski, iż dokładnie przygotowana specyfikacja znacząco skraca czas potrzebny na realizację aplikacji. Co więcej, unika się niepotrzebnych błędów i nieporozumień powstających podczas implementowania poszczególnych funkcjonalności systemu.

pl/dydaktyka/ztb/2011/projekty/rozliczenia/start/raport_koncowy.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