We are the CS-506 Anteaters
This project looks to implement the 1973 board game Boggle in an online, multiplayer format. In addition to implementing all of the expected game mechanics, we seek to include modern amenities common to online games, including online matchmaking, seeded Boggle boards, and user accounts, including score tracking and win rates.
Customer research has not yet been conducted. The target audience are Boggle players who seek a modern, online version of the traditional board game.
WIP
flowchart RL
subgraph Front End
A(Javascript: React)
end
subgraph Back End
B(Java: Spring Boot)
end
subgraph Database
C[(MySQL)]
A <-->|"REST API"| B
B <-->C
end
| Table | Column | Type |
|---|---|---|
| User | user_name | string |
| User | password | string |
| User | matches_won | int |
| User | highest_score | int |
classDiagram
direction TB
class User {
- String userName
- String passwordHash
- int matchesWon
- int highestScore
+ User(userName: String, passwordHash: String)
+ getUserName() String
+ checkPassword(password: String) bool
+ getMatchesWon() int
+ getHighestScore() int
}
class Player {
- int currentScore
- List~String~ submittedWords
+ Player(userName: String, passwordHash: String)
+ submitWord(word: String) bool
+ resetForNewGame() void
+ getCurrentScore() int
}
class Dictionary {
- Set~String~ words
+ Dictionary(sourcePath: String)
+ contains(word: String) bool
+ addWord(word: String) void
+ load(sourcePath: String) void
}
class Game {
- String gameId
- char[][] board
- List~Player~ players
- Dictionary dictionary
- Timer timer
+ Game(gameId: String, dictionary: Dictionary, roundSeconds: int)
+ start() void
+ end() void
+ addPlayer(p: Player) void
+ removePlayer(p: Player) void
+ validateWord(p: Player, word: String) bool
+ getCurrentTime() int
}
User <|-- Player
Game o-- Dictionary
Game o-- Player
stateDiagram
[*] --> Ready
Ready --> Game : Start Game
Ready --> User : Check User Profile
Ready --> HowToPlay : View Rules
Game --> Game : Make A Game Action
Game --> Results : End A Game
Results --> Ready : Return To Menu
User --> Profile : View Profile
User --> History : View User History
User --> Ready : Return To Main Menu
Profile --> User : Return To User Menu
History --> User : Return To User Menu
HowToPlay --> Ready :Return To Main Menu