Skip to content

sean1093/LittleSteps

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

97 Commits
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

🍼 LittleSteps - Comprehensive Family Care Platform

A mobile-first Progressive Web App providing comprehensive pregnancy and baby care solutions, including milestone tracking, nursing room maps, and professional parenting guidance for expecting and new parents in Taiwan


🌟 Overview

LittleSteps is a comprehensive digital family care platform designed to support parents from pregnancy through their baby's early years. Built with modern web technologies, it provides three integrated modules with seamless cross-device synchronization.

🎯 Platform Modules

🍼 LittleSteps - Baby Tracking & Care

Comprehensive tracking and guidance for babies 0-12+ months:

  • Dashboard - Visual overview of baby's growth and daily activities
  • Milestone Tracking - 30+ developmental milestones across physical, motor, cognitive, and feeding categories
  • Vaccine Tracking - Complete Taiwan vaccination schedule with public and private vaccines
  • Daily Log - Quick logging for feeding, sleep, and diaper changes
  • Sleep Training & Analysis - Sleep pattern tracking with visual analytics
  • Growth Charts - WHO standard growth curves with percentile tracking
  • Complementary Food Guide - Stage-based weaning guide with 4x3 allergy testing approach
  • Care Guide - Age-appropriate safety and care instructions
  • Baby Wiki - Common health issues with causes, solutions, and warning signs
  • Clinic Summary - One-click generation of medical visit summaries
  • Weekly/Monthly Reports - Data trends and development insights

πŸ—ΊοΈ BabyOasis - Nursing Room Locator

Interactive map for finding nursing rooms and baby-friendly facilities:

  • Interactive Map - Real-time location-based search using Leaflet
  • Facility Information - Amenities, photos, and ratings
  • Taiwan Coverage - Comprehensive database of nursing rooms nationwide
  • Cluster View - Grouped markers for better map navigation

🌸 LittleBloom - Pregnancy Companion (Coming Soon)

Dedicated module for expecting mothers:

  • Pregnancy Tracking - Week-by-week development and information
  • Health & Wellness - Nutrition, exercise, and self-care guidance
  • Emotional Journal - Mood and experience tracking
  • Reminders - Medical appointments and daily tips

✨ Key Features

πŸ” Authentication & Sync

  • Google Sign-In - Secure authentication via Firebase
  • Multi-Device Sync - Real-time data synchronization across all devices
  • Dual-Mode Support - Works offline (guest mode) or with cloud sync (authenticated)
  • Automatic Migration - LocalStorage data automatically syncs when signing in
  • Privacy-First - Guest mode keeps all data local, no server communication

πŸ‘Ά Multi-Child Profile Management

  • Multiple Profiles - Track up to 2 babies (free tier)
  • Individual Records - Separate milestone progress, logs, and data per child
  • Family Sharing - Share child profiles with family members via unique codes
  • Easy Switching - Quick toggle between different children's profiles
  • CRUD Operations - Add, edit, and delete child profiles
  • Cloud Backup - Automatic Firebase backup when authenticated

πŸ“Š Advanced Analytics

  • Sleep Analytics - Daily, weekly patterns with visual charts
  • Growth Tracking - WHO percentile charts for weight, height, head circumference
  • Development Progress - Milestone achievement rates and trends
  • Food Tracking - Allergen introduction and reaction monitoring
  • Clinic Reports - Comprehensive summaries for pediatrician visits

πŸ’¬ User Feedback System

  • In-App Reporting - Floating feedback button for logged-in users
  • Issue Tracking - Title and detailed content submission
  • Firebase Integration - Direct storage for team review

πŸ› οΈ Technical Stack

Frontend

  • Framework: React 18 with TypeScript
  • Build Tool: Vite 5.x
  • Styling: Tailwind CSS with custom design system
  • Animations: Framer Motion for smooth transitions
  • Icons: Lucide React
  • State Management: React Hooks + Context API
  • Maps: Leaflet with React-Leaflet and clustering support

Backend & Services

  • Authentication: Firebase Authentication (Google Sign-In)
  • Database: Firebase Realtime Database (asia-southeast1)
  • Analytics: Firebase Analytics
  • Storage: Dual-mode (LocalStorage for guests, Firebase for authenticated users)

Development

  • TypeScript: Full type safety with strict mode
  • ESLint: Code quality enforcement
  • Vitest: Unit testing framework
  • Vite PWA: Progressive Web App capabilities
  • GitHub Actions: Automated CI/CD pipeline

