34 LiveCoding sessions left until Snowcase 2020
Web application for the PHUCIT Challenge:
A week filled with challenges to make your Snowcase holiday even more memorable.
I will mostly be live-coding my working on this project. You can follow along and rewatch recent past broadcast over at my Twitch channel.
- Learn new stuff (about Kotlin, Vue, other testing frameworks maybe, ...)
- Prove to myself that I can incrementally architect from a monolith to hexagonal (because I have the tendency to over design architectures)
Check out the diagrams.
Backend will be a SpringBoot web application built in Kotlin.
Frontend will be a VueJS app.
SpringBoot web app both serves the REST API, and the VueJS app.
We'll start off by building a monolith (with an attempt at keeping it modular).
See CaptainsLog for more Lightweight ADR's
Needs to run on mobile devices, no plans on compiling for native devices.
In quotes because it's not exactly a proper pipeline, I guess.
After successful build:
git merge prodgit checkout prodgit merge mastergit push
This will trigger a TravisCI build for the prod branch, which will then
- create a docker image,
- push it to the heroku docker registry,
- and execute heroku's release phase via the Heroku API (aka a curl command)
All Heroku properties are accessible as environment variables in the docker container.
$DATABASE_URL: supplied by Heroku when you use the postgres add-on. Contains weird looking url (which isn't a jdbc url). So we parse it (in execJava.sh)$PORT: you need to have the springboot app use this variable, otherwise Heroku won't be able to forward http requests to it (and it'll actually crash).
heroku logs -a effit-challenge --tail