SmartDesk
A hardware device with website to track how much time someone spends at their desk.
This was a project for my first year MCT where we had to make a hardware device that gathers and stores data that is viewable on a website.
The backend is made in FastAPI (Python) that is connected to a MySQL database. The frontend is made in Vanilla JS. De site is hosted on a Raspberry Pi (Apache for frontend and Uvicorn for backend). I have also used a variety of different sensors like a Time of Flight, Ultrasonic Sensor and an RFID sensor.
My idea was to make a device that could help a person to take more breaks and to stand more to become healthier. SmartDesk could let you know, through visual and auditory stimuli, to stand up or take a break. It could also automatically change the height of your desk (if you enabled this in the settings). You can configure standing height, sitting height, time until break, if it should move the desk or just let you know.
On the dashboard you can see graphs about your total time spent sitting/standing. You can also move the desk and change settings.
I also made a fully-fledged login system for both the physical device and the website. You can always login with your account on the website and see your stats and see that another person is at the desk for example. Every user also has a badge that they can use to start measuring the data for them, just one tap against the device and you’re logged in. To register a new user, you have to link the badge with your account so you have to scan your badge and a pairing code appears that you have to type into the website to link it to your account.
I have learned a lot in this project on how to make a project from the first design phase all the way to the end, including documentation. I also learned how to integrate electronics with a backend and make it all come together into a working product.