Deployment

  • Hosting: Firebase Hosting
  • CI/CD: GitHub Actions with automated deployment
  • Production: Auto-deploy on push to master
  • Preview: Auto-generated preview URLs for pull requests
  • Environment: Managed via GitHub Secrets

🎨 Design System

Color Palette

  • Primary Pink: #F472B6 - Warm, nurturing primary color
  • Secondary Blue: #60A5FA - Calm, trustworthy accent
  • Warm White: #FAFAF9 - Soft background color
  • Gradients: Subtle gradients for visual depth and hierarchy

Bloom Color Palette (LittleBloom Module)

  • Dusty Rose: Feminine and soft primary
  • Sage Green: Calming and natural
  • Mauve: Gentle and supportive
  • Terracotta: Warm and earthy
  • Cream: Soft neutral background

UI Principles

  • Mobile-First: Optimized for one-handed operation
  • Touch-Friendly: 80x80px minimum touch targets
  • 3-Second Rule: Critical actions complete within 3 seconds
  • Visual Hierarchy: Size, color, and contrast for information priority
  • Reduced Cognitive Load: Icons over text, immediate visual feedback
  • Soft Aesthetics: Rounded corners (rounded-2xl), soft shadows, warm tones

πŸ“± Progressive Web App

PWA Features

  • βœ… Installable on home screen
  • βœ… Offline functionality with service worker
  • βœ… Native app-like experience
  • βœ… Automatic updates
  • βœ… Optimized caching strategy

Installation Instructions

iOS (Safari):

  1. Open the website in Safari
  2. Tap the Share button (square with arrow)
  3. Scroll down and tap "Add to Home Screen"
  4. Confirm the installation

Android (Chrome):

  1. Open the website in Chrome
  2. Tap the menu (three dots)
  3. Select "Install app" or "Add to Home Screen"
  4. Confirm the installation

πŸš€ Getting Started

Prerequisites

  • Node.js 18+
  • npm or yarn

Installation

# Clone the repository
git clone https://github.com/sean1093/LittleSteps.git

# Navigate to project directory
cd LittleSteps

# Install dependencies
npm install

Environment Variables

Create a .env file in the project root with your Firebase configuration:

VITE_FIREBASE_API_KEY=your-api-key
VITE_FIREBASE_AUTH_DOMAIN=your-project.firebaseapp.com
VITE_FIREBASE_PROJECT_ID=your-project-id
VITE_FIREBASE_STORAGE_BUCKET=your-project.appspot.com
VITE_FIREBASE_MESSAGING_SENDER_ID=your-sender-id
VITE_FIREBASE_APP_ID=your-app-id
VITE_FIREBASE_MEASUREMENT_ID=G-XXXXXXXXXX
VITE_FIREBASE_DATABASE_URL=https://your-project-asia-southeast1.firebasedatabase.app

Note: Never commit .env to version control. See .env.example for template.

Development

# Start development server (http://localhost:5173)
npm run dev

# Build for production
npm run build

# Preview production build
npm run preview

# Run linter
npm run lint

# Run tests
npm run test

# Run tests with UI
npm run test:ui

# Generate coverage report
npm run test:coverage

Deployment to Firebase Hosting

The project uses automated deployment via GitHub Actions:

Automatic Deployment:

  • Push to master branch β†’ Automatically deploys to production
  • Create Pull Request β†’ Automatically generates preview URL

Manual Deployment (optional):

# Install Firebase CLI
npm install -g firebase-tools

# Login to Firebase
firebase login

# Deploy to Firebase Hosting
firebase deploy --only hosting

Production URLs:

πŸ“‚ Project Structure

LittleSteps/
β”œβ”€β”€ .claude/                  # AI assistant configuration
β”‚   β”œβ”€β”€ CLAUDE.md            # Project overview and guidelines
β”‚   └── skills/              # Development patterns and conventions
β”œβ”€β”€ src/
β”‚   β”œβ”€β”€ babyoasis/           # Nursing room map module
β”‚   β”‚   β”œβ”€β”€ pages/           # BabyOasis pages
β”‚   β”‚   └── data/            # Nursing room data
β”‚   β”œβ”€β”€ littlebloom/         # Pregnancy tracking module (WIP)
β”‚   β”‚   └── pages/           # LittleBloom pages
β”‚   β”œβ”€β”€ littlesteps/         # Baby tracking module
β”‚   β”‚   β”œβ”€β”€ pages/           # Feature pages
β”‚   β”‚   β”œβ”€β”€ components/      # Feature-specific components
β”‚   β”‚   β”‚   β”œβ”€β”€ milestone/   # Milestone tracking components
β”‚   β”‚   β”‚   β”œβ”€β”€ vaccine/     # Vaccine tracking components
β”‚   β”‚   β”‚   β”œβ”€β”€ sleep/       # Sleep analysis components
β”‚   β”‚   β”‚   β”œβ”€β”€ growth/      # Growth chart components
β”‚   β”‚   β”‚   β”œβ”€β”€ dailylog/    # Daily logging components
β”‚   β”‚   β”‚   β”œβ”€β”€ food/        # Food tracking components
β”‚   β”‚   β”‚   β”œβ”€β”€ dashboard/   # Dashboard components
β”‚   β”‚   β”‚   β”œβ”€β”€ wiki/        # Baby wiki components
β”‚   β”‚   β”‚   β”œβ”€β”€ report/      # Report components
β”‚   β”‚   β”‚   └── shared/      # Shared utility components
β”‚   β”‚   β”œβ”€β”€ hooks/           # Feature-specific hooks
β”‚   β”‚   └── data/            # Static data (milestones, vaccines, etc.)
β”‚   β”œβ”€β”€ common/              # Shared resources
β”‚   β”‚   β”œβ”€β”€ components/      # Reusable components
β”‚   β”‚   β”œβ”€β”€ hooks/           # Common hooks
β”‚   β”‚   └── pages/           # Landing and auth pages
β”‚   β”œβ”€β”€ contexts/            # React contexts
β”‚   β”œβ”€β”€ lib/                 # Third-party configurations
β”‚   β”œβ”€β”€ types/               # TypeScript type definitions
β”‚   β”œβ”€β”€ utils/               # Utility functions
β”‚   β”œβ”€β”€ App.tsx              # Main app component
β”‚   β”œβ”€β”€ main.tsx             # Application entry
β”‚   └── index.css            # Global styles
β”œβ”€β”€ public/                  # Static assets
β”œβ”€β”€ .github/workflows/       # CI/CD configuration
β”œβ”€β”€ firebase.json            # Firebase Hosting config
└── vite.config.ts           # Vite configuration

πŸ”— URL Routing

The application uses hash-based routing for shareable URLs:

Main Routes

  • Home: /#/ - Main landing page with module selection

LittleSteps Routes

  • LittleSteps Home: /#/littlesteps - Baby tracking landing
  • Dashboard: /#/littlesteps/dashboard - Growth overview
  • Milestones: /#/littlesteps/milestones - Milestone tracking
  • Vaccines: /#/littlesteps/vaccine-tracking - Vaccine schedule
  • Daily Log: /#/littlesteps/daily-log - Quick daily logging
  • Sleep Training: /#/littlesteps/sleep-training - Sleep timer tools
  • Sleep Analysis: /#/littlesteps/sleep-analysis - Sleep pattern analytics
  • Growth Charts: /#/littlesteps/growth-charts - WHO growth curves
  • Care Guide: /#/littlesteps/care-guide - Age-based care instructions
  • Food Guide: /#/littlesteps/complementary-food - Weaning guide
  • Baby Wiki: /#/littlesteps/baby-wiki - Common health issues
  • Clinic Summary: /#/littlesteps/clinic-summary - Medical visit summaries
  • Reports: /#/littlesteps/report - Weekly/monthly insights

Other Modules

  • BabyOasis: /#/babyoasis - Nursing room map
  • LittleBloom: /#/littlebloom - Pregnancy module (WIP)

πŸ’Ύ Data Architecture

LittleSteps uses a dual-mode architecture for maximum flexibility:

Guest Mode (Not Logged In)

  • Data stored in browser's LocalStorage
  • Works completely offline
  • No account required
  • Data stays on device only
  • Perfect for privacy-conscious users

Authenticated Mode (Logged In)

  • Data stored in Firebase Realtime Database
  • Automatic multi-device synchronization
  • Real-time updates across devices
  • Secure cloud backup
  • Family sharing capabilities
  • LocalStorage data automatically migrates on first sign-in

Firebase Database Structure

{
  "users": {
    "$userId": {
      "email": "user@example.com",
      "displayName": "User Name",
      "childrenIds": { "$childId": true },
      "currentChildId": "$childId",
      "families": { "$familyId": { "role": "admin" } }
    }
  },
  "children": {
    "$childId": {
      "name": "Baby Name",
      "birthday": "2024-01-01",
      "gender": "male",
      "uuid": "unique-share-code",
      "milestoneProgress": {},
      "vaccineProgress": {},
      "growthRecords": [],
      "foodTrials": []
    }
  },
  "dailyLogs": {
    "$childId": {
      "$logId": {
        "type": "feeding|sleep|diaper",
        "timestamp": "2024-01-01T10:00:00Z",
        "details": {}
      }
    }
  },
  "feedbacks": {
    "$feedbackId": {
      "title": "Feedback title",
      "content": "Feedback content",
      "userId": "$userId",
      "timestamp": "2024-01-01T10:00:00Z"
    }
  }
}

Privacy & Security:

  • Guest mode: No data sent to servers
  • Authenticated mode: Data encrypted and secured by Firebase
  • Security rules enforce user-only access
  • Optional family sharing via unique codes

🌐 Browser Support

  • βœ… Chrome/Edge 90+
  • βœ… Safari 14+
  • βœ… Firefox 88+
  • βœ… Mobile browsers (iOS Safari, Chrome Mobile)

πŸ“– Feature Documentation

Milestone Categories

  • Physical Development πŸƒ: Rolling, sitting, crawling, standing, walking
  • Motor Skills βœ‹: Grasping, transferring, fine motor control
  • Cognitive 🧠: Recognition, problem-solving, communication
  • Feeding 🍼: Sucking, solid foods, self-feeding

Vaccine Information

Based on Taiwan's Ministry of Health and Welfare vaccination schedule:

  • Public Funded (ε…¬θ²»): Free government-provided vaccines
  • Self-Paid (θ‡ͺθ²»): Optional private vaccines
  • Detailed Information: Side effects, contraindications, emergency guidelines
  • Scheduling: Age-based organization with dose tracking

Complementary Food Stages

  • Stage 1 (4-6 months): PurΓ©es, single ingredients
  • Stage 2 (6-9 months): Mashed textures, combinations
  • Stage 3 (9-12 months): Chopped foods, finger foods
  • 4x3 Method: Modern allergen introduction approach

Growth Chart Standards

  • WHO Standards: International growth reference
  • Metrics: Weight, height, head circumference
  • Percentiles: P3, P15, P50, P85, P97 curves
  • Gender-Specific: Separate curves for boys and girls

πŸ§ͺ Testing

The project includes testing infrastructure:

# Run all tests
npm run test

# Run tests with UI
npm run test:ui

# Generate coverage report
npm run test:coverage

Testing Stack:

  • Framework: Vitest
  • DOM Testing: @testing-library/react
  • User Events: @testing-library/user-event
  • Assertions: @testing-library/jest-dom

🀝 Contributing

Contributions are welcome! Please follow these steps:

  1. Fork the repository
  2. Create your feature branch (git checkout -b feature/AmazingFeature)
  3. Follow the coding guidelines in .claude/skills/
  4. Commit your changes (git commit -m 'feat: add some amazing feature')
  5. Push to the branch (git push origin feature/AmazingFeature)
  6. Open a Pull Request

Commit Convention

Follow conventional commits format:

  • feat: - New feature
  • fix: - Bug fix
  • refactor: - Code refactoring
  • style: - Styling changes
  • docs: - Documentation updates
  • test: - Test changes
  • chore: - Build/config changes

πŸ“„ License

This project is licensed under the MIT License - see the LICENSE file for details.

πŸ™ Acknowledgments

  • Medical Information: Taiwan Ministry of Health and Welfare guidelines
  • Growth Standards: WHO Child Growth Standards
  • Nursing Room Data: Taiwan government open data
  • Design: Inspired by modern parenting apps with Taiwanese localization
  • Built with: React, TypeScript, Firebase, Tailwind CSS

πŸ—ΊοΈ Roadmap

Phase 1 (Current)

  • βœ… LittleSteps core features
  • βœ… BabyOasis nursing room map
  • βœ… Multi-device sync
  • βœ… Feedback system

Phase 2 (In Progress)

  • 🚧 LittleBloom pregnancy tracking
  • 🚧 Premium tier features
  • 🚧 Enhanced analytics

Phase 3 (Planned)

  • πŸ“‹ Photo gallery for milestones
  • πŸ“‹ Parent community features
  • πŸ“‹ Multilingual support (English, Simplified Chinese)
  • πŸ“‹ Dark mode
  • πŸ“‹ Advanced PWA features

Made with ❀️ for families in Taiwan

πŸ€– Built with Claude Code

About

A mobile-first Progressive Web App to help new parents track their baby's developmental milestones

Topics

Resources

Stars

Watchers

Forks

Contributors

Languages