Merge remote-tracking branch 'origin/develop' into develop
This commit is contained in:
commit
d582a10f2e
3 changed files with 25 additions and 200 deletions
181
README.md
181
README.md
|
|
@ -1,163 +1,28 @@
|
||||||
# RaspberryRocketeer
|
# RaspberryRocketeer
|
||||||
|
|
||||||
## Class Diagram of all classes
|
## How to run
|
||||||
|
|
||||||
```mermaid
|
### Copy .env
|
||||||
classDiagram
|
First you need to copy the `.env.example`.
|
||||||
direction BT
|
|
||||||
class Collidable {
|
|
||||||
collides(o: Entity) boolean
|
|
||||||
}
|
|
||||||
class Database {
|
|
||||||
any _db
|
|
||||||
any db
|
|
||||||
}
|
|
||||||
class Entity {
|
|
||||||
constructor(position: Position, width: number, height: number, fill: number)
|
|
||||||
Position _position
|
|
||||||
number _width
|
|
||||||
number _height
|
|
||||||
number fill
|
|
||||||
boolean _showHitbox
|
|
||||||
update() void
|
|
||||||
draw() void
|
|
||||||
Position position
|
|
||||||
number width
|
|
||||||
number height
|
|
||||||
boolean showHitbox
|
|
||||||
}
|
|
||||||
class Game {
|
|
||||||
number id
|
|
||||||
number score
|
|
||||||
string playtime
|
|
||||||
Date date
|
|
||||||
number userId
|
|
||||||
}
|
|
||||||
class GamePgPromiseRepository {
|
|
||||||
insert(game: Game) Promise~Game~
|
|
||||||
serialize(raw: any) Game
|
|
||||||
}
|
|
||||||
class GameRepository {
|
|
||||||
insert(game: Game) Promise~Game~
|
|
||||||
}
|
|
||||||
class HighscoreLeaderboard
|
|
||||||
class HighscoreLeaderboardPgPromiseRepository {
|
|
||||||
getAll() Promise~HighscoreLeaderboard~
|
|
||||||
serialize(raw: any) HighscoreLeaderboard
|
|
||||||
}
|
|
||||||
class HighscoreLeaderboardRepository {
|
|
||||||
getAll() Promise~HighscoreLeaderboard~
|
|
||||||
}
|
|
||||||
class Leaderboard
|
|
||||||
class LeaderboardEntry {
|
|
||||||
number username
|
|
||||||
number rank
|
|
||||||
T score
|
|
||||||
}
|
|
||||||
class Obstacle {
|
|
||||||
constructor(position: Position, obstacleWidth: number, obstacleHeight: number, pipeImagePath: string)
|
|
||||||
Pipe pipeTop
|
|
||||||
Pipe pipeBottom
|
|
||||||
number padding
|
|
||||||
number speed
|
|
||||||
number _distanceBetweenPipes
|
|
||||||
number _startX
|
|
||||||
resetPosition() void
|
|
||||||
randomizeHeight() void
|
|
||||||
randomRange(min: number, max: number) number
|
|
||||||
update() void
|
|
||||||
draw() void
|
|
||||||
collides(o: Entity) boolean
|
|
||||||
any startX
|
|
||||||
any distanceBetweenPipes
|
|
||||||
}
|
|
||||||
class Pipe {
|
|
||||||
constructor(positionX: number, width: number, height: number)
|
|
||||||
any _image
|
|
||||||
update() void
|
|
||||||
draw() void
|
|
||||||
move(speed: number) void
|
|
||||||
collides(o: Entity) boolean
|
|
||||||
any image
|
|
||||||
}
|
|
||||||
class Position {
|
|
||||||
constructor(x: number, y: number)
|
|
||||||
number _x
|
|
||||||
number _y
|
|
||||||
number x
|
|
||||||
number y
|
|
||||||
}
|
|
||||||
class Raspberry {
|
|
||||||
constructor(image: string)
|
|
||||||
number lift
|
|
||||||
number gravity
|
|
||||||
number _velocity
|
|
||||||
any _image
|
|
||||||
Position position
|
|
||||||
number maxVelocity
|
|
||||||
number WIDTH
|
|
||||||
number HEIGHT
|
|
||||||
number FILL
|
|
||||||
update() void
|
|
||||||
applyGravity() void
|
|
||||||
forceBoundaries() void
|
|
||||||
boost() void
|
|
||||||
draw() void
|
|
||||||
number velocity
|
|
||||||
any image
|
|
||||||
}
|
|
||||||
class TimeLeaderboard
|
|
||||||
class TimeLeaderboardPgPromiseRepository {
|
|
||||||
getAll() Promise~TimeLeaderboard~
|
|
||||||
serialize(raw: any) TimeLeaderboard
|
|
||||||
}
|
|
||||||
class TimeLeaderboardRepository {
|
|
||||||
getAll() Promise~TimeLeaderboard~
|
|
||||||
}
|
|
||||||
class User {
|
|
||||||
number id
|
|
||||||
string name
|
|
||||||
}
|
|
||||||
class UserPgPromiseRepository {
|
|
||||||
getById(id: number) Promise~User~
|
|
||||||
getByName(name: string) Promise~User~
|
|
||||||
withIdExists(id: number) Promise~boolean~
|
|
||||||
withNameExists(name: string) Promise~boolean~
|
|
||||||
insert(user: Omit~User, "id"~) Promise~User~
|
|
||||||
serialize(raw: any) User
|
|
||||||
}
|
|
||||||
class UserRepository {
|
|
||||||
getById(id: number) Promise~User~
|
|
||||||
getByName(name: string) Promise~User~
|
|
||||||
withIdExists(userId: number) Promise~boolean~
|
|
||||||
withNameExists(username: string) Promise~boolean~
|
|
||||||
insert(user: Omit~User, "id"~) Promise~User~
|
|
||||||
}
|
|
||||||
class UserScores {
|
|
||||||
number userId
|
|
||||||
number highscore
|
|
||||||
number totalScore
|
|
||||||
string totalPlaytime
|
|
||||||
number averageScore
|
|
||||||
number gamesPlayed
|
|
||||||
}
|
|
||||||
class UserScoresPgPromiseRepository {
|
|
||||||
getById(id: number) Promise~UserScores~
|
|
||||||
serialize(raw: any) UserScores
|
|
||||||
}
|
|
||||||
class UserScoresRepository {
|
|
||||||
getById(userId: number) Promise~UserScores~
|
|
||||||
}
|
|
||||||
|
|
||||||
GamePgPromiseRepository --> GameRepository
|
|
||||||
HighscoreLeaderboardPgPromiseRepository --> HighscoreLeaderboardRepository
|
|
||||||
Obstacle ..> Collidable
|
|
||||||
Obstacle --> Entity
|
|
||||||
Pipe ..> Collidable
|
|
||||||
Pipe --> Entity
|
|
||||||
Raspberry --> Entity
|
|
||||||
TimeLeaderboardPgPromiseRepository --> TimeLeaderboardRepository
|
|
||||||
UserPgPromiseRepository --> UserRepository
|
|
||||||
UserScoresPgPromiseRepository --> UserScoresRepository
|
|
||||||
|
|
||||||
|
```shell
|
||||||
|
cp .env.example .env
|
||||||
|
```
|
||||||
|
|
||||||
|
<small>Note: It is recommended to change the values for the database user.</small>
|
||||||
|
|
||||||
|
### Install node packages
|
||||||
|
Go into the frontend folder using
|
||||||
|
```shell
|
||||||
|
cd frontend
|
||||||
|
```
|
||||||
|
and run:
|
||||||
|
```shell
|
||||||
|
npm install
|
||||||
|
```
|
||||||
|
|
||||||
|
### Start the container
|
||||||
|
|
||||||
|
```shell
|
||||||
|
docker compose up --build
|
||||||
```
|
```
|
||||||
|
|
|
||||||
|
|
@ -1,40 +0,0 @@
|
||||||
insert into "user" (name) values ('dpettus0');
|
|
||||||
insert into "user" (name) values ('egreetland1');
|
|
||||||
insert into "user" (name) values ('smontford2');
|
|
||||||
insert into "user" (name) values ('idagwell3');
|
|
||||||
insert into "user" (name) values ('lgagan4');
|
|
||||||
insert into "user" (name) values ('acarmont5');
|
|
||||||
insert into "user" (name) values ('kjermyn6');
|
|
||||||
insert into "user" (name) values ('dokieran7');
|
|
||||||
insert into "user" (name) values ('pdrinkel8');
|
|
||||||
|
|
||||||
insert into game (user_id, score, playtime, date) values ('1', 74, '19:59', '2022-07-19');
|
|
||||||
insert into game (user_id, score, playtime, date) values ('1', 86, '20:32', '2022-11-24');
|
|
||||||
insert into game (user_id, score, playtime, date) values ('1', 68, '10:41', '2022-03-24');
|
|
||||||
insert into game (user_id, score, playtime, date) values ('2', 39, '5:55', '2022-06-01');
|
|
||||||
insert into game (user_id, score, playtime, date) values ('2', 20, '9:23', '2022-03-12');
|
|
||||||
insert into game (user_id, score, playtime, date) values ('2', 28, '23:45', '2022-04-01');
|
|
||||||
insert into game (user_id, score, playtime, date) values ('2', 44, '18:43', '2022-06-24');
|
|
||||||
insert into game (user_id, score, playtime, date) values ('3', 92, '14:54', '2022-11-06');
|
|
||||||
insert into game (user_id, score, playtime, date) values ('3', 73, '0:45', '2022-07-26');
|
|
||||||
insert into game (user_id, score, playtime, date) values ('3', 27, '2:49', '2022-02-03');
|
|
||||||
insert into game (user_id, score, playtime, date) values ('4', 26, '2:32', '2022-07-19');
|
|
||||||
insert into game (user_id, score, playtime, date) values ('4', 12, '17:03', '2022-04-25');
|
|
||||||
insert into game (user_id, score, playtime, date) values ('4', 6, '8:49', '2021-12-03');
|
|
||||||
insert into game (user_id, score, playtime, date) values ('4', 22, '22:27', '2022-03-02');
|
|
||||||
insert into game (user_id, score, playtime, date) values ('5', 94, '1:04', '2022-10-19');
|
|
||||||
insert into game (user_id, score, playtime, date) values ('5', 2, '2:14', '2022-04-06');
|
|
||||||
insert into game (user_id, score, playtime, date) values ('5', 21, '17:18', '2022-06-03');
|
|
||||||
insert into game (user_id, score, playtime, date) values ('6', 33, '16:01', '2022-02-02');
|
|
||||||
insert into game (user_id, score, playtime, date) values ('6', 27, '7:03', '2022-02-06');
|
|
||||||
insert into game (user_id, score, playtime, date) values ('6', 62, '0:45', '2022-11-15');
|
|
||||||
insert into game (user_id, score, playtime, date) values ('7', 12, '8:54', '2022-06-29');
|
|
||||||
insert into game (user_id, score, playtime, date) values ('7', 63, '16:01', '2022-11-05');
|
|
||||||
insert into game (user_id, score, playtime, date) values ('7', 29, '0:46', '2022-10-01');
|
|
||||||
insert into game (user_id, score, playtime, date) values ('8', 67, '1:27', '2022-09-29');
|
|
||||||
insert into game (user_id, score, playtime, date) values ('8', 84, '10:37', '2021-12-18');
|
|
||||||
insert into game (user_id, score, playtime, date) values ('8', 14, '19:14', '2022-01-31');
|
|
||||||
insert into game (user_id, score, playtime, date) values ('9', 21, '19:04', '2022-03-08');
|
|
||||||
insert into game (user_id, score, playtime, date) values ('9', 46, '2:34', '2022-04-18');
|
|
||||||
insert into game (user_id, score, playtime, date) values ('9', 78, '9:33', '2022-09-10');
|
|
||||||
insert into game (user_id, score, playtime, date) values ('9', 82, '11:19', '2022-11-29');
|
|
||||||
|
|
@ -10,11 +10,11 @@
|
||||||
},
|
},
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"bootstrap": "^5.2.3",
|
"bootstrap": "^5.2.3",
|
||||||
"vue": "^3.2.13"
|
"vue": "^3.2.13",
|
||||||
|
"@vue/cli-service": "~5.0.0"
|
||||||
},
|
},
|
||||||
"devDependencies": {
|
"devDependencies": {
|
||||||
"@vue/cli-plugin-typescript": "~5.0.0",
|
"@vue/cli-plugin-typescript": "~5.0.0",
|
||||||
"@vue/cli-service": "~5.0.0",
|
|
||||||
"typescript": "~4.5.5"
|
"typescript": "~4.5.5"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue