Skip to content

lukmccall/SudokuSolver

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

SudokuSolver

Projekt został stworzony przez:
  • Daniel Dobrowolski
  • Małgorzata Dymek
  • Tomasz Janik
  • Łukasz Kosmaty
  • Nikodem Kwaśniak
  • Dawid Szczerba

Krótki opis aplikacji

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.

Użyte technologie

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.

Kompilacja

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.

Dokumentacja kodu

Kod jest udokumentowany w postaci JavaDoc, które znajdują się tutaj.

Materiały użyte podczas procesu tworzenia programy

Licencja

Apache License 2.0