Steps to get there

  1. Build the local UI with a dummy connection to be able to test out the app and feel
    • Goals
      • Verify the idea is a good one
      • Helps us start from the user experience rather than from an abstract idea
      • Helps in creating a dummy server emulator that will help with unit testing and the like
  2. Build a dockerized and unit testable Go server
    • Goals
      • Makes sure our server is portable
      • Lets us build a unit testable and solid foundation for the follow up work
      • Lets us learn Go without having to worry about client side issues versus server issues
  3. Have it serve and function with the client-code and iron out any bugs there might be
    • Goals
      • This is where we can actually get a product that we can selfhost
      • It might also be where there are a lot of challenges and learning since we won't immediately know when its the server versus the client that failed
      • No exiting this stage before having a solid product that you tend to use everyday. If you won't use it everyday, then noone will
  4. Scale the go solution
    • Goals
      • This will require a lot of time.
      • Goal is to have three instances load balance me
      • If that works scaling should be good enough to start testing with real people
  5. Sit back and enjoy your product