Skip to content

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

32 Commits
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

TeddyNotes 🐻

A cozy mood-based journaling Android app with an AI companion, Teddy, who knows your story.


What is TeddyNotes?

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.


Features

  • 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.

Tech Stack

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

Architecture

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

Screenshots

Splash Onboarding Home
Mood Picker Add Note Note List
Profile Edit Profile Teddy Chat

Setup

This app uses Firebase AI β€” you'll need your own Firebase project to run it.

  1. Create a Firebase project at console.firebase.google.com
  2. Add Android app with package name com.example.teddynotes
  3. Download google-services.json β†’ place in /app folder
  4. Enable Gemini Developer API in Firebase console β†’ AI Logic
  5. Build and run

Or download the latest APK from RELEASE to try it directly.


Design

  • Palette: warm bear browns, paper beige, muted greens
  • Fonts: Lobster Two (display), Nunito (body)
  • Cozy, calming aesthetic β€” not a productivity tool

What I learned building this

  • 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

About

🐻 A cozy mood-based journaling Android app with Teddy - an AI companion who knows your story.

Topics

Resources

Stars

Watchers

Forks

Releases

Packages

Contributors

Languages