Skip to content

Repository files navigation

ParentControl

ParentControl

🇬🇧 English | 🇷🇺 Русский

Track your child's activity, set limits, and ensure online safety

Download APK


⚠️ Project Status

Demo version — Supabase backend is currently disabled.

🔴 What doesn't work:

  • ❌ Authentication and registration
  • ❌ Device synchronization
  • ❌ Activity data retrieval
  • ❌ Cloud settings storage

🟢 What works:

  • ✅ 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).


✨ Features

📱 Device Management

  • Link child devices via unique pairing code
  • List of all linked devices with online status indicator
  • Instant device lock/unlock
  • Unlink device from account

📊 Activity Analytics

  • 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

📜 Event Timeline

  • 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

📸 Screen Screenshots

  • Screenshot gallery in grid view
  • Fullscreen preview with timestamp
  • Automatic loading via Glide with caching

⚙️ Flexible Settings

  • 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

👤 Account & Security

  • Email/password registration and login
  • Password recovery
  • User profile
  • Theme switching (light / dark / system)
  • App cache clearing

🛠️ Technology Stack

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)

📁 Project Structure

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)

🚀 Installation and Setup

Requirements

  • Android Studio (Arctic Fox or later)
  • JDK 11+
  • Min SDK 21 (Android 5.0)
  • Supabase account

Steps

  1. Clone the repository:

    git clone https://github.com/KuiYL/ParentControlApp.git
  2. 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_device for device pairing
  3. 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";
  4. Open the project in Android Studio and run on a device or emulator.


📐 Architecture

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

🔑 Key Supabase Endpoints

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

📄 License

This project is distributed under the MIT License. See the LICENSE file for details.


👩‍💻 Author

Part of the ParentControl ecosystem:

  • 📱 Android App — parent's dashboard
  • 💻 PC agent — child's device monitor

About

Android app for parental control - track child's screen time, set limits, block apps & websites, and view screenshots. Built with Java + Supabase.

Topics

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages