A comprehensive parental control and screen time management system for iOS and iPadOS that enforces a positive use-first model. Children earn recreational screen time by engaging with educational apps first.
Children must spend time in educational apps before unlocking recreational apps (games, YouTube, social media). Parents configure requirements and monitor usage in real-time.
-
Backend (Supabase)
- User authentication and authorization
- Family account management
- Real-time data synchronization
- Screen time rules engine
- Usage tracking and analytics
-
Parent iOS App
- Family management and child device linking
- App categorization (educational vs recreational)
- Screen time rules configuration
- Real-time monitoring dashboard
- Usage reports and analytics
-
Child iOS App
- Educational time tracking
- App enforcement engine
- Progress dashboard
- Parental lock mechanisms
screen-time-balancer/
├── backend/ # Supabase backend configuration
│ ├── supabase/
│ │ └── migrations/ # Database migrations
│ ├── api/ # API documentation
│ └── docs/ # Backend architecture docs
├── ios-parent/ # Parent iOS application
│ └── ScreenTimeParent/
│ ├── App/ # App lifecycle and configuration
│ ├── Features/ # Feature modules
│ ├── Shared/ # Shared components and utilities
│ └── Resources/ # Assets and resources
├── ios-child/ # Child iOS application
│ └── ScreenTimeChild/
│ ├── App/ # App lifecycle and configuration
│ ├── Features/ # Feature modules
│ ├── Shared/ # Shared components and utilities
│ └── Resources/ # Assets and resources
└── docs/ # Project-wide documentation
├── ARCHITECTURE.md # System architecture
├── API.md # API documentation
└── DEPLOYMENT.md # Deployment guide
- Xcode 15.0+ (for iOS development)
- iOS 17.0+ (deployment target)
- Supabase account (free tier available)
- Node.js 18+ (for Supabase CLI)
- Install Supabase CLI:
npm install -g supabase-
Create a Supabase project at supabase.com
-
Initialize Supabase locally:
cd backend
supabase init
supabase link --project-ref YOUR_PROJECT_REF- Run migrations:
supabase db push- Copy the Supabase URL and anon key for iOS app configuration
- Open
ios-parent/ScreenTimeParent.xcodeprojin Xcode - Update
Config.swiftwith your Supabase credentials - Select your development team in signing settings
- Build and run on device or simulator
- Open
ios-child/ScreenTimeChild.xcodeprojin Xcode - Update
Config.swiftwith your Supabase credentials - Select your development team in signing settings
- Build and run on device or simulator
- ✅ Real-time usage monitoring
- ✅ Flexible screen time rules
- ✅ App categorization
- ✅ Remote device control
- ✅ Weekly usage reports
- ✅ Multiple child management
- ✅ Clear progress indicators
- ✅ Educational time tracking
- ✅ Earn-to-play system
- ✅ Age-appropriate interface
- ✅ Secure authentication
- ✅ Real-time synchronization
- ✅ Family account linking
- ✅ Usage data analytics
- ✅ COPPA/GDPR compliant
- End-to-end encryption for sensitive data
- COPPA compliant for children's privacy
- Role-based access control
- Secure family linking with invite codes
- Local data validation with server synchronization
- iOS 17.0+ / iPadOS 17.0+
- Swift 5.9+
- SwiftUI framework
- Screen Time API integration
Both iOS apps include comprehensive unit and integration tests:
# Run Parent app tests
cd ios-parent
xcodebuild test -scheme ScreenTimeParent -destination 'platform=iOS Simulator,name=iPhone 15'
# Run Child app tests
cd ios-child
xcodebuild test -scheme ScreenTimeChild -destination 'platform=iOS Simulator,name=iPhone 15'- Core authentication and family management
- Basic educational time enforcement
- App categorization
- Usage tracking and reporting
- Machine learning for app recommendations
- Gamification and rewards system
- Advanced scheduling (school time, bedtime)
- Integration with educational platforms
- Multi-device enforcement
- Content filtering
Copyright © 2024. All rights reserved.
For issues and questions, please contact support or create an issue in the repository.
Built with ❤️ for families who want balanced screen time