- Daniel Dobrowolski
- Małgorzata Dymek
- Tomasz Janik
- Łukasz Kosmaty
- Nikodem Kwaśniak
- Dawid Szczerba
Aplikacja jest połączeniem sudoku grabbera, który jest w stanie przeczytać łamigłówkę ze zdjęcia oraz sudoku solvera, który rozwiązuje podane przez użytkownika sudoku. Aplikacja została podzielona na dwa główne moduły.
- Web - część odpowiedzialna za serwer oraz proces rozwiązywania/rozpoznawania sudoku. Moduł ten również został podzielony na pod moduły.
- RecognizerLib - część odpowiedzialna ze rozpoznanie sudoku.
- Server - część odpowiedzialna za obsługę zapytań http.
- Solver - algorytm rozwiązujący łamigłówkę.
- App - część odpowiedzialna za dostarczenie przyjaznego gui do porozumiewania się z serwerem.
Dzięki modułowemu podejściu zyskaliśmy dużą swobodę w wymianie poszczególnych elementów oraz ułatwiło to zrozumienie kodu, ponieważ każda część działa od siebie nie zależnie. Ułatwiło to również testowanie całej aplikacji.
- Web
- App
Wszystkie komponenty są kompatybilne z Javą 8 oraz zostały napisane z myślą o tej wersji.
Do testowania używaliśmy junit 5.4.2 oraz mokito 2.27.0.
Proces kompilacji przy użyciu IDE został opisany w dokumencie Instrukcja kompilacji.pdf.
Istnieje również możliwość kompilacji serwera oraz aplikacji bez użycia środkownika. Aby to zrobić należy najpierw zmienić pliki config.properies znajdujące się w Server/src/main/resources/ oraz RecognizerLib/src/test/resources/. Po zmianie ścieżki do openCV możemy uruchomić wiersz poleceń w katalogu Web. Następnie należy wpisać następujące komendy:
mvn clean install [opcjonalnie z flagą -DskipTests]
mvn tomcat7:run
Jeśli chodzi o aplikację kliencką sprawa wygląda podobnie. Wystarczy wpisać komendy
mvn clean install [opcjonalnie z flagą -DskipTests]
mvn clean compile assembly:single
w katalogu App.
Aby uruchomić aplikację należy w folderze target oraz wykonać komendę
java -jar app-1.0-jar-with-dependencies.jar
Proces uruchomienia serwera w pojemniku dockera został również opisany w pliku Instrukcja kompilacji.pdf.
Kod jest udokumentowany w postaci JavaDoc, które znajdują się tutaj.