Git Product home page Git Product logo

libre-cards-against-humanity's People

Contributors

alex-451 avatar jayita10 avatar johnramberger avatar petrspelos avatar scottajevans avatar tomalop avatar vinmaster avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar

libre-cards-against-humanity's Issues

๐Ÿ”ฅ Handle unexpected disconnects

Summary

At the moment, if a player gets disconnected, there is no way of rejoining the session. We should probably have a way of making sure current connections are timed-out correctly.

After a number of players leave, there should be an exception thrown server-side. That should be a good first fix for this issue.

๐Ÿ”ถ - Implement ICardRepository

Summary

Our ICardRepository currently does not have a real implementation.

What needs to be done

Create an implementation of ICardRepository that uses /src/LibreCards.Core/default-cards.json as the card source.

Interested? โค๏ธ

If you'd like to tackle this issue, make sure to comment below so that multiple people don't work on the same issue accidentally. ๐ŸŒฎ

๐Ÿ”น - Change GetPlayers into a Players property

Summary

In our ILobby interface we are exposing a GetPlayers method that returns an IEnumerable<Player>. It might be a little more convenient to have a Players property with only a getter to access this collection.

https://github.com/petrspelos/libre-cards-against-humanity/blob/dd943ab10c2276f2dcd5c1787862c706195ee87c/src/LibreCards.Core/ILobby.cs#L14

What needs to be done

The GetPlayers method needs to be changed into a Players property with only a { get; } (getter) and users of this interface need to be adjusted. โ˜บ๏ธ

Interested? โค๏ธ

If you'd like to tackle this issue, make sure to comment below so that multiple people don't work on the same issue accidentally. ๐ŸŒฎ

๐Ÿ”ฅ Custom Card Set

Summary

If the game is in a Waiting For Players state, the Lobby Owner should be able to add more cards by providing a link to a valid JSON file in the same format as our cards-default.json

๐Ÿ“ฝ - Major Feature pass livestream

Summary

On August 24, 2021 (7 PM CEST), I'll be live on Glimesh:
https://spelos.net/live

Some sort of a Hackathon is planned for this stream, getting as many features in so that others (including first time contributors) have something real to work on. There will be plenty of things to fix up after this stream. โ˜บ๏ธ

Feel free to stop by. โค๏ธ

๐ŸŽจ Redesign Response View

Summary

Another part of our very Work-In-Progress UI is the Response View.

This is the view that displays everyone's responses and if the current player is a Judge, it also displayed a button to pick the winning card(s).

This view really doesn't work well with multiple card submissions and needs a lot of love. ๐Ÿ˜…

image

Relevant files

Want to work on this? โ˜บ

โค๏ธ First of all, thank you so much for considering tackling this issues.

๐Ÿค Feel free to discuss the implementation in the comments and/or ask for any clarifications!

๐Ÿ’ฌ Let us know you'd like to work on this issue by commenting underneath so that we don't work on the same thing

Hub error reporting

If a hub call fails (eg. Core throws), the clients will never know and the exception gets swallowed.

Bare minimum, we should log it.

Ideally, we'd have a callback to affected clients with a message.

๐ŸŽจ Card order design

Summary

When picking more than one card for a template, there is no indication of in which order they will be submitted.

The system is already designed to submit them in the order they were selected, however, the user has no way of knowing that.

image

Potential Solution

The simplest solution would be to display a little number on the selected cards indicating their order (we can utilize their index).

A more advanced solution would be to create a preview of sorts, where the user would see the cards appear in order as they're selected.

Want to work on this? โ˜บ

โค๏ธ First of all, thank you so much for considering tackling this issues.

๐Ÿค Feel free to discuss the implementation in the comments and/or ask for any clarifications!

๐Ÿ’ฌ Let us know you'd like to work on this issue by commenting underneath so that we don't work on the same thing

๐Ÿ“ Add some creative templates and/or cards

Summary

Libre Cards Against Humanity much like the original game is only as good as its card-set. The simplest thing you can do to help out the game is contribute templates and/or cards.

image

How to implement

Cards are stored in JSON format in the default-cards.json file.

Some rules for cards

