BeSafe
Parental Control System
THE CHALLENGE
The Problem
Existing parental control tools are either paid subscription services or require invasive MDM enrollment. The goal was to explore building a self-hosted, end-to-end solution that gives parents real-time visibility and control over a child's Android device from a desktop app, without relying on third-party services.
ENGINEERING APPROACH
My Approach
I built BeSafe as a three-component system. The Node.js backend handles family account registration, a time-limited device pairing system (PairingCode model with expiry), JWT-authenticated REST routes for device and command management, and a Socket.IO layer that keeps parent and child sockets identified by family ID and device ID. The parent Flutter desktop app provides device listing with live online/offline/tamper indicators, a device details screen where parents can configure an app allowlist and toggle instant lock, and a pairing code generator. The Android child agent is a persistent Flutter background service that sends regular heartbeats, maintains a WebSocket connection, and enforces the parent-defined allowlist — blocking any app not on the approved list and surfacing a lock screen on command.
OUTCOME & IMPACT
Outcome & Deliverables
The system was completed as a full working prototype demonstrating real-time parent-child device communication, remote app blocking, and instant lock via the command queue pattern. No metric available.