Skip to content

Megakuul/zen

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

53 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Zen

Zen is an application for structuring your daily routine.

zen-logo

Note

Zen has no feature to read your mind yet; therefore, cheating your way up the leaderboard is possible. However, keep in mind that doing so does not outsmart the developers, but yourself.

Deployment

Tool prerequisites:

  • pulumi
  • go
  • npm/nodejs
  • awscli

AWS prerequisites:

  • Create a route53 public hosted zone for your domains if you want monk to automatically setup all required records.
  • To make the Email verification work correctly your AWS account must be unsandboxed from SES.

The deployment of zen is facilitated via monk 🪬, a tiny cli tool that wraps the underlying pulumi process which builds and deploys the software. The process is interactive, so the only command you ever need (for both deployment and upgrades) is this:

go run cmd/monk/monk.go

Important

If you are not me, you should change the privacy policy and terms of service before deploying.

Technical Information


Zen was built to solve a specific problem while running on high available but extremly low-cost cloud-infrastructure. This comes with certain drawbacks:

  • Zen is based on various eventually consistent mechanisms (e.g. timing updates from the weekend might be added to next weeks leaderboard). Certain operations might seem to be magically swallowed or disappear in hyperedgecases.
  • The leaderboard cannot be queried server-side; you must load the full json and sort it client-side (+ the json is aggressively cached by cloudfront).

For this particular scope, this is totally fine; however, please do NOT take this as an example or argument of how to correctly implement business-critical software!

About

🗓️ reward based calendar to structure your day

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published