Skip to content

rahulchhabria/kids-scheduler

Repository files navigation

Kids Scheduler - iPadOS App

A playdate scheduling app designed for kids to plan and coordinate activities with their friends, with parental oversight and approval.

Overview

Kids Scheduler is like "Google Workspace for kids" - enabling children to create private groups, share calendars, and book playdates with friends. The app emphasizes safety, parental control, and a kid-friendly user experience.

Features

For Kids

  • πŸ“… Visual calendar to see upcoming playdates
  • πŸ‘₯ Join friend groups (class, sports team, neighborhood)
  • βž• Create playdate invites with activity templates
  • πŸ”” Respond to invitations (Yes/Maybe/No)
  • 🎨 Kid-friendly UI with emoji avatars and large buttons

For Parents

  • πŸ” Google OAuth sign-in
  • πŸ‘Ά Manage multiple child profiles
  • βœ… Approve/decline playdate requests
  • πŸ“ž View parent contact information
  • βš™οΈ Configure group settings and permissions

Safety & Privacy

  • Parent approval required for all playdates
  • Private, invite-only groups
  • No direct messaging between kids
  • COPPA compliance considerations
  • All activity visible to parents

Tech Stack

Frontend

  • Swift + SwiftUI - Native iPadOS development
  • EventKit - Calendar integration
  • Google Sign-In SDK - Authentication

Backend

  • Firebase Auth - Google OAuth authentication
  • Firestore - Real-time NoSQL database
  • Cloud Functions - Backend logic & notifications
  • Firebase Cloud Messaging - Push notifications
  • Firebase Storage - Avatar/photo storage

Project Structure

KidsScheduler/
β”œβ”€β”€ KidsSchedulerApp.swift          # App entry point
β”œβ”€β”€ ContentView.swift               # Root view controller
β”œβ”€β”€ Models/                         # Data models
β”‚   β”œβ”€β”€ User.swift                  # Parent account
β”‚   β”œβ”€β”€ Child.swift                 # Child profile
β”‚   β”œβ”€β”€ Group.swift                 # Friend group
β”‚   └── Playdate.swift              # Event/playdate
β”œβ”€β”€ Views/                          # UI components
β”‚   β”œβ”€β”€ WelcomeView.swift           # Login screen
β”‚   β”œβ”€β”€ ChildProfileSetupView.swift # Onboarding
β”‚   β”œβ”€β”€ MainTabView.swift           # Tab navigation
β”‚   └── ...
β”œβ”€β”€ ViewModels/                     # Business logic
β”‚   └── AuthenticationViewModel.swift
β”œβ”€β”€ Services/                       # Backend services
β”‚   β”œβ”€β”€ AuthenticationService.swift
β”‚   └── FirestoreService.swift
└── Resources/                      # Assets, configs
    └── GoogleService-Info.plist

Getting Started

Prerequisites

  1. Xcode 15+ with iPadOS 16+ SDK
  2. Firebase project (see setup guide)
  3. Google Cloud Console project (for OAuth)
  4. CocoaPods or Swift Package Manager

Installation

  1. Clone the repository:
git clone https://github.com/yourusername/kids-scheduler.git
cd kids-scheduler
  1. Install dependencies:
# Using Swift Package Manager (recommended)
open KidsScheduler.xcodeproj
# Xcode will automatically resolve packages

# OR using CocoaPods
pod install
open KidsScheduler.xcworkspace
  1. Configure Firebase:

    • Follow the guide in config/firebase-setup-guide.md
    • Download GoogleService-Info.plist from Firebase Console
    • Add it to KidsScheduler/Resources/
  2. Set up Google Sign-In:

    • Add REVERSED_CLIENT_ID to URL Types in Xcode
    • See config/firebase-setup-guide.md for details
  3. Run the app:

    • Select iPad simulator or device
    • Press Cmd+R to build and run

Documentation

Development Phases

Phase 1: MVP (8-12 weeks)

  • Project structure and Firebase setup
  • Google OAuth authentication
  • Child profile management
  • Create/join groups with invite codes
  • Basic calendar view
  • Create playdate events
  • RSVP system
  • Parent approval flow

Phase 2: Enhanced Features (6-8 weeks)

  • Push notifications
  • Recurring events
  • Location suggestions/favorites
  • Activity templates
  • Availability preferences
  • Parent-approved photo sharing

Phase 3: Polish (4-6 weeks)

  • iPad split-view support
  • Drag & drop calendar interactions
  • Accessibility improvements
  • Localization
  • Advanced parental controls
  • Analytics dashboard

Security & Compliance

COPPA Compliance

This app is designed for children and must comply with the Children's Online Privacy Protection Act (COPPA):

  • Parental consent required for account creation
  • Minimal data collection
  • No behavioral tracking or advertising
  • Parent can view/delete all child data
  • Privacy policy clearly visible

See FTC COPPA Guidelines

Firebase Security

  • Firestore security rules enforce parent-child relationships
  • All writes require authentication
  • Row-level security on sensitive data
  • No public read access

Testing

Unit Tests

# Run unit tests
xcodebuild test -scheme KidsScheduler -destination 'platform=iOS Simulator,name=iPad Pro (12.9-inch) (6th generation)'

UI Tests

# Run UI tests
xcodebuild test -scheme KidsSchedulerUITests -destination 'platform=iOS Simulator,name=iPad Pro (12.9-inch) (6th generation)'

Contributing

This is a private project, but contributions are welcome! Please:

  1. Fork the repository
  2. Create a feature branch (git checkout -b feature/amazing-feature)
  3. Commit your changes (git commit -m 'Add amazing feature')
  4. Push to the branch (git push origin feature/amazing-feature)
  5. Open a Pull Request

License

This project is proprietary. All rights reserved.

Contact

For questions or feedback:

Acknowledgments

  • Design inspired by kid-friendly apps like Epic! and Khan Academy Kids
  • Firebase for backend infrastructure
  • Apple Human Interface Guidelines for iPadOS design patterns

Built with ❀️ for kids and parents everywhere!

About

kids play date app

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Contributors 2

  •  
  •