Raport z przebiegu projektu AlleBay 1.0 Raport z przebiegu projektu
Agenda Wprowadzenie do projektu Zespół Organizacja pracy Opis funkcjonalności Podsumowanie
Wprowadzenie do projektu Celem projektu jest przygotowanie kompletnego serwisu, z funkcjonalnością kupującego, sprzedającego, administratora, billingu itp. wzorując się na istniejących serwisach typu eBay czy Allegro.
Wprowadzenie do projektu Uzgodnienia z zamawiającym doprowadziły do ustalenia funkcjonalności aplikacji. Interfejs użytkownika (wygląd portalu) nie jest częścią projektu w wersji 1.0. W skład projektu wchodzą jedynie ustalone funkcjonalności.
Wprowadzenie do projektu Technologia: Język: GWT-EXT Baza danych: MySQL IDE: Eclipse
Zespół Skład zespołu: Adamczyk Joanna Gałązka Przemysław Lisiecki Janusz Papciak Marcin Słowik Adrian Świeczkowski Grzegorz
Zespół Synergia pracy zespołowej - zespół M. Belbina Implementator Ewaluator = Krytyczny Sędzia (ME) Kreator = Innowator (PL) Dusza Zespołu (TW) Perfekcjonista = Konsekwentny Realizator (CF) Analityk Poszukiwacz (RI), Koordynator (CO) Lokomotywa (SH) TADEUSZ GOLONKA (Microsoft Regional Director in Poland) – 50 spotkanie KGD.NET
Zespół TADEUSZ GOLONKA (Microsoft Regional Director in Poland) – 50 spotkanie KGD.NET
Zespół Skład zespołu: Adamczyk Joanna TW, IMP Gałązka Przemysław CF, PL Lisiecki Janusz IMP Papciak Marcin RI Słowik Adrian ME Świeczkowski Grzegorz SH, CO
Organizacja pracy Tworząc projekt opieraliśmy się na SCRUMie Narzędzia pracy grupowej (Assembla): Repozytorium SVN Agile Planner Tickets Burndown Chart Scrum reports Messages Planning Poker
Organizacja pracy i opis funkcjonalności Zadanie Wycena Osoba wykonująca Status Zaplanowany termin Zaprojektowanie i uruchomienie bazy danych 20 87 Słowik Adrian Gotowe 19.10-01.11 Zaprojektowanie i implementacja silnika aplikacji Lisiecki Janusz Test Implementacja rejestracji użytkownika 8 Adamczyk Joanna Implementacja tworzenia nowej aukcji 13 Gałązka Przemysław Implementacja licytacji Świeczkowski Grzegorz Implementacja zakończenia aukcji przez wystawiającego Pociask Elżbieta Implementacja przeglądania skategoryzowanej listy aukcji 5 Papciak Marcin Implementacja podglądu wybranej aukcji 60% Implementacja wystawiania komentarzy 40 70% 02.11-15.11 Implementacja zarządzania uprawnieniami Implementacja edycji własnych danych przez użytkownika 3 Implementacja listy obserwowanych aukcji Implementacja administracyjnego podglądu listy aukcji 50% Implementacja kontroli kont użytkowników Implementacja podglądu profilu użytkownika Implementacja czarnej listy Automatyczne zamykanie aukcji po upływie zadanego czasu
Baza danych Wymagania: Rozwiązanie: MySQL na silniku InnoDB Tabele powinny zapewniać szybką obsługę zadanych funkcjonalności Rozwój funkcjonalności aplikacji nie powinien znacząco zmieniać struktury bazy danych Baza danych powinna obsługiwać klucze obce oraz automatycznie zapewniać danych Rozwiązanie: MySQL na silniku InnoDB
Baza danych Cechy struktury BD: Encje odzwierciedlają obiekty w systemie Możliwość wdrożenia bazy w Polsce – spełnienie wymagań GIODO Ochrona haseł użytkowników poprzez algorytm „solenia” sum kontrolnych haseł
Panel informacji o użytkowniku Wymagania: Stworzenie kontrolera serwującego dane o użytkowniku Rozwiązanie: Prosty panel zawierający informacje o numerze ID, nazwie oraz adresie e-mail użytkownika.
Logowanie użytkownika Wymagania dla funkcjonalności: Formularz do logowania Obsługa mechanizmu sesji
Logowanie użytkownika Etapy implementacji: Stworzenie interfejsu użytkownika Definicja funkcji do komunikacji z bazą danych Utworzenie sesji użytkownika Wysłanie danych o użytkowniku na klienta
System komentarzy Wymagania dla funkcjonalności: Możliwość dodawania opinii o kontrachencie po zakończonej transakcji Przeglądanie wystawionych opinii Przeglądanie opinii wystawionych przez kontrachentów.
System komentarzy Etapy implementacji: Stworzenie interfejsu pozwalającego na przeglądanie komentarzy, wybór transakcji i użytkownika do skomentowania, stworzenie interfejsu do dodania nowego komentarza. Obsługa dodawania/wylistowania komentarzy po stronie serwera (odpowiednie zapytania SQL)
System komentarzy Możliwość rozbudowy: Informowanie użytkownika drogą mailową o dodanym komentarzu Przeglądanie opinii na temat innych użytkowników
Wprowadzenie teamu do technologii Przygotowanie tutoriala na temat GWT dla pozostałych członków teamu: Szybszy start projektu Wylistowanie ważniejszych kwestii na temat technologii
Rejestracja użytkownika Wymagania dla funkcjonalności: Formularz rejestracyjny Walidacja pól formularza (po stronie klienta i serwera) Utworzenie nowego użytkownika w bazie danych
Rejestracja użytkownika Etapy implementacji: Stworzenie interfejsu użytkownika Walidacja po stronie klienta (np. hasło == powtórzenie hasła?) Definicja funkcji rejestrującej (po stronie serwera) Walidacja po stronie serwera (czy dany użytkownik istnieje w bazie?) Dodanie nowego użytkownika
Rejestracja użytkownika Usprawnienia dla funkcjonalności: Wykorzystanie md5 salt Automatyczne logowanie użytkownika po rejestracji Potwierdzenie rejestracji (np. poprzez wiadomość e-mail)
Czarna lista Wymagania dla funkcjonalności: Możliwość dodawania/usuwania z czarnej listy przez zalogowanego użytkownika Blokowanie możliwości uczestniczenia w aukcji Poinformowanie użytkownika a tym, że znalazł się on na czarnej liście
Czarna lista Etapy implementacji: Dodanie warunku sprawdzającego obecność na czarnej liście, podczas licytowania Stworzenie interfejsu pozwalającego na wybór użytkownika, który ma zostać umieszczony na liście lub z niej usunięty Obsługa dodawania/usuwania po stronie serwera (odpowiednie zapytania SQL)
Czarna lista Problemy podczas implementacji: Informowanie użytkownika: drogą mailową | stworzenie sekcji ‘komunikaty’ – rzeczywiste koszty mogą przekraczać szacowane Wyświetlanie informacji z dwu różnych tabel, z możliwością manipulacji na danych
Tworzenie aukcji Etapy implementacji: Stworzenie komponentów formularza Kategorie wczytywane z bazy danych Widget wyboru daty i czasu Wprowadzanie opisu aukcji w trybie RichCient lub HTML source
Tworzenie aukcji Walidacja pól Zapis aukcji do bazy Data zakończenia aukcji Podstawowa walidacja pozostałych pól Zapis aukcji do bazy
Tworzenie aukcji Usprawnienie komunikacji: Rozwiniecie asynchronicznego serwisu RPC o logowanie – LoggingAsyncHandler Ujednolicenie tworzenia proxy dla zdalnego wywolywania metod – ServerProxy.java
Automatyczne zamykanie aukcji po upływie czasu Wymagania dla funkcjonalności: Klasa wykonująca zadnia okresowo Stworzenie uniwersalnego interfejsu Możliwość opóźnienia startu zdania Możliwość wyłączenia zadania Funkcja abstrakcyjna update();
Edycja własnych danych Cechy: Wykorzystanie komponentu Window Wybór danych do edycji Kontrola poprawności pól Re-Type Uwagi Brak hashowania hasła po stronie klienta
Reaktywacja i hosting projektu Nowe Layouty Przebudowa głównego kontenera paneli Nowe CSS Nowy index.html Maven Jboss i Jetty
Licytacja Zarejestrowany użytkownik może licytować w istniejącej aukcji podając proponowaną cenę.
Licytacja Etapy implementacji: Stworzenie komponentów interfejsu użytkownika wraz niezbędnymi metodami Implementacja w/w Walidacja aukcji Walidacja użytkownika Walidacja wartości
Ręczne kończenie aukcji przez wystawiającego. Wystawiający może zakończyć aukcję w aktualnym stanie w dowolnym momencie. W przypadku wystąpienia licytujących aktualnie wygrywający zostaje zwycięzcą aukcji.
Ręczne kończenie aukcji przez wystawiającego. Etapy implementacji: Dodanie przycisku na panelu aukcji Walidacja użytkownika Implementacja metody zamykania po stronie klienta i serwera Metoda wykorzystywana również przez automat!
Zarządzanie uprawnieniami administracyjnymi Administrator może nadawać i odbierać uprawnienia administracyjne innym użytkownikom.
Zarządzanie uprawnieniami administracyjnymi Etapy implementacji: Przygotowanie panelu do wyświetlania listy użytkowników Obsługa przycisków nadawania oraz odbierania uprawnień Walidacja użytkownika
Lista obserwowanych aukcji Zarejestrowany użytkownik może dodać/usunąć aukcję na/z listy obserwowanych, aby szybko odnaleźć interesujące go aukcje.
Lista obserwowanych aukcji Etapy implementacji: Utworzenie panelu do wyświetlania użytkowników Metody odczytu i zapisu danych po stronie klienta i serwera Weryfikacja użytkownika
Kontrola kont użytkowników Administrator może usuwać, blokować oraz odblokowywać konta innych użytkowników.
Kontrola kont użytkowników Etapy implementacji: Przygotowanie panelu do wyświetlania użytkowników Metody odczytu i zapisu danych po stronie klienta i serwera Weryfikacja użytkownika
Podsumowanie Wykonano ponad 90% planu. Projekt ma opóźnienie z następujących powodów: Zmniejszenie zespołu Wystąpienie błędów technologicznych