Skip to content

🚧 Work in progress... β–ͺ Sudoku game β–ͺ JavaFX MVVM app with Spring Boot

License

Notifications You must be signed in to change notification settings

Lob2018/SudokuFX

Repository files navigation

SudokuFX

License
OpenSSF Scorecard Known Vulnerabilities CodeQL Analysis
Dependabot Updates
Quality Gate Status Code coverage Qodana
Open Issues Open Pull Requests GitHub release

SudokuFX in action

Contents

Description

SudokuFX is a Sudoku game, allowing you to create several player profiles and save and restore their games. The application allows you to solve the current Sudoku grid, but also other entries manually.

Build with

  • Java LTS (e.g. 21)
  • JavaFX LTS (e.g. 21)
  • WiX Toolset v3.11
  • Dependencies :
    • Development
      • javafx-controls
      • javafx-fxml
    • DTOs
      • MapStruct
    • SGBDR & SPRING BOOT
      • HSQLDB
      • Spring boot
        • Starter
        • Gluon Ignite with Spring
        • Starter data JPA
        • Starter validation
      • flyway (database migration)
      • passay (generate and validate secrets)
    • Logs
      • logback from Spring Boot
    • Build dependencies :
      • maven-compiler-plugin
        • annotationProcessorPaths:
          • MapStruct processor (for code generation)
          • Lombok (for generating boilerplate code)
          • Lombok MapStruct Binding (to integrate Lombok with MapStruct)
      • javafx-maven-plugin
      • spring-boot-maven-plugin (create the uber JAR)
      • exec-maven-plugin (for scripts generating the packages)
    • Test dependencies :
      • spring boot starter test (JUnit, Mockito, Hamcrest)
      • surefire
      • jacoco
      • testfx-junit5 (ex. : FxRobot to execute actions within the UI, or custom Hamcrest matchers org.testfx.matcher.*.)
      • System Stubs for isolating tests that redefine system properties (see Required Application Properties to Run)

Project

Roadmap

Mockup

Important

Required Application Properties to Run

For the application to work properly, the following application properties must be set at the JVM level:

  • app.name: This property specifies the name of the application.
  • app.version: This property specifies the version of the application.
    • This SemVer-like format is only numeric MAJOR.MINOR.PATCH (e.g., 1.0.0, 2.1.3).

Windows how to run in IntelliJ IDEA

  • Download and install the version LTS (e.g. 21) of the JDK Adoptium Temurin JDK
  • Download and install WiX Toolset v3.11 (in order to package the application)
    • Activate .NET framework 3.5.1 (Control Panel > Programs > Programs and Features > Turn Windows features on or off)
    • Launch wix311.exe
  • Configured the necessary environment variables
    • JDK
      • name : JAVA_HOME
      • value LTS (e.g. 21) : C:\Program Files\Eclipse Adoptium\jdk-21.0.3.9-hotspot
    • WiX
      • name : WIX
      • value : C:\Program Files (x86)\WiX Toolset v3.11\
  • IntelliJ IDEA
    • Clone the repository
    • Select the project's JDK
      • File > Project Structure > SDK > Add SDK from disk (select the JDK)
    • Run the app at top right corner (SudoMain.java is the main class)
      • Run / Debug Configurations > Edit Configurations...
        • Run (in order to run the application)

          • Add New Configuration > Maven > Run: clean javafx:run > Apply

          Run with Maven for JavaFX

          • Run SudokuFX [clean,javafx:run]
        • Run with details (optional)

          • Add New Configuration > Maven > Run: clean -X javafx:run -Dprism.verbose=true -f pom.xml > Apply
          • Run SudokuFX [run details]
        • Run that generate documentation with Doxygen

          • Install Doxygen and GraphViz (Doxygen must be added to the system PATH).
          • Add New Configuration > Maven > Run: clean -X javafx:run prepare-package -P generate-docs -f pom.xml > Apply
          • Run SudokuFX [prepare-package]

Installation

Windows Linux MacOS_Arm64,_x86__64

sudo apt install ./sudokufx-jvm_v.v.v_amd64.deb

Use

Examples

Update

Uninstallation

  • Windows
    • Application without Java Runtime Environment included (ZIP file with the .bat file and the JAR)
      • Delete your unzipped folder from SudokuFX-v.v.v_windows.zip
    • Application with Java Runtime Environment included (from MSI file)
      • Uninstall from the Control Panel (for programs)
        1. In the search box on the taskbar, type Control Panel and select it from the results.
        2. Select Programs > Programs and Features.
        3. Press and hold (or right-click) on the program you want to remove and select Uninstall or * Uninstall/Change*. Then follow the directions on the screen.
  • Linux
    • Application without Java Runtime Environment included (TAR file with the .sh file and the JAR)
      • Delete your untarred folder from SudokuFX-v.v.v_linux.tar.gz
    • Application with Java Runtime Environment included (from .deb file)
sudo apt purge sudokufx-jvm
  • MacOS
    • Arm64 package by default and x86_64 is specified if needed
    • Application without Java Runtime Environment included (ZIP file with the .sh file and the JAR)
      • Delete your unzipped folder from SudokuFX-v.v.v_macos.zip
    • Application with Java Runtime Environment included (from .dmg file)
      • Drag the application to the Trash

Important

  • Windows
    • To completely delete your app data and logs, you need to manually delete this folder:

      C:/Users/<USERNAME>1/AppData/Local/Soft64.fr/SudokuFX/.

  • Linux
    • To completely delete your app data and logs, you need to manually delete this folder:

      /home/<USERNAME>1/.local/share/Soft64.fr/SudokuFX.

  • MacOS
    • To completely delete your app data and logs, you need to manually delete this folder:

      /Users/<USERNAME>1/Library/Application Support/Soft64.fr/SudokuFX.

Contributors

Lob2018

Feedback

  • File an issue
    • If you want you can attach the application logs you find :
      • Windows
        • Inside C:/Users/<USERNAME>1/AppData/Local/Soft64.fr/SudokuFX/logs-sudokufx
      • Linux
        • Inside /home/<USERNAME>1/.local/share/Soft64.fr/SudokuFX/logs-sudokufx
      • MacOS
        • Inside /Users/<USERNAME>1/Library/Application Support/Soft64.fr/SudokuFX/logs-sudokufx

Footnotes

  1. Replace <USERNAME> with your currently logged-in username. ↩ ↩2 ↩3 ↩4 ↩5 ↩6

About

🚧 Work in progress... β–ͺ Sudoku game β–ͺ JavaFX MVVM app with Spring Boot

Resources

License

Security policy

Stars

Watchers

Forks