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
rickandmorty. 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 TicTacToeand 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
rickormortyand passwordpickleto play a game. - To end app, kill process in terminal with
CTRL + C.


