ReflectAI is a mobile journaling application that combines traditional journaling with artificial intelligence to provide users with emotional support and insights. Built with a minimalist design philosophy, the app offers a distraction-free environment where users can express their thoughts and receive supportive, therapist-like feedback.
- Journal Entry Creation: Write journal entries with mood tracking
- AI-Generated Feedback: Receive personalized therapeutic responses
- Calendar Visualization: Track mood patterns over time with color-coded calendar
- Voice-to-Text: Dictate journal entries using speech recognition
- Responsive Design: Optimized layouts for both phones and tablets
- Secure Authentication: Email/password authentication with Firebase
ReflectAI follows the MVVM (Model-View-ViewModel) architecture pattern:
- UI Layer: Built with Jetpack Compose for a modern, declarative UI
- ViewModel Layer: Manages UI state and business logic
- Repository Layer: Handles data operations and external service integration
- Model Layer: Defines domain entities and relationships
- Custom calendar implementation with Java Time API
- Firebase Realtime Database for data storage
- Firebase Authentication for user management
- OpenAI API integration for sentiment analysis and therapeutic responses
- Android speech recognition for voice input
-
Clone the repository
git clone https://github.com/yourusername/ReflectAI.git -
Open the project in Android Studio
-
Create a
local.propertiesfile with your API keys:OPENAI_API_KEY=your_openai_api_key -
Connect to Firebase:
- Create a Firebase project
- Add your Android app to the project
-
Build and run the application
firebase-database/
├── journal_entries/
│ └── {userId}/
│ ├── {entryId1}/ # Journal entry with content, mood, date, and AI analysis
│ ├── {entryId2}/
│ └── ...
└── users/
└── {userId}/
├── id
├── displayName
├── email
└── moodCounts/ # Aggregated mood statistics
- Kotlin
- Jetpack Compose
- Firebase (Authentication, Realtime Database)
- OpenAI API
- MVVM Architecture
- Coroutines and Flow
- Material 3 Design
Lucas Chen