How mouqiandi0/irisnote works
IRisNote is a local-first cross-platform notes app. The main workflow is creating or editing a note, saving it locally for offline use, and synchronizing it to the cloud when the user is signed in and has enabled cloud storage. The README also documents categories, drafts and revision recovery, reading tools, export, authentication, profile, todos, excerpts, and in-app updates. The tree and README establish these product areas; sampled source is limited, so links between unsampled feature internals are omitted where call ownership is uncertain.
Main entry points: _layout.tsx App routes · NotesScreen.tsx Note screens · CreateNoteScreen.tsx Note editing · note-save.service.ts Note save and sync
Components 26
App experience
- App routes
src/app/(tabs)/_layout.tsx
Notes and reading
- Note screens
src/features/notes/screens/NotesScreen.tsx - Note editing
src/features/notes/screens/CreateNoteScreen.tsx - Note save and sync
src/features/notes/services/note-save.service.ts - Draft recovery
src/features/notes/data/note-draft.repository.ts - Note categories
src/features/notes/categories/api/categories.api.ts - Reading progress
src/features/notes/reading/reading-progress-store.ts - Note exports
src/features/notes/components/NoteShare/NoteShareManager.tsx
Local data and sync
- SQLite database
src/core/database/ApplicationDatabaseProvider.tsx - Upload queue
src/core/sync/upload-queue-coordinator.ts - Sync task management
src/features/sync/screens/SyncQueueScreen.tsx
Account and cloud
- Authentication
src/features/auth/providers/AuthProvider.tsx - Auth API
src/features/auth/api/auth.api.ts - User profile
src/features/profile/screens/ProfileScreen.tsx - Cloud consent settings
src/features/settings/screens/CloudStorageSettingsScreen.tsx - Cloud access policy
src/core/cloud-storage/cloud-storage-policy.ts
Other capabilities
- Todos and reminders
src/features/todos/screens/TodosScreen.tsx - Android todo alarms
modules/irisnote-system/android/src/main/java/expo/modules/irisnotesystem/live/LiveTodoScheduler.kt - Clipboard excerpts
src/features/excerpts/screens/ExcerptsScreen.tsx - Clipboard service
src/features/excerpts/services/clipboard.service.ts - Settings and storage
src/features/settings/screens/DataStorageSettingsScreen.tsx - Storage cleanup
src/core/storage/storage-files.ts - In-app updates
src/features/updates/UpdateDialog.tsx - Native patch support
modules/irisnote-updater/android/src/main/java/expo/modules/irisnoteupdater/IrisNoteUpdaterModule.kt
Other components
- App user
- irisapi backend
Connections 26
- App user → App routes: opens
- App routes → Note screens: navigates
- App routes → Authentication: navigates
- App routes → Todos and reminders: navigates
- App routes → Clipboard excerpts: navigates
- App routes → User profile: navigates
- Note screens → Note editing: creates or edits
- Note editing → Note save and sync: saves
- Note save and sync → SQLite database: stores locally
- Note save and sync → Upload queue: queues uploads
- Upload queue → irisapi backend: synchronizes
- Note screens → Note categories: filters by
- Note editing → Draft recovery: recovers drafts
- Note screens → Reading progress: tracks reading
- Note screens → Note exports: exports notes
- Authentication → Auth API: authenticates
- Auth API → irisapi backend: sends requests
- Cloud consent settings → Cloud access policy: sets consent
- Cloud access policy → Upload queue: gates cloud access
- User profile → irisapi backend: loads profile
- Todos and reminders → Android todo alarms: schedules reminders
- Clipboard excerpts → Clipboard service: uses clipboard
- Settings and storage → Storage cleanup: scans and cleans
- Settings and storage → SQLite database: measures note data
- App user → In-app updates: checks for updates
- In-app updates → Native patch support: applies patch