Merge remote-tracking branch 'origin/develop' into develop

This commit is contained in:
dhain 2023-01-31 10:30:10 +01:00
commit d582a10f2e
3 changed files with 25 additions and 200 deletions

181
README.md
View file

@ -1,163 +1,28 @@
# RaspberryRocketeer
## Class Diagram of all classes
## How to run
```mermaid
classDiagram
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
### Copy .env
First you need to copy the `.env.example`.
```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
```

View file

@ -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');

View file

@ -10,11 +10,11 @@
},
"dependencies": {
"bootstrap": "^5.2.3",
"vue": "^3.2.13"
"vue": "^3.2.13",
"@vue/cli-service": "~5.0.0"
},
"devDependencies": {
"@vue/cli-plugin-typescript": "~5.0.0",
"@vue/cli-service": "~5.0.0",
"typescript": "~4.5.5"
}
}