Transforming raw thoughts into actionable insights. Securely. Collaborative. Private.
CircleU is a premium, privacy-first iOS journaling and reflection companion. Designed to bridge the gap between daily emotional check-ins and personal growth, it allows users to record spoken reflections, receive real-time AI-assisted emotional analysis, commit to active wellbeing challenges, and safely share support updates within trusted spaces ("Circles").
| 🎯 Growth Quests | 👥 Secure Circles |
|---|---|
![]() |
![]() |
| Practice relationship-focused tips with real-time coaching feedback. | Share selected support posts securely inside firewalled Firestore-backed group circles. |
- Speech-to-Text Integration: Leveraging Apple's native
Speechframework for instant local transcription, paired with a reliable typed keyboard fallback. - Low-Signal Resilience: Built-in fallback engines to gracefully process fragmented speech or rough inputs, providing comforting local responses under offline or network-limited states.
- Cognitive Extraction: Distills spoken streams into primary emotions, summary cards, and inspirational quotes using standard LLM schemas and Apple Intelligence frameworks.
- Suggested Quests: Dynamically generates bite-sized daily relationship and communication challenges based on the user's reflection transcript.
- Privacy-First Design: Users have full control over what leaves their device. Insights are kept local unless explicitly shared with a circle.
- Collaborative Spaces: Share, like, bookmark, and reply to posts in shared circles. All circle memberships are gated via secure, identity-aware Firestore database rules.
- Automatic Cloud Sync: Fully authenticated data model backups across devices using Firebase Authentication and encrypted Firestore synchronization.
- Data Sovereignty: Complete "Delete Account" flow that purges the entire Firebase Authentication record, resets local device stores, and purges all Firestore backup collections.
Circleu/
├── App/ # App initialization, main coordinators, dependency injection
├── Assets.xcassets/ # Styling assets, color tokens, and app icon assets
├── Components/ # Reusable UI elements, premium button configurations, haptics
├── Design/ # Global spacing, layout tokens, and typography definitions
├── Engines/ # Core business rules, reflection logic, local fallback logic
├── Features/ # Workflows grouped by domain (Journal, Profile, Onboarding, Circles)
├── Models/ # Codable domain structures, persistence-friendly schemas
├── Services/ # Device API boundaries (Firebase Auth, Firestore, Speech)
└── Stores/ # ObservableObject state managers holding local cache bindings
- Frontend Framework: SwiftUI
- Database & Auth: Firebase Authentication & Cloud Firestore (NoSQL)
- Media & Processing:
AVFoundationfor low-latency recording &Speechfor speech-to-text transcription - Concurrency Model: Modern Swift Concurrency (
async/await) with@MainActorthread-safe UI bounds
- macOS Sonoma or later
- Xcode 15.0+ (iOS 17.0+ SDK)
- Cocoapods or Swift Package Manager (dependencies resolve automatically in Xcode)
- Clone the repository:
git clone git@github.com:tuannm3812/CircleU.git
- Open
Circleu.xcodeprojin Xcode. - Configure the active target:
- Target Scheme:
Circleu - Target Device:
iPhone 17 ProSimulator (or a physical test device running iOS 17+)
- Target Scheme:
- Click Run (
⌘R).
Note
The application uses a local fallback mode if a valid GoogleService-Info.plist is not found, allowing offline testing of all local journaling, speech-to-text, and AI insight modules. For cloud-synced test runs, place your team's GoogleService-Info.plist into the Circleu/App/ folder.
We maintain high coverage across auth stores, persistence syncing, and local fallback engines. To run the test suite:
xcodebuild test \
-project Circleu.xcodeproj \
-scheme Circleu \
-destination 'platform=iOS Simulator,name=iPhone 17 Pro'CircleU is released under the MIT License. See LICENSE for details.
For support, feedback, or contribution inquiries, please open an issue in the GitHub repository or contact the project maintainers.




