isthemunibusy-go

command module
v0.0.0-...-89780f9 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Feb 16, 2021 License: MIT Imports: 10 Imported by: 0

README

isthemunibusy-go

This was originally a project to predict how crowded the muni trains would be, but given the current circumstances with COVID-19, I have decided to pivot this project to be a feature test admin tool.

Features

  • Create a new feature test (DONE)
    • Name
    • Start date
    • End date
    • Variants[]
      • Name
      • Percentage
      • Is control?
  • Delete an existing feature test (DONE)
    • Cascade to feature test variants
    • Cascade to users with those test variants
  • Update an existing feature test (DONE)
    • Name
    • End date
  • Create a feature test variant (DONE)
    • Name
    • Percentage
    • Is control?
  • Update a feature test variant (DONE)
    • Name
    • Percentage
    • Is control?
  • Delete a feature test variant (DONE)
    • Cascade to users with that test variant
  • List user test variants (DONE)
  • List feature tests (DONE)
  • List feature test variants (DONE)
  • Assign users to a test variant (create user test variant) (DONE)
  • Change test variants for a user (update user test variant) (DONE)
  • Delete user test variant (DONE)
  • Only allow changes to feature test variant id for user feature test variant update (DONE)
  • Better error messages for constraint violations (DONE)

DB:

  • check constraint on test variant percentage sum <= 100 (DONE)
  • check constraint on test variants for a test only having one row is_control = true
    • insert (DONE)
    • update (leaving alone for now)

How to run locally

Navigate to the go repo directory (go\src\github.com\hwangm\isthemunibusy-go) In a terminal window, run go run .\main.go.

To restart, Ctrl-C and re-run.

Notes

  • graphql DateTime field expects an input like "2020-05-05T00:00:00Z". It's pretty picky about the time formatting.

  • 2/15/2021: added a websocket handler at "ws://localhost:8080/websocket" to test notification service. React app currently configured to auto-connect to this WS endpoint. Incoming messages will be printed in stdout, then sleep for 5 seconds and send a message to the client.

Documentation

The Go Gopher

There is no documentation for this package.

Directories

Path Synopsis

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL