Track your child's activity, set limits, and ensure online safety
Demo version — Supabase backend is currently disabled.
- ❌ Authentication and registration
- ❌ Device synchronization
- ❌ Activity data retrieval
- ❌ Cloud settings storage
- ✅ Application interface
- ✅ Navigation between screens
- ✅ Local theme settings
- ✅ UI component visualization
For full functionality, you need to set up your own Supabase backend (see "Installation and Setup" section).
- Link child devices via unique pairing code
- List of all linked devices with online status indicator
- Instant device lock/unlock
- Unlink device from account
- Detailed statistics — total usage time, number of launches, blocks count
- Pie chart — time distribution by apps (top-7)
- Bar chart — activity by day of the week
- Top apps — list of most used applications with time
- Chronological event feed grouped by days
- Filter by type: apps / web / blocked
- Search by app name or URL
- Paginated data loading with pull-to-refresh
- Screenshot gallery in grid view
- Fullscreen preview with timestamp
- Automatic loading via Glide with caching
- Daily limit — screen time limit (30–480 minutes)
- Night mode — block usage during specified hours
- Content categories — adult content, social networks, games
- Blacklist — block specific apps and domains
- Quick block directly from the activity log
- Email/password registration and login
- Password recovery
- User profile
- Theme switching (light / dark / system)
- App cache clearing
| Category | Technology |
|---|---|
| Language | Java |
| UI | Android SDK, Material Design 3, ViewPager2, Navigation Component |
| Graphics | Custom Views (Canvas), Glide |
| Network | OkHttp3, Gson |
| Backend | Supabase (Auth, REST API, Storage) |
| Architecture | Repository Pattern, MVVM-like structure |
| Animations | Shimmer (skeleton loading) |
com.parentcontrolapp.agent/
├── data/
│ ├── model/ # Data models (Device, Profile, ActivityLog, DeviceRules...)
│ ├── remote/ # SupabaseApi — Supabase REST API integration
│ └── repository/ # Repositories (AuthRepository, DeviceRepository)
├── ui/
│ ├── auth/ # Auth screens (Login, Register, ForgotPassword)
│ ├── main/ # Main screens (Devices, DeviceDetails, Profile, Settings)
│ ├── tabs/ # Device tabs (Activity, Timeline, Screenshots, Settings)
│ ├── adapters/ # RecyclerView adapters and list models
│ └── custom/ # Custom Views (PieChartView, BarChartView)
└── utils/ # Utilities (TimeUtils)
- Android Studio (Arctic Fox or later)
- JDK 11+
- Min SDK 21 (Android 5.0)
- Supabase account
-
Clone the repository:
git clone https://github.com/KuiYL/ParentControlApp.git
-
Set up Supabase:
- Create a project at supabase.com
- Create tables:
profiles,devices,device_rules,activity_logs - Create storage bucket
screenshots - Create RPC function
claim_devicefor device pairing
-
Specify your Supabase keys in
SupabaseApi.java:private static final String BASE_URL = "https://YOUR_PROJECT.supabase.co"; private static final String ANON_KEY = "YOUR_ANON_KEY";
-
Open the project in Android Studio and run on a device or emulator.
The project is built following the separation of concerns principle:
┌──────────────┐ ┌──────────────┐ ┌──────────────┐
│ UI Layer │────▶│ Repository │────▶│ Supabase │
│ (Fragments) │ │ Layer │ │ API │
└──────────────┘ └──────┬───────┘ └──────────────┘
│
┌──────▼───────┐
│ DataCache │
│ Manager │
└──────────────┘
- UI — fragments and adapters responsible for display
- Repository — mediator between UI and network, manages cache
- DataCacheManager — local cache based on
SharedPreferences+Gson - SupabaseApi — singleton for all HTTP requests to the backend
| Method | Endpoint | Description |
|---|---|---|
| POST | /auth/v1/signup |
Registration |
| POST | /auth/v1/token |
Login |
| GET | /rest/v1/devices |
List of devices |
| GET | /rest/v1/activity_logs |
Activity logs (with pagination) |
| PATCH | /rest/v1/device_rules |
Update settings |
| POST | /rest/v1/rpc/claim_device |
Link device by code |
This project is distributed under the MIT License. See the LICENSE file for details.
Part of the ParentControl ecosystem:
- 📱 Android App — parent's dashboard
- 💻 PC agent — child's device monitor