README.md updated.
This commit is contained in:
parent
ad117b4d2c
commit
41223dd786
3 changed files with 25 additions and 200 deletions
181
README.md
181
README.md
|
|
@ -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
|
||||
```
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue