A cross-platform family calendar application built with React Native and Expo, integrated with Palantir Foundry for backend data management.
- π Interactive calendar view
- π¨βπ©βπ§βπ¦ Family member management
- π± Cross-platform support (iOS, Android, Web)
- π Real-time sync with Palantir Foundry
- π¨ Clean, intuitive UI
- React Native - Cross-platform mobile framework
- Expo - Development platform and tooling
- TypeScript - Type-safe development
- Palantir Foundry OSDK - Backend integration
- React Native Calendars - Calendar component
- React Navigation - Navigation (to be implemented)
- date-fns - Date manipulation utilities
- Node.js v18 or newer
- npm or yarn
- Expo Go app on your mobile device (for testing)
- Palantir Foundry account with OSDK access
-
Clone the repository (if applicable)
cd family_calanderapp -
Install dependencies
npm install
-
Configure Foundry connection
- Copy
.env.exampleto.env - Fill in your Foundry instance details:
EXPO_PUBLIC_FOUNDRY_URL=https://your-foundry-instance.palantirfoundry.com EXPO_PUBLIC_FOUNDRY_ONTOLOGY=your-ontology-rid EXPO_PUBLIC_FOUNDRY_TOKEN=your-api-token
- Copy
npm startThis will open the Expo DevTools in your browser.
npm run iosOr scan the QR code with your iPhone camera (requires Expo Go app)
npm run androidOr scan the QR code with the Expo Go app
npm run webfamily_calanderapp/
βββ src/
β βββ components/ # Reusable UI components
β βββ screens/ # Screen components
β β βββ CalendarScreen.tsx
β β βββ HomeScreen.tsx
β βββ services/ # API and Foundry integration
β β βββ foundryClient.ts
β βββ types/ # TypeScript type definitions
β β βββ index.ts
β βββ utils/ # Utility functions
βββ App.tsx # Main app component
βββ package.json # Dependencies
βββ tsconfig.json # TypeScript configuration
- Make changes to your code
- Save the file - Expo will automatically reload
- Test on device using Expo Go
- Iterate quickly with hot reload
The app uses Palantir Foundry OSDK for backend operations. Key integration points:
src/services/foundryClient.ts- Foundry client configuration- Environment variables for secure credential management
- Type-safe API calls using TypeScript
Update src/services/foundryClient.ts with your actual Foundry object types:
// Example: Fetch calendar events
export async function fetchCalendarEvents(startDate: Date, endDate: Date) {
const events = await foundryClient.objects.CalendarEvent
.where(event => event.startDate >= startDate && event.endDate <= endDate)
.fetchPage();
return events;
}- Implement navigation between screens
- Add event creation/editing functionality
- Implement family member management
- Add authentication
- Connect to actual Foundry data sources
- Add push notifications
- Implement recurring events
- Add event reminders
- Free: Use Expo Go app (no Apple Developer account needed)
- Paid: Build standalone app ($99/year Apple Developer Program)
- Free: Use Expo Go app or build APK
- Paid: Publish to Google Play Store ($25 one-time fee)
- Free: Test locally or deploy to Vercel/Netlify
eas build --platform ioseas build --platform androidnpm run web
# Then deploy the web-build folder to your hosting serviceIf you're using nvm, make sure to activate it:
export NVM_DIR="$HOME/.nvm"
[ -s "$NVM_DIR/nvm.sh" ] && \. "$NVM_DIR/nvm.sh"
nvm use 22.18.0- Ensure your phone and computer are on the same WiFi network
- Try using tunnel mode:
expo start --tunnel
- Verify your
.envfile has correct credentials - Check that your Foundry token has appropriate permissions
- Ensure your Foundry instance is accessible
- Create a feature branch
- Make your changes
- Test on all platforms
- Submit a pull request
[Your License Here]
For issues or questions, please contact [your contact info]