Code Monkey home page Code Monkey logo

codex-card-time-web's Introduction

codex-card-time-web

A visual UI for non-rules enforced game state tracking of games of Codex: Card Time Strategy by David Sirlin (https://sirlingames.com/codex)

To run client

  • cd client/codex-ui
  • npm install && npm start (or use yarn like the client/codex-ui/README.md says, that's cool too)

To run the auth service

  • cd codex-auth
  • ./gradlew run
  • Test server, copy and paste this command into your terminal:
curl --location --request POST 'localhost:8080/login' \
--header 'Content-Type: application/json' \
--data-raw '{
    "username": "sherlock",
    "password": "password"
}'\
  • The test should return something like:
{"username":"sherlock","access_token":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJzaGVybG9jayIsIm5iZiI6MTYxODI4Mzg0NSwicm9sZXMiOltdLCJpc3MiOiJjb2RleC1hdXRoIiwiZXhwIjoxNjE4Mjg3NDQ1LCJpYXQiOjE2MTgyODM4NDV9.vyp0d1sXbbItidkOob0dG4Ro7W2U3TZkLO3r9RpRNs0","token_type":"Bearer","expires_in":3600}

codex-card-time-web's People

Contributors

mnpkoerner avatar willbuck avatar

Watchers

 avatar  avatar

codex-card-time-web's Issues

Build initial game GET api

We'll need a service to return the:

  • List of active games (not finished)
  • Detail of a given game (board / card / gold states, turn history / current turn, etc)

This should respond to current JWT token with some information blocked from sending, depending on the privacy settings of the game & who the current user is relative to the game (player or spectator).

Find a suitable host

We'll need somewhere to deploy the front and backend for public use

We'll want to hook up CI/CD to that place to deploy new builds as things are merged to the main branch (separate issue for CI/CD)

Open to ideas on where (AWS, GCP, Azure, something else?)

Get CI build working

We want any merge to main to run:

  • Jest tests for the frontend
  • all backend tests (gradle + kotest or anything else that gets added)

Need storage solution

We'll want a database to store things like:

  • Users
  • User tokens
  • Games (active and finished)
  • Statistics

This will require both:

  • Something local to the repo to use for dev purposes
  • Something in the deployed environment (separate issue)

do we need intellij?

No, I will document how to run from CLI agnostic of editor.

Community edition might be nice for doing kotlin dev tho

Implement OpenID JWT Authentication

We'd like to have users authenticate with the application, so that we can know:

  • who's playing which games?
  • What are / aren't they allowed to see?
  • What's their statistics over time (perhaps broken down by opponent, by deck choices, by side selection P1/2 etc)

We'd like to use OpenID to allow for users to log in via their existing accounts w/ major OpenID authenticators (Google to start, Github Facebook Twitter ??? eventually)

We'll need to, as a part of that process:

  • Store the user (so we need an issue for storage)
  • Maybe email that sends user notifications? (separate issue, not high priority)
  • Login Form ( could break that into another smaller issue)
  • Backend OpenID auth (could use Firebase? Could use somethin else? could use the micronaut app we have and this guide)"

Let's break those up and work on them

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.