Looking to match with POG Twitch friends?
- Production:
- postgresql
- Website profile page.
- Customizable background color.
- 5 favorite streamers.
- 128 characters bio, including 3 favorite Twitch emotes.
- Emotes
- Collect Twitch emotes.
- Combine emotes to make exclusive battle emotes.
- Battle with your matched friends using your battle emotes.
- Leaderboards
- See who has farmed the most emotes and become 👑🦆 (King/Queen Duck). Hosted channels have a separate leaderboard.
- Twitch bot (Separate).
npm i
/yarn i
/pnpm i --shamefully-hoist
to install packages.- Copy
.env.example
, to a new file named.env
. - Change the environment values in the new
.env
file. - Check
config/
directory for other configurations to change. Default config values should be sufficient for development, however. - If your
DB_CONNECTION
is not set tosqlite
, make sure to create a database with the same name underDB_NAME
. npm run r:m:s
for seeding the database with initial values. IfNODE_ENV
is set todevelopment
, you will also get development values to test around with.npm run dev
to start web server in watch mode (Reloads on file change) with debugging websocket enabled.- Or alternatively
npm run build && npm start
to build & start web server in "production" mode (No reloading on file change and no debugging websocket). That's it.
- Use
ts-standard
for linting and code style:- Run
npm run lint
to check for formatting issues. - Run
npm run format
to fix formatting issues.
- Run
- Always create a new branch, it's recommended to not push to master.
- Issue a pull request. Pull requests are squashed into 1 commit.
- Pull requests should only introduce or fix one thing.
- Use Conventional Commits specification for your commit messages. Read more here. This project mostly make use of fix/feat/chore/docs/refactor.
- If you are creating a release in your own fork, run
npm run release
.
- User
- profile hasMany: Profile
- emotes hasMany: EmoteEntry
- favoriteStreamers manyToMany: Favorite streamers list. (Matches to other users)
- Profile
- manyToMany: Matches list. (Matches to other profiles)
- BattleEntry
- user belongsTo: User
- battle belongsTo: Battle
- Battle
- battleEntries hasMany: BattleEntry
- (Pivot) Favorite streamers list.
- (Pivot) Matches list.