Giter Club home page Giter Club logo

nermesterts's People

Contributors

daveshah avatar ericworkman avatar joelbyler avatar mbramson avatar serneum avatar

Stargazers

 avatar

Watchers

 avatar  avatar  avatar  avatar  avatar

nermesterts's Issues

Rebrand

CoverMyTabletop?
CoverMyGames?
Tabletop Roulette?

Give us options and vote

Associate games with users

MVP:

  • Games can be tied to users
  • Users can only delete their own games
  • Games can list how many copies exist across all users

Add the concept of teams

Teams should consist of players
UserGames table should link the team and player to the game
Teams can only see their own games

Make GamePicker idempotent

iex(26)> val = :crypto.hash(:sha256, "2016/10/17") |> Base.encode16
"745CF20C8C37778697493B917C4B9F11BFE8A55B4B1322AE63FABDCB13ABB9D4"
iex(28)> {hash, _} = Integer.parse(val, 16)
{52632510926520334323601098306284332410336972837482672690491232650717471422932,
 ""}
iex(29)> rem hash, 9
2
iex(40)> Date.to_string(DateTime.to_date(DateTime.utc_now()))
"2016-10-17"

Add a feature for multiple groups

The UI should ask how many different games you'd like to play. It should then do its best to evenly divide the players into those groups and pick a game for each one.

  • Add a field? dropdown? for a number of groups
  • Pick one game per group (no duplicates)
  • Assign players to groups? (see Pairmotron)

Refactor Randomizer

See @ericworkman's comment

  • Rename randomizer
  • Make the tests great again
  • Refactor randomizer cause it ain't too pretty (and namespace it better)
In short, this randomizer uses the current year and day of year to as the index of the
list of availablegames to reliably choose the same game for a given day and game list.
I'm not happy with the tests, as I'm not too sure about how to set this up to be tested
reliably (but I barrelled through with it anyway). Paired with @Serneum while doing this.

Add authentication

  • Add usernames and passwords to players
  • Add a "sign up" page
  • Add a "log in" page
  • Remove the "Add a player" link on the main page
  • All 'accounts' are automatically added to the Inactive list as they are created
  • Remove the Delete button from players

Avoid repeat games

I think I've seen Bang as the recommended game several days in a row - nothing against Bang, but it might be good to ensure that today's game is different than yesterday's

Create a "Game Library"

This was a core idea behind NermeSterts and we still don't have it. We need to be able to tie lists of games to teams.

MVP:

  • Games can be marked in / out of the office

Add the concept of users

Feel free to hijack/enhance Players so that we only have one concept to represent people
Add authentication for the users/players

Add a Contributing.md

  • Create a PR for anything that has an actual issue in GitHub
    • Branches should contain the issue ID
  • Commits should have meaningful messages
    • Make commit messages as long as required to convey what was done and why (based on this. Summary

Update the README

  • Add heroku run "mix ecto.migrate" when adding new models
  • Add heroku run "POOL_SIZE=2 mix run priv/repo/seeds.exs" when we need to reseed data (Can 2 become any number up to 18?)
  • Add information on setting up psql:
    • brew install postgres
    • Add information on adding a new superuser in psql: createuser -s admin
    • Set up autostart for psql: mkdir -p ~/Library/LaunchAgents && ln -sfv /usr/local/opt/postgresql/*.plist ~/Library/LaunchAgents
    • Start psql: launchctl load ~/Library/LaunchAgents/homebrew.mxcl.postgresql.plist
  • Add creation/setup of db:
    • mix ecto.create && mix ecto.migrate && mix run priv/repo/seeds.exs

Add Phrase management UI

I seeded the DB with several phrases, but having UI around adding, removing, and updating phrases could be nice.

  • We need to mention that #GAME# is required wherever you want the game name to show up
  • Set has_token based on whether or not #GAME# is present in the string

Add a "guest" feature

Once we add authentication, we need a way to account for people that don't normally play with our group. There should be some sort of "guest" account that can be added multiple times.

  • Add guest account
  • Add an "Add guest" button/link
  • Deactivating a guest removes it completely instead of moving it to the Inactive list

Add "Preferred Players" count

Some games may have a minimum number of players that just feels too low or a maximum that feels too high. We should add a "preferred" count that can take precedence

Store games in the database

MVP:

  • Enter game name, min/max players in UI
  • Read games from the DB

Complete:

  • Add BGG game search
  • Pull game data from BGG

Optional:

  • Read from BGG collections

Create DB tables

Basic DB structure:

  • Teams table
  • Players table
  • Games table
  • PlayerGames table (player ID, team ID, game ID)

We should be able to look at UserGames table to see how many copies of a game exist for the group (Ex: We have 3 copies of Betrayal)

Clear available players after a game takes place

It would be good if people had to mark themselves as active each day to be included in the game that day, making playing a game opt-in rather than opt-out. That could take the form of a "clear players" button that we click after each game.

Add authorization

  • A player may only edit their own info
  • Add an admin user/role
    • admin can delete accounts
    • admin can edit/delete phrases
    • admin can edit/delete games

Depends on #28

Pull user collection data from BGG

  • Users can enter their BGG username in their profile
  • Users have an option (in their profile?) to import collection from BGG
  • Allow users to select which games are actually imported (?)
  • Remember which games have been skipped (?)

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.