Skip to content

SarahSchoonmaker/patternpals

Folders and files

NameName
Last commit message
Last commit date

Latest commit

ย 

History

68 Commits
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 

Repository files navigation

๐Ÿพ Pal Feelings

A memory game for kids that builds Social-Emotional Learning (SEL) skills. Watch your Pal express a sequence of emotions โ€” then echo them back in order!

Built with React Native + Expo by KindredPal Inc.


๐Ÿ“‹ Prerequisites

Before you start, make sure you have these installed:

Tool Version Install
Node.js 18+ nodejs.org
npm 9+ Comes with Node
Expo CLI Latest npm install -g expo-cli
EAS CLI Latest npm install -g eas-cli

To test on your phone:

  • Install Expo Go from the App Store (iOS) or Play Store (Android)

To build for App Store / Play Store:

  • An Expo account (free)
  • Apple Developer account ($99/year) for iOS builds
  • Google Play Developer account ($25 one-time) for Android builds

๐Ÿš€ Getting Started

1. Clone the repo

git clone https://github.com/SarahSchoonmaker/palfeelings.git
cd palfeelings

2. Install dependencies

npm install --legacy-peer-deps

Why --legacy-peer-deps? Some Expo packages have peer dependency conflicts with newer npm versions. This flag tells npm to install them anyway.

3. Install the in-app purchase package

npx expo install expo-in-app-purchases -- --legacy-peer-deps

4. Start the development server

npx expo start --clear

Then scan the QR code with:

  • iPhone: Open the Camera app โ†’ scan โ†’ tap the Expo Go link
  • Android: Open Expo Go app โ†’ scan QR code

Connection issues? Try tunnel mode:

npx expo start --tunnel --clear

๐Ÿ“ Project Structure

PalFeelings/
โ”œโ”€โ”€ App.js                          # Root โ€” navigation + font loading
โ”œโ”€โ”€ app.json                        # Expo config (bundle ID, version, assets)
โ”œโ”€โ”€ eas.json                        # EAS Build + Submit config (Apple credentials)
โ”œโ”€โ”€ babel.config.js                 # Babel config
โ”œโ”€โ”€ package.json                    # Dependencies
โ”‚
โ”œโ”€โ”€ assets/
โ”‚   โ”œโ”€โ”€ icon.png                    # App icon โ€” 1024ร—1024px
โ”‚   โ”œโ”€โ”€ splash.png                  # Splash screen โ€” 1290ร—2796px
โ”‚   โ”œโ”€โ”€ adaptive-icon.png           # Android icon โ€” 1024ร—1024px (no rounded corners)
โ”‚   โ””โ”€โ”€ favicon.png                 # Web favicon โ€” 256ร—256px
โ”‚
โ””โ”€โ”€ src/
    โ”œโ”€โ”€ data/
    โ”‚   โ””โ”€โ”€ gameData.js             # EMOTIONS, PALS, STORY_LINES, DAILY_CHALLENGES
    โ”‚
    โ”œโ”€โ”€ hooks/
    โ”‚   โ””โ”€โ”€ useStorage.js           # AsyncStorage save/load, XP, premium, groups
    โ”‚
    โ”œโ”€โ”€ utils/
    โ”‚   โ””โ”€โ”€ theme.js                # Colors, fonts, spacing, shadows, radius
    โ”‚
    โ”œโ”€โ”€ components/
    โ”‚   โ”œโ”€โ”€ UI.js                   # Button, Card, Pill, ProgressBar, BackButton
    โ”‚   โ””โ”€โ”€ BottomNav.js            # Persistent bottom navigation bar
    โ”‚
    โ””โ”€โ”€ screens/
        โ”œโ”€โ”€ HomeScreen.js           # Home โ€” FOTD card, journey level, mode grid
        โ”œโ”€โ”€ GameScreen.js           # Main game โ€” worlds, combos, sequence logic
        โ”œโ”€โ”€ PalSelectScreen.js      # Character selection with premium gate
        โ”œโ”€โ”€ PaywallScreen.js        # $7.99 premium upgrade screen
        โ”œโ”€โ”€ ParentScreen.js         # SEL skill tracking dashboard
        โ”œโ”€โ”€ JournalScreen.js        # Emotion journal
        โ”œโ”€โ”€ LeaderboardScreen.js    # Weekly leaderboard + journey levels + friends
        โ””โ”€โ”€ FeelingOfDayScreen.js   # Daily emotion + parent conversation starters

