A SwiftUI iOS app for syncing content with RACHEL (Remote Area Community Hotspot for Education and Learning) devices.
- π± Status View: Monitor connection to RACHEL devices and track file transfers
- π€ Profile View: View your courier statistics including devices visited, deliveries, and pickups
- βοΈ Settings View: Configure sync preferences and manage local storage
- π Bundle Browser: Browse and download content bundles from RACHEL devices
- iOS 17.0+
- Xcode 15.0+
- Swift 5.9+
DataPost/
βββ DataPostApp.swift # App entry point
βββ ContentView.swift # Main view with login/tab navigation
βββ Info.plist # App configuration
βββ Assets.xcassets/ # App icons and colors
βββ Views/
β βββ StatusView.swift # Sync status and transfer progress
β βββ ProfileView.swift # User profile and stats
β βββ SettingsView.swift # App settings
β βββ BundleListView.swift # Content bundle browser
βββ Models/
β βββ CourierStats.swift # API response model
β βββ Bundle.swift # Content bundle model
β βββ AccessPoint.swift # WiFi access point model
βββ Services/
βββ APIService.swift # Gateway server API calls
βββ AuthManager.swift # Authentication state
βββ FileTransferManager.swift # File sync operations
- Open
DataPost.xcodeprojin Xcode - Select your development team in Signing & Capabilities
- Build and run on a device or simulator
To enable Google Sign-In:
- Create a Firebase project at console.firebase.google.com
- Add an iOS app with bundle ID
org.worldpossible.DataPost - Download
GoogleService-Info.plistand add to the project - Add Firebase SDK via Swift Package Manager
- Update
AuthManager.swiftto use Firebase Authentication
The app communicates with the DataPost gateway server:
- Base URL:
http://52.212.194.99:3000 - GET /courier-stats?email={email}: Fetch courier statistics
- POST /emule: Upload files (multipart form data)
The app includes a Demo Mode for testing without Firebase configuration:
- Uses
jeremy@worldpossible.orgas the demo user - Connects to the real gateway server for stats
- Simulates RACHEL device connections
- In Xcode, select Product > Archive
- In the Organizer, click Distribute App
- Choose your distribution method (App Store, Ad Hoc, Enterprise)
Copyright Β© 2024 World Possible. All rights reserved.