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

Share this project:

Updates