๐ŸŽฎ Game Features

Free Tier

  • ๐Ÿผ Panda pal
  • ๐Ÿง  Classic mode
  • ๐ŸŽฎ Levels 1โ€“10
  • ๐ŸŒŸ Feeling of the Day (+50 XP daily bonus)
  • ๐Ÿ”ฅ Daily streak tracking

Premium ($7.99 one-time)

  • ๐Ÿพ All 9 Pals (Fox, Bunny, Cat, Bear, Owl, Lion, Dragon, Unicorn)
  • โšก Speed, Mirror & Story modes
  • โ™พ๏ธ Unlimited levels
  • ๐Ÿ“Š Full Parent Dashboard (5 SEL skill meters)
  • ๐ŸŽฏ Daily Challenges
  • ๐Ÿ“– Emotion Journal
  • ๐Ÿšซ Zero ads ever
  • ๐Ÿ”„ Free updates for life

Game Mechanics

  • 6 Worlds unlock as you level up (Sunny Meadow โ†’ Magic Castle)
  • 5 Emotion Combos trigger special bonuses (e.g. Happy + Excited = 2ร— score)
  • No game over โ€” wrong answers replay the sequence so kids keep practicing
  • Level cap at 10 for free users โ€” paywall triggers at the moment of greatest engagement

๐Ÿ”ง Configuration

app.json โ€” key fields to update

{
  "expo": {
    "name": "Pal Feelings",
    "version": "1.0.0",
    "ios": {
      "bundleIdentifier": "com.sschoonm.kindredpal"
    },
    "android": {
      "package": "com.sschoonm.kindredpal"
    },
    "extra": {
      "eas": {
        "projectId": "YOUR_EAS_PROJECT_ID"
      }
    }
  }
}

eas.json โ€” Apple credentials (keep this private, add to .gitignore)

{
  "submit": {
    "production": {
      "ios": {
        "appleId": "your@email.com",
        "ascAppId": "YOUR_APP_STORE_CONNECT_APP_ID",
        "appleTeamId": "YOUR_APPLE_TEAM_ID"
      }
    }
  }
}

โš ๏ธ Never commit real credentials to GitHub. Add eas.json to .gitignore.


๐Ÿ—๏ธ Building for App Store

Prerequisites

  • EAS account linked: eas login
  • Project linked: eas init

Build iOS

eas build --platform ios --profile production

Takes ~15โ€“20 minutes. EAS handles certificates and provisioning profiles automatically.

Submit to App Store Connect

eas submit --platform ios

Build Android

eas build --platform android --profile production
eas submit --platform android

Or use the npm scripts shorthand

npm run build:ios       # Build iOS
npm run build:android   # Build Android
npm run build:all       # Build both platforms
npm run submit:ios      # Submit iOS to App Store
npm run submit:android  # Submit Android to Play Store

๐Ÿ“ฆ Key Dependencies

Package Purpose
expo ~51 Core Expo SDK
react-native 0.74 React Native framework
@react-navigation/native-stack Screen navigation
expo-linear-gradient World backgrounds + UI gradients
expo-haptics Tactile feedback on button taps
expo-font Custom Baloo 2 + Nunito fonts
expo-splash-screen Splash screen management
@react-native-async-storage/async-storage Local game save data
react-native-safe-area-context Notch/camera safe zones
react-native-gesture-handler Swipe gestures
expo-in-app-purchases $7.99 premium purchase (StoreKit)
@expo-google-fonts/baloo-2 Display font
@expo-google-fonts/nunito Body font


๐Ÿ“ฌ Contact



About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors