Guest Mode Experience
Relevant source files
The following files were used as context for generating this wiki page:
Guest Mode in MoodTune allows users to access the core audio analysis features of the application without requiring immediate account creation or authentication. This "no account wall" approach enables users to upload audio files or browse the Jamendo music catalog to test the primary mood analysis engine instantly.
The experience is designed to be non-intrusive, presenting a single sign-up prompt after usage while restricting persistent features like history saving and mood filtering, which are reserved for authenticated users. This mode serves as the entry point for new users, starting at specific routing paths defined for unauthenticated sessions.
Sources: README.md:12-12, README.md:19-25, CLAUDE.md:61-61
Feature Accessibility
Guest users have access to the functional core of the app but lack the persistence layers provided by the Supabase backend for registered users.
Guest vs. Authenticated Comparison
| Feature | Guest Mode | Authenticated Mode |
|---|---|---|
| Landing / Home | Yes | — |
| Audio Upload (up to 15MB) | Yes | Yes |
| Jamendo Catalog Search | Yes | Yes |
| Primary Mood Analysis | Yes | Yes |
| History / Auto-save | No | Yes (up to 50) |
| Mood Filtering | No | Yes |
| Sources: README.md:15-38 |
Navigation and Routing Logic
The Guest Mode experience is managed through the AppRouter using go_router. Unauthenticated users are directed to a specific set of public routes. If a guest attempts to access a protected route (like History), the routing system redirects them to the onboarding or login flow.
The routing configuration uses a redirect callback that evaluates the authentication state via SupabaseAuthService to determine if a user should remain in the guest-accessible path.
Sources: routing_plan.md:389-410, CLAUDE.md:61-61
Guest Route Definitions
The following table highlights the specific screens accessible during the guest experience:
| Screen | Path/Access | Description |
|---|---|---|
| Onboarding | /onboarding | Initial landing and value proposition |
| Upload Screen | Accessible | Upload MP3, M4A, FLAC, WAV, OGG files |
| Loading State | Accessible | Processing audio via librosa backend |
| Results | Accessible | Shows primary mood, confidence, and descriptors |
| Catalog | Accessible | Browse free Jamendo tracks |
| Sources: README.md:19-38, routing_plan.md:417-430 |
Audio Analysis Workflow
Guests interact with the AudioUploadRemoteDataSource and AnalysisRemoteDataSource for one-off sessions. The backend (FastAPI/librosa) processes the audio to return a mood identity even without a user session token.
Sources: README.md:10-12, CLAUDE.md:79-84
Technical Constraints and Limitations
The Guest Mode implementation relies on the following technical parameters:
- No Session Storage: Unlike authenticated users who have tokens stored via
TokenStorage(usingFlutterSecureStorage), guests operate in a stateless manner relative to the application's database. - File Limits: The upload limit of 15 MB applies equally to guest and authenticated users for mood analysis.
- Result Persistence: Analysis results for guests are only held in the
AnalysisBlocstate during the current app session and are not auto-saved to the Supabase PostgreSQL database.
Sources: README.md:19-20, authplan.md:58-65, CLAUDE.md:54-58
Conclusion
Guest Mode Experience in MoodTune provides an frictionless entry point into the app's audio analysis capabilities. By leveraging a public routing tier and a non-intrusive prompt system, the app balances immediate utility with a clear path toward the full, persistent feature set available to authenticated users.
Sources: README.md:21-25, routing_plan.md:401-408