Giter Site home page Giter Site logo

panwauu / tac-with-bug Goto Github PK

View Code? Open in Web Editor NEW
4.0 1.0 4.0 8.26 MB

Webapp for the popular boardgame TAC

Home Page: https://tac-with-bug.herokuapp.com/

JavaScript 0.17% HTML 0.12% TypeScript 65.24% Vue 32.70% CSS 1.32% Shell 0.27% Pug 0.19%
boardgame tac nodejs openapi postgresql vue

tac-with-bug's People

Contributors

buehmann avatar dependabot[bot] avatar panwauu avatar

Stargazers

 avatar  avatar  avatar  avatar

Watchers

 avatar

tac-with-bug's Issues

Chat channels jump to the current waiting room channel

Describe the bug

I want to chat to #general, type a message and before sending message the channel jumps to the current waiting room channel, sending the message there.. twice..

How to Reproduce

See desc.

Expected behavior

Chat channels don’t jump and I can write where I want to.

Test: Add test database

Currently we test against the production database. This is slow and does not allow anyone to run the tests due to privacy issues.

Expected benefits

  • Faster execution and faster download time if even required
  • No privacy problems
  • Better stability and reproducibility

Open points

  • How to keep production and test database structure in sync?

Plan

  • Create sql file to populate database
  • Determine set of necessary data
  • Update test script to load test database
  • Update CI
  • Add test to SonarCloud?

Enhancement: Incorporate Blog with some kind of CMS

Reason/Context

Currently, news are distributed by chat and this leads to bad communication and limitations in internationalization. Also, sometimes this chat tends to be about bug reports. Additionally, the FAQ are hardcoded and hard to change/maintain and non-trivial to style.

Description

It would be great to incorporate some kind of CMS system to host a News blog and also a FAQ section. The solution should be:

  • Easy to edit
  • Easy to style
  • Able to internationalize
  • Should add limited overhead and complexity

Bug: z-index during game

PlayerCards in Front of Cards
Balls over Cards or Cards over balls

Use Delay with transition to change the z-index?

Test: Add E2E

Reason/Context

Add E2E Tests with Cypress to also test the frontend.

Description

?

Player was not able to use TAC to knock out his own marble

I had a game with player "Leichtfuss" and following situation occurred:

The enemy played a "13" and Leichtfuss (my team mate) wanted to use her TAC card to bring in a new own marble and knock out the one which was already on her entry field. This was the only legal move to use the 13 but the game did not allow to do this.

Unfortunately I should have filed it immediately with the game id but I didn't and now I cannot exactly say in which game it happened.

Test: reactivate capturedDB.test.ts

Reason/Context

In earlier stages, we copied the production database to perform tests on the real database. Now, we use synthetic test data. Thus, we cannot test against random games from production anymore.

Description

Implement an endpoint to download random captured games and test against them. Maybe only activate this tests in the CI.

Enhancement: Notifications page on front-end

  • Add query for friends notifications
  • Add query for tournament notifications
  • Figure out auto update of notifications
  • Remove FriendsNotification
  • Add notification page and symbol?

Enhancement: Notification settings for mails

Also add email before payment option

Notify on:

  • Tournament news
  • Tournament invitations/reminders
  • Sponsoring informations
  • Platform news
  • ?: Unread messages
  • ?: Friend request

To-Dos:

  • Make database change
  • Make service layer to handle notification settings
  • Frontend to set notifications
  • Implement Platform news (Admin can request list of all relevant mails)
  • Implement tournament news (Admin can request list of all relevant mails)
  • Implement tournament invitations
  • Implement sponsoring info
  • Implement Unread messages
  • Implement friend requests
  • Make link to unsubscribe
  • Test sponsoring changes

Enhancement: Link to this repo in FAQ

Describe the bug

The FAQ section was done when the repository was still private. So the repository is not really considered.

Expected behavior

We should redo the FAQ sections, "Zu Tac-With-Bug beitragen" and "Tech-Stack", with the public repository in mind.

Improve sponsor system

The sponsor system adds additional overhead and should be simplified in the future.

  • Remove sponsor limitations from profile
  • Remove sponsor limitations from tournament
  • Remove sponsor limitations from waiting room

Bug: Notification number on private chats not working properly

Describe the bug

Reported by player "SiKa":

Servus Oskar. Cool, dass du die Chatfunktion so erweitert hast. Bei Privatchats kann man oft nicht erkennen, wenn Jemand etwas geschrieben hat. Zumindest nicht, wenn man offline war. Es wird also nicht angezeigt, wenn jemand etwas geschrieben hat, wenn man dann wieder online geht. Bitte schau dir das mal kurz an. Danke!

How to Reproduce

Send message and click the chat yourself. The messages are marked as read because you have read them and not the recieving user. The problem lies in the "mark as read" funcitonality not the display itself.

Expected behavior

TBD

Bug: Tutorial seems to be broken

Hi panwauu,

I had completed the tutorial and restarted it today. With the very first step I shall adjust my settings. After clicking "To the game board" it says, "Game canceled" and I cannot click the settings gear icon, just the "Back" button which cancels the tutorial:

image

Enhancement: Improve profile page

  • Show last games
  • Add achievements
  • Restyle tournament results
  • Restyle HOF and Sponsor
  • lazy load friends table
  • Readd best friend, worst enemy, ...
  • Show tutorial progress

Enhancement: Move toasts to server-side

Reason/Context

TBD

Description

  • Create server module
  • Add server to client event for toast
  • Add function to send toast
  • Remove TournamentBus and use the new function
  • Create public tournament toasts
  • Create private tournament toasts (on game start, invitation, ...)
  • Expand to other toasts

Refactor: Improve locale management

Problems:

  1. Unused keys can happen
  2. It is hard to find the correct string in the (language).json file

We can tackle Problem 1 by:

  • eslint: disable dynamic keys
  • Refactor to remove all dynamic keys
  • vue-i18n-extract: to check for missing keys afterwards
  • Include in CI

Feature: Add replacement system

Reason/Context

A player replacement system would help finish games when someone has to leave urgently. It also motivates people to participate in a game even if they might be interrupted. (Proposed by @gereon77)

Description

Spectators should have the possibility to offer a replacement for offline players. A voting system allows this offer to be accepted or rejected.

Approach

  1. Player from watch mode offers himself as replacement
  2. Players need to accept or decline -> Needs three accepted and fails with first decline
  3. Swap out player

Open problems

  • How to handle statistics (Playing statistics and also aborted games statistic)?
  • Conditions for replacement (Only for active player, when last move is older than 1 minute)?

Refactor: remove variable shadowing

Describe the bug

Overriding or shadowing a variable declared in an outer scope can strongly impact the readability, and therefore the maintainability, of a piece of code. Further, it could lead maintainers to introduce bugs because they think they’re using one variable but are really using another.

  • Add 'no-shadow': ['error'] to .eslintrc.js in server
  • Add 'no-shadow': ['error'] to .eslintrc.js in client
  • Rename until npm run lint shows no more errors

Project: Tutorials

  • Register tutorial progress on sign-up
  • Playground for games
  • Tutorial generator
  • Actually create tutorials or done by community?

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.