Spend less ⏳ time for way more, ⚖ and manage it all in one space.
🤓 According to Google, butlers are the chief manservant of a house. However, in our case, it -- of course -- is not.
Butler is our take on the "do it all on one-site" ordeal. It uses APIs from big companies, like Google and Microsoft and, for instance, syncs their events --- that you've saved there --- into one, easily understandable calendar. The project was made for the 👽 Year 2222 track, from Eiger, since it felt like their challenge offered us the most leeway. Since their challenge was set in the far future, we took matters into our own hands and created some "imaginary apis" that would -- in this distant new world -- handle interactions with your home or, for instance, bank account.
We use many sites for different purposes, but never one site. It is neither ⚡ energy-efficient to load 15 different sites, just to get your news, the current weather, and a place to go, nor is it good for your 🤒 mental sanity to spend stupendous amounts of time staring at your phone. Imagine this daily routine: you wake up, grab your phone, spend 5 minutes looking at 4 different apps to get up-to-date, then go on with your day --- oh wait, that's how it is nowadays...
We, as students, with how ⌚ time-constrained we already are, -- especially in the mornings, -- cannot afford to spend so much time with such unnecessary things, so we made this ONE (1) site, that'll help us keep in contact with the outside world, without ever stepping a foot outside.
We also believe that the 🏔️ "rift" that has formed between big tech companies nowadays, will only widen as time goes on, so bridging them as soon as we can is the only way to 🛸 "save Earth from its impending tech doom."
Most current solutions to these problems, are either non-existent, or just too obscure to even hear about. I mean, a neat homepage for your browser with fresh information sounds good, right? Why pass up the chance?
- ☁ weather information based on current location
- 📰 news from subscribed sources**
- 💡 recommendations/ideas for activities
- 👀 YouTube video recommendations
- 🥳 search concerts from most listened to artists on Spotify
- 🔌 toggle/setup smart appliances***
** requires the news source to have an RSS link.
*** stub function, does not actually change anything. This is one of those "made in the future apis."
In the future we plan to add a lot more integrations with big tech and implement the current stubs whenever we get access to an API that can do those things.
- ☕ Kotlin
- 🌿 Spring
- 🎶 Spotify
- ☁ Open-Meteo
- 📶 Wigle
- 🗺️ Google Maps
- 📅 Google Calendar
- 📜 Microsoft Graph
- 🎭 YouTube
- 📄 Svelte
- 📰 TypeScript
- 📆 FullCalendar
- 🕸️ page.js
- 🎨 Vite
At least 128Mb of RAM and a CPU fast enough to run Java -- so around 2Ghz -- will be fine --- I guess?
You'll also need a running instance of Gatekeeper and all the tokens that it requires.
Gatekeeper is a central OAuth management platform we made specifically for this project. Its architecture provides us with an easy way to later implement more providers. It is necessary, because it handles identification.
Compiling is as standard as it could be for a Gradle project:
./gradlew build
and execution is just as easy as compilation, with it being:
./gradlew bootRun
Make sure that in your application.properties
file the following values are set:
gatekeeper.host=
gatekeeper.redirect_uri=
gatekeeper.client_id=
gatekeeper.client_secret=
seatgeek.api.client_id=
seatgeek.api.client_secret=
google.api.places.token=
wigle.api.token=
A free Google account should be enough to support low-traffic situations.
❗ If the one you don't have access to is Gatekeeper, then you should give up on running your own instance. Then, you're better off just using our -- hopefully still running -- demo.
👌 If it is either Wigle, Google or Seatgeek, then except some Spring @Value
errors thrown at you, you should be good to go.