At the end of 2022 I had scheduled vacation days, but plans fell through and I found myself with extra time to kill. I generally do better when I have something to keep me out of trouble, so I built a web application.
With the new year rapidly approaching I was starting to think about goals that I had for 2023 and how to track them. I again wanted to do 10,000 sit ups and 10,000 pushups over the year. Also, my Wife and I wanted to go on 150 walks together. In addition to goals, I also wanted track other things such as the books I read and the number of days I played guitar. The hope was by doing those things I’d be a better person by the next December.
For those who might be interested in the basic architecture, here’s a summary of the various pieces I built and/or assembled:
- I have a “december-back” repository on Github (currently the repository is private) which does most of the work for the service. I wrote that in Golang.
- I have a “december-front” repository on Github (currently the repository is private) which provides the web user interface for the service. I wrote that in JavaScript/TypeScript using React.
- The “december-front” project is built using npm and the resulting artifacts are stored in an AWS S3 bucket and delivered via Cloudfront.
- The “december-back” project is packaged into a Docker image and published to a registry via a Github action.
- Docker containers are spun up in AWS ECS (Elastic Container Service) on Fargate.
- Route53 on AWS takes care of domain registration for betterbydecember.com and also provides all the DNS goodness and ensures requests are correctly directed to the front or back end.
- An EC2 Load Application Load Balancer can direct traffic to one of two different regions and also takes care of all the https certificate goodness.
- All the data is stored in a DataStax Astra database since it’s “a database I want to use“.
The web app is available at https://www.betterbydecember.com/ and anybody can try it out. It’s been over a year since the basic functionality was complete and I started using it to track my progress. I met my 2023 goals and feel like I became Better by December. Now that 2024 is in full swing, I’ve set new goals and am actively working towards becoming Better by December.
One thought on “Better by December”
Comments are closed.