Please make sure your cards and templates conform to the following rules:

  • Be creative, make sure you came up with what you submit
  • Try to keep the content to general knowledge, I am aware we have some inside-jokes already in the set, but let's keep it to a minimum
  • No profanity (users can eventually add their own cards, but let's keep the defaults clean)
  • Templates must contain at least one <BLANK> label
  • Templates should begin with a capital letter and end with a period
  • Templates should not contain an article before a blank
  • Standard cards should contain an article if appropriate

If you're not sure, feel free to ask in the comments. โ™ฅ

You can PR a change even if others are already working on this issue. This is an ongoing help-wanted. โ˜บ๏ธ

๐Ÿ”ฅ Multiple Lobbies Support

Summary

There currently is a single lobby per-server. This obviously isn't ideal.

There should be a list of lobbies, where a player can start a new one, or join an existing one.

If a lobby is empty, it should be removed from the pool.

โš ๏ธ There is a good chance this will have to be split into multiple issues

๐ŸŽจ Redesign Player list view

Summary

It's time to redesign and polish our Player list view component. ๐ŸŽ‰

image

What is needed

This is mostly HTML / CSS work.

If you're a designer, but aren't able to code, feel free to send your design in the comments below and I'm sure someone will be able to bring your design into life. โ˜บ๏ธ

The HTML (razor file) in question is PlayersView.

The CSS resource is our app.css

Want to work on this? โ˜บ

โค๏ธ First of all, thank you so much for considering tackling this issues.

๐Ÿค Feel free to discuss the implementation in the comments and/or ask for any clarifications!

๐Ÿ’ฌ Let us know you'd like to work on this issue by commenting underneath so that we don't work on the same thing

SignalR Hub improvements

We can significantly reduce the number of calls between Client and Signal R hub by utilizing a number of improvements.

  • Have a GameStatus object representing player's full state instead of relying on individual requests for cards, players, etc.
  • Utilize Hub calls that can return instead of relying on the Hub to call the client back

๐Ÿ’ป Implement toast popups for errors

Summary

At the moment, errors are displayed at the top of the page and never disappear. This clearly isn't the best way of doing it. ๐Ÿ˜…

image

Implementation

Ideally, we'd get a little toast popup appearing with the error. This popup would auto-hide after a while.
We should also probably write the error into the console just in case.

Want to work on this? โ˜บ

โค๏ธ First of all, thank you so much for considering tackling this issues.

๐Ÿค Feel free to discuss the implementation in the comments and/or ask for any clarifications!

๐Ÿ’ฌ Let us know you'd like to work on this issue by commenting underneath so that we don't work on the same thing

๐Ÿ“ - Finalize CONTRIBUTING.md with detailed walthrough

In order to provide a better and easier experience for first-time-contributors, it would be beneficial if we had a detailed step-by-step (ideally with screenshots) walkthrough of a sample contribution.

This would lower the barrier of entry and prevent small mistakes that could discourage potential contributors. โ˜บ๏ธ


โค๏ธ Feel free to comment any suggestions, ideas, or remarks you may have on this topic.

๐ŸŽจ Redesign Card Drawer

Summary

Our Card Drawer is in a dire need of a redesign. ๐Ÿ˜…

image

How to implement

This is mostly an HTML / CSS task, but might require a tiny bit of Blazor, depending on the severity of the redesign.

Currently, the cards contain simple checkboxes (related to #23 ), which could be redesigned using some CSS magic.

Ideally, we'd click on the cards themself instead of the checkbox and have them change the way they look, maybe they move up...

The Submit button should also probably look a little more presentable. ๐Ÿ˜…

Be creative, this is not a concrete task. โ˜บ๏ธ

Relevant files

Want to work on this? โ˜บ

โค๏ธ First of all, thank you so much for considering tackling this issues.

๐Ÿค Feel free to discuss the implementation in the comments and/or ask for any clarifications!

๐Ÿ’ฌ Let us know you'd like to work on this issue by commenting underneath so that we don't work on the same thing

๐Ÿ”ฅ Handle Players Leaving mid-game

Summary

Currently, if a player leaves in the middle of a game, the game gets soft-locked, since everyone will be forced to wait for this non-existent player.

How to implement

  • If a player leaves and the game falls under the minimum player count, the game state should return to "Waiting for players"
  • If the player who left was the judge and there is enough players, a completely new round should start
  • If the player who left was not the judge, the game can continue without being interrupted
    • If the player who left was the last missing vote, the game should continue with the Judging phase

Want to work on this? โ˜บ

โค๏ธ First of all, thank you so much for considering tackling this issues.

๐Ÿค Feel free to discuss the implementation in the comments and/or ask for any clarifications!

๐Ÿ’ฌ Let us know you'd like to work on this issue by commenting underneath so that we don't work on the same thing

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.