A secured web app to play Tic Tac Toe against a dummy computer opponent.
- Play a game on a 3x3 board with an option to go first or after the computer opponent.
- Computer opponent's AI chooses random squares, except when going first in which case the center tile is always picked.
- User game data is persisted to an in-memory database. As long as the server is not restarted, a player can leave and return to finish an in-progress game.
- App is secured with a username & password login. Database is seeded with two usernames
rick
andmorty
. Both have the same passwordpickle
. - UI renders each time through a full page refresh in the name of simplicity.
- For more info about the project and lessons learned, see: Little Code Gems.
- Unit tests: src/test/java/tictactoe/*
Technology | |
---|---|
Language | Java 11 |
Framework | Spring Boot (v2.5) |
Data Layer | H2 Database, JPA & Hibernate |
UI Layer | HTML, CSS, Javascript, jQuery (v3.6), Bootstrap (v5), Thymeleaf |
Testing | JUnit 5, Mockito, AssertJ |
Build Tool | Gradle (v7.2) |
- Install Java 11.
- Clone repo:
git clone https://github.com/randomvlad/TicTacToe.git
- Navigate
cd TicTacToe
and run applicable Gradle Wrapper command:- macOS/Unix:
./gradlew bootRun
- Windows:
gradlew.bat bootRun
- macOS/Unix:
- Once app is running, go to http://localhost:8080/tictactoe/.
- Log in with username
rick
ormorty
and passwordpickle
to play a game. - To end app, kill process in terminal with
CTRL + C
.