A cozy mood-based journaling Android app with an AI companion, Teddy, who knows your story.
TeddyNotes is a personal journaling app built for emotional reflection. Write one note a day, tag your mood, and let Teddy β your AI bear companion β check in on you like a close friend would.
- Daily Journaling β One note per day with mood tagging. Past notes are sealed and read-only.
- Mood Activity β Notes are color-coded by mood across a scrollable list.
- Teddy AI Chat β Context-aware AI companion powered by Gemini. Teddy reads your last 4 journal entries and responds like a friend, not a therapist.
- Mood Insights β See your most frequent mood this week on your profile.
- User Onboarding β One-time setup for name, DOB, email, gender stored locally via DataStore.
- Edit Profile β Update your details and profile photo anytime.
- Search Notes β Filter your journal entries by title.
- Offline First β All notes stored locally using Room DB. No account needed, no cloud sync.
| Layer | Technology |
|---|---|
| Language | Kotlin |
| UI | Jetpack Compose |
| Navigation | Navigation Compose |
| Local DB | Room |
| User Preferences | DataStore |
| AI Chat | Firebase AI (Gemini) |
| Quote API | ZenQuotes |
| Image Loading | Coil |
| Architecture | MVVM |
com.example.teddynotes/
βββ data/
β βββ local/
β β βββ MoodConverter.kt
β β βββ NoteDao.kt
β β βββ TeddyDatabase.kt
β β βββ UserPreferences.kt
β βββ remote/
β βββ QuoteAPI.kt
β βββ RetrofitClient.kt
βββ model/
β βββ Message.kt
β βββ Mood.kt
β βββ Note.kt
β βββ QuoteResponse.kt
βββ navigation/
β βββ NavGraph.kt
β βββ NavRoutes.kt
βββ repository/
β βββ ChatRepository.kt
β βββ NoteRepository.kt
β βββ QuoteRepository.kt
βββ ui/
β βββ chatbot/ ChatBotScreen
β βββ common/ TeddyTopBar
β βββ home/ HomeScreen, OnboardingDialog
β βββ notes/ NoteScreen, MoodPickerDialog
β βββ notes_list/ NotesListScreen
β βββ profile/ ProfileScreen
β βββ splash/ SplashScreen
β βββ theme/ Color, Type, Theme
βββ viewmodel/
βββ ChatViewModel.kt
βββ HomeViewModel.kt
βββ NoteViewModel.kt
βββ NoteViewModelFactory.kt
βββ UserViewModel.kt
| Splash | Onboarding | Home |
|---|---|---|
![]() |
![]() |
![]() |
| Mood Picker | Add Note | Note List |
|---|---|---|
![]() |
![]() |
![]() |
| Profile | Edit Profile | Teddy Chat |
|---|---|---|
![]() |
![]() |
![]() |
This app uses Firebase AI β you'll need your own Firebase project to run it.
- Create a Firebase project at console.firebase.google.com
- Add Android app with package name
com.example.teddynotes - Download
google-services.jsonβ place in/appfolder - Enable Gemini Developer API in Firebase console β AI Logic
- Build and run
Or download the latest APK from RELEASE to try it directly.
- Palette: warm bear browns, paper beige, muted greens
- Fonts: Lobster Two (display), Nunito (body)
- Cozy, calming aesthetic β not a productivity tool
- Jetpack Compose UI from scratch
- Room DB with TypeConverters for custom types
- DataStore for lightweight user preferences
- Prompt engineering for context-aware AI responses (RAG-lite pattern)
- MVVM architecture with StateFlow and coroutines
- Navigation Compose with typed routes
made with π by Vanshika








