GithubHelp home page GithubHelp logo

felixschoen / parlorplace Goto Github PK

View Code? Open in Web Editor NEW
1.0 1.0 1.0 47.6 MB

Repository of ParlorPlace - the hub for all your social deduction games!

Dockerfile 0.03% Java 66.93% JavaScript 0.23% SCSS 0.71% TypeScript 24.84% HTML 7.26%

parlorplace's Introduction

ParlorPlace Logo

ParlorPlace

ParlorPlace is a platform for social deduction games like the famous "Werewolf" (also known as "Mafia"). It is built to support relatively quick and easy addition of other social deduction games, like for example "The Resistance".

Contents

Features

User Account Management

Users are able to securely sign up for the service, using a username, a password and a valid e-mail address, which can be used in the future to recover access to an account. Furthermore, they are able to securely log into their accounts. Users are assigned different roles, according to which different actions are available to them (for instance, normal users and administrators are supposed to have different authority and make use of different functionality).

User Profiles

Each user has a profile, which shows essential information about them, for instance their nickname and their roles. They can use this profile to edit their account (change their nickname, password and email) and sign out. An administrator has the authority to edit not only his own account, but also the ones of others.

Game Management

Users are able to start ("host") and join existing games, using an identifier made up of at least 4 characters. Doing so they will be placed in a game lobby, in which they can see the other participants and the rules of the game to be played. The user who started the lobby will have additional privileges, like for example changing the seat position of the players, or editing the rules. Furthermore this host user has a special icon next to them, indicating to all other players that they are indeed the host. If a host leaves, another player of the lobby will be selected as host. If no other player is left, the game will be deleted.

Playing games

Users are able to play the implemented games (at this point in time the social deduction game "Werewolf") using a simple and intuitive interface. They only have to use their phone as a supplement to the overall gameplay, it is not supposed to distract them during the process of playing, but rather enhance it. Logs provide additional information on what has already happened, and an information section provides them with further details about their role. Using a voting component which is easily reusable for different types of votes they can make selections on different subjects.

Other

Extendability

ParlorPlace was built with extendability in mind; implementing new games or roles is an easy process and takes way less time than implementing these approaches from scratch!

Translation

ParlorPlace makes use of a central file that stores almost all the strings used. Translating this file into your local language allows for new display languages!

Guides

We provide you with a Guide on how to create new Characters for Werewolf, which should serve as a starting point of creating new roles. If you want to create a new role, we would ask you to create a pull request, which will then undergo closer examination. Thank you for your help!

Prerequisites

  • Open JDK 16.0.2 with Spring Boot 2.5.2
  • Angular 12 with Material Design 12

Changelog

To see a changelog regarding the different versions of the application, see Changelog

parlorplace's People

Contributors

felixschoen avatar

Stargazers

 avatar

Watchers

 avatar

Forkers

sgaurav37533

parlorplace's Issues

Combine roles in frontend

In GitLab by @FelixSchoen on Aug 5, 2021, 02:47

Summary

In order to improve visuals and reduce clutter, we want to combine roles in the selection to only show one chip per role, including its occurences

Create test system

In GitLab by @FelixSchoen on Jul 9, 2021, 24:16

Summary

We want to create a test system with which we can test the program, this includes creating test data.

Improve vote functionality

In GitLab by @FelixSchoen on Aug 16, 2021, 21:11

Summary

We want to improve upon the vote functionality by fixing some issues and changing the frontend interface once the vote has concluded

Change vote to use voteable

In GitLab by @FelixSchoen on Aug 11, 2021, 11:16

Summary

We want to change the vote process to use a list of voteable objects rather than fixed ones, in order to allow for votes on different types of objects

WebSocket test fails in IntelliJ

In GitLab by @FelixSchoen on Aug 5, 2021, 24:08

Summary

Test

sendMessage_ToSpecificUsers_ResultsInUsersReceiveMessages

fails only in IntelliJ, not when executing in using Maven. This could be a potential bug, and will be ignored for now.

Implement Vote Service

In GitLab by @FelixSchoen on Aug 8, 2021, 14:50

Summary

We want to implement a generic vote service, which allows to collect a vote result of the different players, initiated by the game moderator

Implement end of game

In GitLab by @FelixSchoen on Aug 23, 2021, 11:06

Summary

Implement functionality to mark the end of a game, since at the moment empty votes will be started.

Add validation

In GitLab by @FelixSchoen on Jul 9, 2021, 24:18

Summary

We want to add a validation system for the used entities and objects

Implement small changes

In GitLab by @FelixSchoen on Aug 23, 2021, 17:08

Summary

Implement small changes to how logs and vote are shown, and update the readme of the project.

Incorporate feedback from review

In GitLab by @FelixSchoen on Jul 23, 2021, 18:12

Summary

Backend

  • Rename signin / signup
  • Replace Promise with CompleteableFuture
  • Make Game generic, use generics for Players and RuleSet
  • Change database folder to root folder of project
  • JwtUtil: Change exception handling, also log exception
  • Message util: Create class containing static final constant Strings representing the different explanations
  • GameService:
    • Fix prototype annotation to singleton
    • Change switch statement to map containing entries for games
    • Change thrown exception to e.g. NotImplementedException
  • Change in-memory behaviour of active games to persisting them
  • GameIdentifier change random to nextInt(lenght)
  • LobbyChangeDTO: Create endpoint, own methods for each type instead of adding serialization of which object
  • Correctly rename "persistance" to "persistence"
  • Optimize imports
  • Note: Change way of obfuscation
  • Note: Refactor vote functionality to own service
  • Note: Websocket security: Enable same origin policy, make specific endpoints available

Frontend

  • Format methods into more readable style
  • Change Utility class, only export function
  • Change routing to use additional wildcard instead of hardcoding game
  • Use route nesting
  • Refactor authentication into a single folder
  • AuthService: Use timer instead of checking every second
  • Make GameService abstract and generic
  • TokenService: Remove unnecessary deleting of tokens
  • Change subscribe to new style
  • Change globals to environment
  • Note: Stomp.over is deprecated
  • Note: Content projection for templates

Change way of obfuscation

In GitLab by @FelixSchoen on Aug 4, 2021, 16:33

Summary

We want to provide a sensible way of removing sensitive information from DTOs, that can be extended to different types of objects.

Setup git

In GitLab by @FelixSchoen on Jul 6, 2021, 15:42

Summary

Setup GitLab project, issues and groundwork for the wiki

Edit user profiles

In GitLab by @FelixSchoen on Jul 14, 2021, 09:28

Summary

As a user I want to be able to edit my own profile. As an admin I want to be able to edit the profile of others.

Implement dark mode

In GitLab by @FelixSchoen on Jul 16, 2021, 24:07

Summary

We want to implement a conventient method of determining whether the dark or light mode should be used

Add user sign in

In GitLab by @FelixSchoen on Jul 8, 2021, 14:07

Summary

As a user I want to be able to sign into my account in order to access user specific functions.

Document project proposal

In GitLab by @FelixSchoen on Jul 6, 2021, 15:20

Summary

Create project proposal containing general idea and time requirement analysis. Analyze commonalities between different social deduction games.

Add logo

In GitLab by @FelixSchoen on Jul 6, 2021, 15:14

Summary

Create a logo for the plattform. Subject to change.

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.