A spiritual inventory tracking application available as both a Progressive Web App (PWA) and React Native mobile app. Track your daily personal characteristics and spiritual growth across web and mobile platforms.
This is a monorepo containing three packages:
dailyinventory/
βββ packages/
β βββ shared/ # Shared business logic (works on both platforms)
β βββ web/ # PWA version (React)
β βββ mobile/ # React Native app (iOS & Android)
βββ package.json # Root workspace configuration
βββ README.md
- Node.js 16+
- npm 7+ (for workspace support)
- Git
-
Clone and install dependencies:
git clone <your-repo-url> cd dailyinventory npm install
-
Start development:
# Web (PWA) npm run web:start # Mobile (React Native) npm run mobile:start
The web version works immediately after installation:
npm run web:startFeatures:
- β PWA installation
- β Offline support
- β Browser notifications
- β Chart.js integration
- β Responsive design
-
Install Xcode:
# Open Mac App Store and search for "Xcode" open -a "App Store" "https://apps.apple.com/us/app/xcode/id497799835"
-
Install Command Line Tools:
xcode-select --install
-
Set Xcode as default developer tool:
sudo xcode-select --switch /Applications/Xcode.app/Contents/Developer
-
Agree to Xcode license agreements:
sudo xcodebuild -license
- This will prompt for your password
- Press
spaceto scroll through the license - Type
agreeand pressEnterto accept
-
Run Xcode first launch setup:
xcodebuild -runFirstLaunch
-
Install iOS Simulator:
- Open Xcode (it should have opened automatically)
- Go to Xcode β Preferences β Components
- Download and install iOS Simulator (this may take a while)
- Or use the command line:
xcrun simctl runtime install iOS
-
Install CocoaPods:
sudo gem install cocoapods
-
Install iOS dependencies:
cd packages/mobile/ios pod install cd ../..
-
Run iOS app:
npm run mobile:ios
π For detailed iOS setup instructions and troubleshooting, see IOS_SETUP_GUIDE.md
-
Download Android Studio:
open "https://developer.android.com/studio" -
Install Android Studio:
- Download the
.dmgfile - Drag to Applications folder
- Follow the setup wizard
- Download the
-
Set up Android SDK:
- Open Android Studio
- Go to Tools β SDK Manager
- Install:
- Android SDK Platform-Tools
- Android SDK Build-Tools
- Android SDK Platform (API level 33+)
- Android Emulator
-
Set up environment variables: Add to your
~/.zshrcor~/.bash_profile:export ANDROID_HOME=$HOME/Library/Android/sdk export PATH=$PATH:$ANDROID_HOME/emulator export PATH=$PATH:$ANDROID_HOME/platform-tools
-
Reload shell:
source ~/.zshrc
-
Run Android app:
npm run mobile:android
# Install all dependencies
npm install
# Start web development server
npm run web:start
# Build web for production
npm run web:build
# Start mobile Metro bundler
npm run mobile:start
# Run on iOS simulator
npm run mobile:ios
# Run on Android emulator
npm run mobile:android
# Build shared package
npm run shared:build
# Build all packages
npm run build:all
# Run development servers for both platforms
npm run dev
# Clean all packages
npm run clean
# Lint all packages
npm run lint
# Test all packages
npm run test# Web package
npm run start --workspace=dailyinventory-web
npm run build --workspace=dailyinventory-web
# Mobile package
npm run start --workspace=dailyinventory-mobile
npm run ios --workspace=dailyinventory-mobile
npm run android --workspace=dailyinventory-mobile
# Shared package
npm run build --workspace=dailyinventory-shared- β Daily inventory tracking with 20 spiritual characteristics
- β Data persistence with platform-appropriate storage
- β Chart visualization of progress over time
- β Date-based navigation and data management
- β Offline functionality for continuous use
- β Progressive Web App (PWA) installation
- β Browser notifications for daily reminders
- β Responsive design for all screen sizes
- β Chart.js integration for data visualization
- β Native performance and animations
- β Push notifications via React Native
- β Touch-optimized UI components
- β Offline-first data storage
- β React Navigation for smooth transitions
- Shared business logic between platforms
- Single source of truth for inventory data
- Consistent behavior across platforms
- Efficient development workflow
packages/shared/: Core business logic, data models, utilitiespackages/web/: PWA implementation with Reactpackages/mobile/: React Native app with native features
# Clear Metro cache
cd packages/mobile
npx react-native start --reset-cache# Clean and reinstall pods
cd packages/mobile/ios
pod deintegrate
pod install# Clean Android build
cd packages/mobile/android
./gradlew clean- Check the logs for specific error messages
- Clear caches (Metro, npm, pods)
- Reinstall dependencies if needed
- Check platform-specific setup guides
- β Web PWA: Fully functional
- β Mobile iOS: Functional with React Native
- β Mobile Android: Ready for development
- β Shared Logic: Complete business logic extraction
- Fork the repository
- Create a feature branch
- Make your changes
- Test on both platforms
- Submit a pull request
This project is licensed under the ISC License.