Verified Commit db1614b7 authored by justin's avatar justin
Browse files


parent bebedecf
Pipeline #1423 passed with stages
in 7 minutes and 16 seconds
......@@ -8,4 +8,21 @@
# What Is It?
A birthday gift (long-running) for my girlfriend! Boxomon is a cute toy that, when asked, provides an encouraging message, as relayed to you by your favorite pokemon!
A birthday gift, Boxomon is a cute toy that, when asked, provides an encouraging message, as relayed to you by your favorite pokemon!
In its first form, Boxomon was a physical box - 3D printed, it used a TFT touchscreen with an Arduino mini, displaying static images and messages from the Arduino's embedded memory. Some handrolled crypto, a little bit of LabVIEW code, and devboards stitched everything together. Boxomon v0.1 lasted a while, but eventually the wires began to fail, it became unreliable.
Boxomon v0.2 migrated all of this to a more stable form, and modernized it as well. Boxomon became a 2-tier web app with an Angular frontend and a Golang backend, running on Kubernetes. Messages stored in memory, images served from GCS, and audio, all available over the Internet! I rebuilt the physical box using a Raspberry Pi 3 running Rasbian, a new touchscreen, a small audio shield, and a commodity case, and set it up to auto-start Chrome at the correct URL.
With v0.4, Boxomon is now a three-tier app: the same Angular frontend (for now), a new Golang backend, and PostgresQL database. The new changes make Boxomon less confusing (state is stored in a simple database instead of using a complicated heuristic for message ordering), more fun and easy to work on, and take advantage of a few staples of reliable services like gRPC and Prometheus metrics.
# Maybe later
## Minor changes
- [ ] Make the backend healthchecks validate database connectivity
- [ ] Convert the frontend to use make, pull code into top directory similar to go backend instead of all being contained in `frontend/`
- [ ] Make an easy tool to add messages or images, and rework how the next image is picked (only consider messages and images used within the past _ days, not all time)
## Major changes
- [ ] Build in a concept of identity - assign potential messages and images to users, require some form of authn, probably oauth2
- [ ] Refactor the frontend to use lateral gRPC instead of making a browser HTTP request; remove the backend ingress except for health checks
- [ ] Modernize the frontend with some improved styling
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment