Inspiration
In the wake of New Years' and forming resolutions, one major challenge that many people face is the inability to form habits. People tend not to stick to habits when they aren't held accountable by those around them, and it's especially true for the one habit-forming season where virtually nobody actually keeps their word. We figured we could come up with a way by which people are given both intrinsic and extrinsic motivations to keep their habits going.
What it does
Boombox is, in fact, a large white button. After selecting a task and a time limit to complete it, Boombox gives you a bright red countdown timer that ticks away as you race to beat the clock. If you succeed, you get the ultimate catharsis - running over to the button and slamming it down as it turns bright green; your hard work has been duly rewarded. If you fail, the button turns red, but you will of course be given the chance to try again. The button is accompanied by a web application that lets you view your stats: your completed tasks, ongoing habits, and a leaderboard showing you where you rank among your friends. But most importantly, each button features an "online multiplayer" mode allowing you to race against friends in real-time to complete a task and hit the button as soon as possible.
How we built it
The button itself was built with a combination of laser-cut acrylic and 3D-printed parts to contain our hardware components: an ESP32, a large LED ring for light indicators, an IR beam-break sensor for the physical button, and a joystick and small OLED display to control it. On the software side, the web application was built with Node.js and MongoDB in the backend, and Vue.js in the frontend.
Challenges we ran into
Many of the major challenges we ran into were hardware-oriented: connecting the ESP32 to WiFi, communicating with the server, and packing the device into a reasonably small form factor. Of course, given that the entire project revolved around a satisfying button press, one other significant challenge we had to deal with was coming up with a button mechanism that was highly tactile but also consistent and reliable.
Accomplishments that we're proud of
We're proud of the fact that we were able to 3D-model the entire chassis from scratch. We're also proud of our software, especially that on the button itself to fetch tasks from the server and display them.
What we learned
Most of what we did was in line with technical skills we already had, so on that front we didn't learn a whole lot. However, given that we had to pull an all-nighter to finish what we could, I'd say we learned a pretty good lesson about the importance of avoiding feature creep.
What's next for Boombox
A number of our features, while conceptually interesting and very flexible, are rather unpolished and could be improved. The first "next step" would definitely be to clean the project up a bit. Following that, since we only ever managed to build one button, we would have to build another one to truly be able to test some of our multiplayer features.
Built With
- arduino
- esp32
- express.js
- node.js
- vue.js
Log in or sign up for Devpost to join the conversation.