Inspiration
As a group, we all kind of just looked at each other and noticed all of our terrible postures. Our necks were all bent forwards and none of us actually sit properly in our chairs (bum–to-very-EDGE-of-chair). While taking a break, we were half-jokingly looking up the health DETRIMENTS of our sitting postures, and realized that this was a bigger (& more common) problem than we initially thought. Upon additional market research, we shortly discovered that a lot–& I mean A LOT–of people experience long term health problems due to this overlooked problem. We wanted to create a product where people can get straight into it; no complicated dashboards, no extensive onboarding, and no giant paywalls. Slouch free productivity made easy.
What it does
Web-app - You can toggle between the timer version or the unlimited "free-form" session. The timer mode essentially allows the user to set a time (their goal), and receive notifications and/or live buzzer feedback whenever they slouch. The free-form session, when toggled, has the same function, but without the timer for those wanting long, uninterrupted work sessions. Imagine pomodoro, but with an angry buzzer reminding you of your 90 degree neck bend.
Hardware: MLH starter kit - we've used the accelerometer to decipher spatial/localization changes whenever you move your neck (slouching). When this is detected, the buzzer would then buzz/vibrate in order to remind the users that they're posture is going off-track. If this buzzing is too annoying (we get it, no hard feelings), users can customize their settings by turning this feature off, opting in for screen notifications, or whatever else works for them.
How we built it
The frontend was made with HTML, CSS, Styled Components, and JavaScript + React. For calibration and posture monitoring, HTTP requests are issued to a backend REST API created with ExpressJS.
The backend is responsible for communicating with the arduino board via its serial port, uploading inbound accelerometer data to a time-series database called InfluxDB. Whenever the frontend requests posture logs, the most recent data points are returned to the client in chronological order. Calibration requests will have the backend aggregate the last 10 seconds of accelerometer data and returns their mean value, which serves as the reference point used to detect slouching.
The hardware consists of an Arduino 101 board mounted with a base shield that have 3 peripherals mounted:
- accelerometer via I2C
- audio buzzer via an analog port
- button via a digital port
Finally, an arduino script was created to publish real-time accelerometer data to the Express backend. Calibration points are recorded in a struct, which is used to calculate large deviations in the x- and z-axes. When such movement is detected, the board triggers the buzzer to go off, indicating to the user that they are slouching.
Challenges we ran into
Honestly, learning about hardware application from scratch and making sure our design felt extremely simple, but yet–felt sophisticated.
Accomplishments that we're proud of
As a group, dealing with hardware was new to all of us previously to this hackathon. We decided to go with hardware purely as a learning experience, but we're immensely proud of how it came out. One of our initial concerns was producing a product that felt clunky and overly-complicated as we're all allocating so much time actually learning about how our hardware work. To combat this, we've intentionally kept our frontend design very slick, user-friendly, and easy to use; while our backend system still had that wow-factor suitable for a hackathon. We're really proud of producing a product that blends best of both worlds, leveraging all of our unique skill sets.
What we learned
That slouching is REALLY detrimental to your health. More than you'd think. Like seriously.
What's next for slouchii
In terms of future features on the product roadmap, we'd be all-in-ing on improving overall user experience (duh!).
For low hanging fruit, we can finish flushing out the pomodoro-esque feature set, so users can greatly boost their productivity while having timed breaks.
Proceeding on–although we used the MLH grove starter kit as the hardware, we'd ideally transition onto using more sophisticated hardware for a better experience (I.e. look into how we can integrate with motion sensors within headphones & send haptic feedback via their smartwatches). Lastly, we talked about integrating with people's google calendars, allowing sessions to automatically start depending on your scheduled meetings–for a completely hands-off seamless experience.
This is really just the beginning and we're super excited for what's to come!
Built With
- arduino
- components
- css)
- db
- express.js
- figma
- influx
- java
- javascript
- node.js
- react
- script
- style

Log in or sign up for Devpost to join the conversation.