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.