GithubHelp home page GithubHelp logo

bash / game-night Goto Github PK

View Code? Open in Web Editor NEW
1.0 1.0 0.0 4.31 MB

Source code for Tau's Game Night website

Home Page: https://game-night.tau.garden/

Makefile 0.61% SCSS 7.20% Rust 80.14% JavaScript 1.40% HTML 10.59% Dockerfile 0.06%

game-night's Introduction

Hi there, I'm Tau. ๐Ÿ‘‹

I'm currently in a very deep rabbit hole trying to bring automatic dark/light detection to terminals and applications running inside terminals.

Some very rough notes can be found in my agenda repository.

game-night's People

Contributors

bash avatar

Watchers

 avatar  avatar

game-night's Issues

Reduce Page Size

The web fonts are quite large, maybe there's something I can do there?

Suppress Auto Responses

  • For microsoft X-Auto-Response-Suppress header
  • Auto-Submitted header should also work for some servers
  • Maybe setting a list-id should also help

Create poll

Admin can create polls which sends out the emails.
Links in email should go to /login-with?token=TOKEN&redirect=ACTUAL_URL for transparent auto-login.

Fixed people per date

Some people might already be there (e.g. roommates)
Either the wording has to be unambiguous or we gate it by using a permission.

Implement polling

Users can participate in a poll

Show details (such as address) in poll.

Generate invitations

  • Users with the role admin can generate invitations
  • Users with the permission can_invite can also generate invitations

Finalize poll

  • [ ] Probably as a subcommand on the CLI
  • [ ] Called by a systemd timer
  • Set up infrastructure for running finalizer periodically
  • Two strategies:
    • fair: Pick random date where participants >= MIN_PARTICIPANTS
    • maximize: Pick a random date where participants >= MIN_PARTICIPANTS and maximize number of participants (cap at MAX_PARTICIPANTS)
  • Eliminate non-fixed people until participants <= MAX_PARTICIPANTS or until there are only fixed people left.
  • Create event
  • Email to invited and eliminated users.
  • [ ] Email to all users if no event has enough participants.

Unsubscribe

  • Unsubscribe indefinitely
  • Unsubscribe until a fixed date

Send email when poll is created

Creating a poll should send out emails. Split off from #8
Links in email should go to /login-with?token=TOKEN&redirect=ACTUAL_URL for transparent auto-login.

Host App Somewhere

Redirect different spellings of game-night to game-night subdomain.
Some that come to mind:

  • gamenight
  • game_night

Prepare Beta ARG

  • Special invitation cards with first hint
  • Print invitation cards

Login

  • Send OTP via email
  • Redirect to login on unauthorized access

Setup Email Sending

  • Design base template for emails
  • Templating (one template for the HTML part and one for the text part)
  • Configure SMTP server and sender in Rocket.toml (or in own config file)
  • Wrap everything in a neat function that accepts subject, recipient, template name, template context and sends a templated email

Auto-login via Token

The emails sent for the poll and when an event is confirmed should include an auto-login token (maybe as a query param?)
Ideally this uses a JWT, so we don't need to store anything in the DB.

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.