maniekstasz / OfferSeeker

Other
0 stars 0 forks source link

Server + WebSpider + PageProcessor #13

Closed bambalooon closed 9 years ago

bambalooon commented 9 years ago

Szablon serwisu został umieszczony na GitHubie - można go sobie już spokojnie sklonować.

Jeśli używacie jakiegoś innego IDE niż Intellij to proszę, dodajcie jego pliki do .gitignore i uważajcie, żeby takie rzeczy nie zostały scommitowane, bo to często potrafi pokomplikować pracę innych. W tym momencie wykluczyłem wszystkie pliki Intellij i wydaje mi się, że Eclipse'a też są wykluczone, ale na wszelki wypadek - patrzcie na początku, co commitujecie.

Myślę, że do naszych celów fajnie by było wykorzystać JBossa - moim zdaniem najlepszy z dostępnych serwerów i mam jakieś z nim doświadczenie. Gdy naprawię płytę główną, to powinienem dostać się nawet do konfiguracji jego, która uwzględniała już wiele fajnych feature'ów - logowanie, autoryzacja z bazą.

Co do bazy to pewnie jak większość jestem za Postgressem - wszyscy to znamy i jest na prawdę spoko.

Nie wiem czy w tym projekcie to będzie konieczne/wygodne, ale w razie czego: ORM - Hibernate.

Uważam też, że idealnie by było jakby udało nam się postawić JBossa gdzieś z dostępem dla wszystkich. Gdzie moglibyśmy skonfigurować go już docelowo, postawić bazę, i gdzie przetestowane moduły byłyby deployowane. Mógłby ktoś to załatwić? Służyłby on jeszcze za wzór poprawnej konfiguracji, dla naszych lokalnych środowisk. Lub byłby jedynym miejscem, w którym byśmy badali działanie całego serwisu - lokalnie byśmy tylko puszczali testy jednostkowe i nic sobie nie deployowali. Uważam, że oszczędziłoby to wiele czasu - gdy każdy musiałby to robić, mogłoby się okazać, że straciłby dzień na to(lub więcej). A tak - jedna osoba się ty zajmie.

konik32 commented 9 years ago

Jak już ustaliliśmy serwer będzie odpalony na jettym, dzięki będzie się on odpalal jak zwykła aplikacja bez żadnego deployowania. Do całości użyjemy spring boota gdzie konfiguracja serwera odbywa się automatycznie.

Co do stawiania serwera, każdy będzie sobie go mógł odpalić u siebie i przetestować, podając tylko scieżkę do bazy, użytkownika i hasło. Poza tym przypominam, że zanim cokolwiek podłączymy do serwera mamy napisać do tego testy.

Co do bazy, również ustaliliśmy, że używamy ORM - Hibernate, więc czy to będzie postgres czy mysql nie ma znaczenia.

bambalooon commented 9 years ago

Aha - nie dotarło do mnie nic na temat tego jetty. Co do ORM, to się zastanawiam po prostu czy w tak lekki bazodanowo projekcie ma to sens.. Z konfiguracją Hibernate'a czasem może być dużo problemów, a to co robimy na bazie to podstawy. Oczywiście nie mówię nie, tylko się 'głośno' zastanawiam. Jaka jest przewaga Jettiego nad JBossem?

konik32 commented 9 years ago

Ja wszystko skonfiguruje, Wy komunikujecie się z serwerem poprzez interfejs obsługa bazy jest po naszej stronie.

konik32 commented 9 years ago

Skonfigurowałem serwer, hibernate(na razie na mysql, jak zainstaluje postgresa to mogę zmienić) serwer odpalamy przez klase Application. Możemy sprawdzić czy działa na localhost:8080. Co do bazy danych proponuje użyć hsqldb file database. Nie trzeba instalować żadnego serwera. Pozbywamy się kłopotu pobierania pakietów i tworzenia bazy na serwerze. Co Wy na to?

ghost commented 9 years ago

A ja mam jeszcze jedną uwagę - też zdecydowanie wolę postgresql, ale rozważcie też to, że skoro i tak postawimy orm to mamy przecież dostęp z agh do mysql, który stoi ciągle online za darmo. ;)

EDIT: a zresztą chyba nawet do postgresql mamy dostęp tylko trzeba chyba mieć ip z agh, nie wiem czy z mysql nie jest podobnie. ;C

bambalooon commented 9 years ago

@konik32 jeśli działa to nie mam uwag. MySQL też mi pasuje, a jak mamy Hibernate to jest to w zasadzie nieistotne.

@bartQH odnośnie tego AGHowego MySQL/Postgresa to:

  1. Szkoda czasu na zabawę z konfiguracją.
  2. Może być wolny/zamulać, gdyż będziemy wysyłać dość dużą ilość danych do niego, na lokalu mimo wszystko wygodniej - przynajmniej jeśli się da tak jak @konik32 mówi.
konik32 commented 9 years ago

Dobra to na razie postawie HSQLDB zobaczymy jak to będzie działać potem się najwyżej zmieni na cos innego

bambalooon commented 9 years ago

Dodałem interfejs i wstępny model dla PageProcessor'a, skonfigurowałem naszego głównego beana. Zmieniłem wersje javy na 1.7, bo pewnie tak jak większość nie mam javy 1.8.

@konik32 Możesz powiedzieć mi/nam jak odpalić tego jettiego? Czy jest to jeszcze nie możliwe?

konik32 commented 9 years ago

Odpalasz normalnie jako java application klasę pl.edu.agh.offerseeker.Application i działa. Baza danych tworzy się w folderze domowym użytkownika.

konik32 commented 9 years ago

Udostępnianie użytkownikowi tylko tych ogłoszeń, które chce widzę w taki sposób: Pobieramy i zapisujemy wszystkie ogłoszenia, które znajdziemy. Indeksujemy ich treść w bazie przy użyciu hibernate search. Użytkownik za każdym razem podaje do requescie do serwera keywordsy, po których wyszukujemy ogłoszenia w bazie i zwracamy mu je. W tym rozwiązaniu odpada etap III o ile dobrze zrozumiałem o co w nim chodzi. Jeśli zrobimy to w taki sposób rola pageprocessora sprowadza się tylko do stwierdzenia czy coś jest ogłoszeniem czy nie, oraz zaktualizowaniem bazy ogłoszeń po ocenie użytkownika. Reszta to rola serwera.

bambalooon commented 9 years ago

@konik32 popieram.