Coder Social home page Coder Social logo

frdnspnzr / meeple-party Goto Github PK

View Code? Open in Web Editor NEW
0.0 1.0 2.0 3.6 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 Introduction

It's about boardgames! On Meeple Party you can connect with your friends, browse their game collections and simply mark every game you want to play. Meeple Party then does the work of looking through all your friend's collections and what they want to play to tell you what everybody's up for. Don't worry, if you already have your collection on BoardGameGeek you can import it.

If you just want to use Meeple Party go to https://meeple.party and create an account. It's the instance hosted by me, the developer, and free for all.

If you want to host your own instance of Meeple Party go ahead! It's a Next.JS application and they have extensive documentation on deploying. You will still need some infrastructure though. See the Hosting Meeple Party yourself section in the Wiki.

Goals

Meeple Party was created after I found out a friend of mine owned a game I was dying to play for literal years. I have never checked out his whole shelve and I never brought it up in conversation. We both however had the necessary information in our BoardGameGeek accounts: The game was in his collection as Owned and in my collection as Want To Play.

So I asked myself why we weren't just presented with this information. And that was the basic idea of Meeple Party. The base functionality does nothing but check my whole circle of friends for games somebody owns and enough people want to play to get it going and just ... tells me. Without any further work, without checking everybodys profile, without asking in countless group chats about every game I'd like to play.

I don't want Meeple Party to become Yet another social network but it's about board games. I have Mastodon, BoardGameGeek, Reddit and Unknowns to talk to strangers about board games and I really enjoy it most of the times. So Meeple Party should just be about me and my friends and empower us to get games to the table we would have otherwise missed. Every feature added should add to this simple goal.

Roadmap

Planned features

Vision

  • A full-featured notification system to be notified of my friends acquisitions, friend requests, group invites and so on.
  • Game night organization with invitations and game voting. Possibly with publicly shareable links so people that are not registered on Meeple Party can participate in the voting.
  • Pitching games to friends by writing a few sentences and showing them prominently in my friends feed (kind of similar to Steam reviews). I don't want this to end up as a full-featured review system so it will have sensible limitations.

Contributing

The easiest way of helping Meeple Party get better is contributing to the community here on GitHub. If you notice something not working open an issue for it. If you wish something worked differently open an issue or create a thread in the discussions.

If you want to get a bit more involved feel free to send pull requests my way. If there's already an issue for the thing you want to change it's best to assign yourself to the issue so nobody else does the same. Also please only assign yourself to issues you're actually willing to work on. If it's an extensive change you didn't discuss beforehand expect me to take a little while to review and think about it and maybe also not like it that much.

meeple-party's People

Contributors

frdnspnzr avatar dependabot[bot] avatar

Watchers

 avatar

Forkers

nee-shar donwung

meeple-party's Issues

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.

Limit image optimization

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

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

Enhance user profiles

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

  • Bio
  • Place

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.

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)

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").

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)

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.

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

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.

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

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.

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.

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.

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.

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

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

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.

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.

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.

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.

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 friend overview

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

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.