Giter Site home page Giter Site logo

frdnspnzr / meeple-party Goto Github PK

View Code? Open in Web Editor NEW
0.0 0.0 2.0 3.82 MB

An easy to use tool to see what board games your friends would like to play

Home Page: https://meeple.party

License: GNU General Public License v3.0

CSS 4.32% TypeScript 94.73% JavaScript 0.66% SCSS 0.29%

meeple-party's People

Contributors

dependabot[bot] avatar frdnspnzr avatar

Watchers

 avatar

Forkers

nee-shar donwung

meeple-party's Issues

Game box not clickable for games without image

See for example this game. When searching for "carcassonne" its one of the first results (according to the new sort order implemented in #33) as most results don't have a BGG ranking and it's the first alphabetically.

Game search

It must be possible to search for games via name. It must be possible to add games to the collection by searching for them.

Nice-to-have features are:

  • Instant search while typing
  • Fuzzy Search
  • Search via BGG ID
  • Search via BGG Link

Make displaying solo games optional

The dashboard shows all games marked as Want To Play that allow solo play as playable. This may or may not be what a user expects or deems useful so it should be configurable.

Invite code system

To allow for a smooth soft rollout Meeple Party should support an invite code system so I can control how many people can create accounts.

Prefetch friend collection data for my collections

Currenty, every GameBox sends an API request to fetch what friends of mine have the game in their collection. It should allow to prefetch that data similarly to my own collections and the game data itself so the collection query can select the whole lot at once.

Relevant pages:

  • Dashboard
  • Game collection
  • Game search

Add friend overview

The friends activity page is currently empty. There should be a list of all my friends with their latest collection status changes.

Unified error handling

The error handling is currently repeated throughout many components and in most cases hardly appropriate. There should be a single system in place to allow me to quickly handle errors in a consistent way.

This concerns the API as well as the frontend.

Gather additional game information

Some game information would greatly enhance user experience when finally able to sort and filter games. Possible candidates I'd personally find useful are:

  • Extension (Meeple Party currently shows extensions as normal games)
  • Coop game (on BGG under Mechanism)
  • Services with digital implementations available (on BGG under Family)

Optimize game search

The game search in its current implementation is not only slow but also creates a whole lot of database connections at once putting enormous pressure on the database server.

Support multiple accounts sharing a single collection

Households sharing a game collection with multiple accounts should not need to maintain their collections individually, but should be able to set their Want To Play status individually. I'm not sure about the wishlist, though.

This is made a bit easier with #25 as multiple Meeple Party users could import the Owned status from a single BGG account but manage their Want To Play and Wishlist on Meeple Party. That won't work for people not mainting their BGG collection or in some other situations.

I'm not sure yet how this should be implemented. I'm mostly concerned about the UX here, as I don't yet have a concept how this should be configured and maintained.

Account deletion

Users should be able to delete their accounts on demand. All user data should be deleted. Where not technically feasible the data should be overwritten. No user data should remain.

Customize Auth look and behaviour

Currently only the default pages and E-Mail from NextAuth are configured. Not only should the looks be consistent, it should also use consistent lingo (eg "sign in" vs "log in").

Limit image optimization

Most images used do not need optimization on our side as they are served from the fast BGG image CDN.

Optimize search results

The search results for vague terms are borderline useless. For example, the term "carcassonne" does not find the actual game with that name.
image

Mobile-friendly design

Missing:

  • Secondary navigation
  • Game collections
  • Game collection pagination
  • BGG Import
  • Front page
  • Game search: Error message should be full width
  • Game search: Game boxes not centered
  • iOS tinting

Dashboard

The Dashboard currently shows only some placeholder text. It has to answer the following questions:

  • What friends own games I want to play (and what are those games)?
  • What friends do want to play games I own (and what are those games)?

Adding more features later on should always keep the Dashboard in mind and make it more useful over time.

Filterable and sortable game collections

Most game collections should be filterable and sortable using various options.

Filter options should include:

  • Player count (Including presets "Solo" for pure solo games, "Playable solo" for games with solo options and "Multiplayer" for everything but pure solo games)
  • Playing time
  • Weight (Including presets like "Light" for <= 1.5 and "Medium heavy" for 3.5-4.
  • My own collection status

Sorting options should include:

  • Name
  • Min player count
  • Max player count
  • Playing time
  • Weight
  • Number of friends with status (either own, want to play or wishlist)
  • Number of friends that have this game in their collection (any status)

Excluded from these options are:

  • Favorite games on profile page
  • Possibly search results

Add friends of my friends

The profile page of friends should contain a list of their friends. I need to strike a balance here: On one hand I really don't want Meeple Party to be a social network with ever-increasing friend lists, on the other hand discoverability of friends is an important feature. As social networks are highly clustered this feature may possibly suffice for most cases without exposing to every other user.

Ongoing problems with E-Mail login

The E-Mail login was broken multiple times for multiple users. Unfortunately I can't even pinpoint what exactly goes wrong right now.

  • Verification tokens are never deleted from the database, even though new ones are created and the old ones get invalidated. I'm not sure if this is expected behaviour. I also can't delete them manually as the database table does not have a primary key and my database provider does not support this.
  • One user created their account from a mobile phone and could not log in using their computer even though multiple verification tokens were created. I do not know wether the login e-mails were even sent.
  • One user could not log in to their account after creating it (using the same device to do both). No verficiation tokens were sent even though they were created in the database. Providing the user with a login link using the tokens from the database still did not allow them to log in.

Restore Bootstrap functionality

Updating NextJS removed the ability to load custom header files. As the Bootstrap JS file was loaded in the HTML file the update removed it. This broke various functions of the site.

BGG import configuration

The import configuration step currently does not actually call for an import configuration. These things should be configurable:

  • Type of import
    • Update: What's in Meeple Party is kept and everything in BGG that's more than that is synced
    • Merge: For games that are in the collection on Meeple Party and BGG the status from BGG is fetched. For games that are only on Meeple Party the status is kept. For games that are only on BGG the status is transfered to Meeple Party.
    • Overwrite: The Meeple Party collection is deleted and everything is synced new from BGG
  • What games are owned in Meeple Party (Options are Owned and Preordered on BGG)
  • What games are wishlisted in Meeple Party (Options are Want in Trade, Want to Buy, Wishlist and Preordered on BGG)

Enhance user profiles

User profiles must be editable. User profiles should show some additional data, eg:

  • Bio
  • Place

Show games to play together on friend page

The friend page should show games that could be played with that friend. It should follow standard logic for determining what games are playable and should be split into two parts:

  • Games playable at 2 players with just that friend
  • Games playable with that friend that need one ore more additional players to meet the minimum player requirement

Profile page may leak sensitive information for new users

After a user is registered their username is whatever the login provider shows as name. For Google that is the real name. As the username is public information a persons real name is visible on their profile page until after the user completes the onboarding process and had a chance to change their username.

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.