Inspiration
There exist solutions to block screen time from distractions, on many different platforms - but there hasn't been an overarching service that will do it across all of your devices.
What it does
It can block any service you desire according to a schedule, or by your manual choosing (toggle whenever you want).
How we built it
I created a Rust-based DNS over HTTPS server and integrated it with a Go-based database and user management system, which handles the rule scheduling and proxying of requests. The frontend is Vue and Vite based, and the hardware is based on C++. The mobile app is based on Ionic.
Challenges we ran into
Proper parsing of DNS packets was very difficult to handle correctly as well as proxying to a recursive backend DNS server. in addition the scheduling rules can be quite complicated.
Accomplishments that we're proud of
Developing on the embedded ESP32 and creating a mobile app in the short time span was my biggest achievement. The rust DNS proxying backend was easy compared to C++ embedded/mobile programming.
What we learned
I learned that Apple can never adhere to the spec for any RFC created.
What's next for FocusGuardian
It will actually launch as a service for anyone to use!
Built With
- c++
- dns
- embedded
- esp32
- go
- ionic
- javascript
- platformio
- pocketbase
- rust
- tailwind
- typescript
- vue
Log in or sign up for Devpost to join the conversation.