A Flutter application for tracking mood and journaling, built for a technical assessment. The app helps users maintain their mental wellness by tracking moods, journaling thoughts, and receiving AI-powered insights.
- Authentication: Email/password login and registration with Firebase (mock implementation included)
- Mood Tracking: Log daily moods (happy, neutral, sad, angry, anxious) with timestamps
- Journal Entries: Add, edit, and delete journal entries with rich text formatting
- AI Journaling Assistant: Get personalized writing prompts, insights, and mood improvement suggestions
- Badge System: Earn badges for milestones like:
- Beginner Journalist (5+ journal entries)
- Emotion Tracker (7 consecutive days of mood tracking)
- Deep Thinker (10+ journal entries)
- Consistency Champion (14+ days of consistent usage)
- Journaling Master (30+ journal entries)
- Points System: Earn points for every interaction to track your progress
- Offline Mode: Full functionality even without internet connection
- API Integration: Secure REST API calls with token-based authentication and error handling
- State Management: Provider pattern for efficient state handling
- Clean Architecture: Separation of concerns with services, providers, and UI
- Mock Implementation: Fully functional without backend setup using SharedPreferences for data persistence
- Error Handling: Comprehensive error catching and user feedback
- Responsive Design: Works on various screen sizes
- Dark Mode: Customizable theme with dark mode support
- Safe Data Handling: Proper handling of asynchronous operations and navigation
| Journal | Mood Tracker | AI Assistant | Profile |
|---|---|---|---|
![]() |
![]() |
![]() |
The app features a clean, intuitive interface designed for daily journaling and mood tracking.
- Flutter SDK (^3.9.0)
- Dart SDK (^3.3.0)
- Clone the repository
git clone https://github.com/yourusername/mood_journal_app.git- Install dependencies
cd mood_journal_app
flutter pub get- Run the app
flutter run- Email: test@example.com
- Password: password123
lib/
├── models/ # Data models
├── providers/ # State management
├── screens/
│ ├── auth/ # Authentication screens
│ ├── journal/ # Journal & mood tracking screens
├── services/ # API and business logic
├── utils/ # Helper functions
├── widgets/ # Reusable UI components
└── main.dart # App entry point
The app demonstrates secure API integration with:
- Token-based authentication
- Automatic token refresh
- Error handling and retries
- Offline cache for uninterrupted usage
The app is ready for deployment to both Android and iOS platforms:
- Update the version in
pubspec.yaml - Generate a signing key using
keytoolif you haven't already - Configure signing in
android/app/build.gradle - Build release APK:
flutter build apk --release - Test the APK on target devices
- Upload to Google Play Console for distribution
- Update the version in
pubspec.yaml - Configure signing certificates in Xcode
- Build for iOS:
flutter build ios --release - Archive the build in Xcode
- Upload to TestFlight for testing
- Submit for App Store review
Detailed deployment documentation is available in the deployment/deployment_guide.md file.
The AI Journaling Assistant offers several helpful features:
- Personalized Writing Prompts: Get tailored writing suggestions based on your current mood
- Journal Entry Analysis: Receive insights about the emotional tone of your entries
- Mood Pattern Recognition: Identify trends in your mood over time
- Activity Recommendations: Get suggestions for activities that may improve your mood
- Fixed journal entry deletion crash
- Improved badge awarding logic to strictly enforce requirements
- Enhanced UI for badges display
- Improved profile screen data refresh
- Fixed point calculation and tracking
- Social sharing of mood insights
- Enhanced analytics and reporting
- Cloud synchronization
- Customizable journal templates
- Multilanguage support
If you encounter any issues:
- Ensure you have the latest Flutter SDK installed
- Run
flutter cleanfollowed byflutter pub get - Check for any specific error messages in the console
- For persistent issues, please open an issue on the GitHub repository
This project is licensed under the MIT License - see the LICENSE file for details.
For questions or feedback about this technical assessment submission, please contact me at ammarbinshakir557@gmail.com


