Mood Journal is a sleek and feature-rich Android app built with Jetpack Compose, designed to help users track their journaling and daily experiences effortlessly. This app provides a clean and intuitive user interface with a variety of customization options.
- Custom Date Selection
- New Prompts
- Color Selection
- Add Image
- Delete Journal Entry
- Edit Journal Entry
- Share
- Clean UI
- Android Architecture Components Collection of libraries that help you design robust, testable, and maintainable apps.
- Jetpack Compose Modern Android UI toolkit for building native UIs.
- Coil Image loading library for efficient handling of images in the app.
- ViewModel - Stores UI-related data that isn't destroyed on UI changes.
- Dagger-Hilt - Standard library to incorporate Dagger dependency injection into an Android application.
- Kotlin Coroutines - Asynchronous programming to handle background tasks seamlessly.
- Flow - A cold asynchronous data stream that sequentially emits values and completes normally or with an exception.
- Jetpack DataStore - Jetpack DataStore is a data storage solution that allows you to store key-value pairs. Basically it's a replacement for SharedPreferences.
├── JournalApp.kt
├── di
│ └── AppModule.kt
├── feature_journal
│ ├── data
│ │ ├── data_source
│ │ │ ├── JournalDao.kt
│ │ │ └── JournalDatabase.kt
│ │ └── repository
│ │ ├── DataStoreOperationsRepositoryImpl.kt
│ │ └── JournalRepositoryImpl.kt
│ ├── domain
│ │ ├── model
│ │ │ └── JournalDataResponse.kt
│ │ ├── repository
│ │ │ ├── DataStoreOperationsRepository.kt
│ │ │ └── JournalRepository.kt
│ │ ├── use_case
│ │ │ ├── datastore_operations
│ │ │ │ ├── DataStoreOperationsUseCases.kt
│ │ │ │ ├── ReadFirstEntry.kt
│ │ │ │ ├── ReadOnBoarding.kt
│ │ │ │ ├── ReadUserName.kt
│ │ │ │ ├── SaveFirstEntry.kt
│ │ │ │ ├── SaveOnBoarding.kt
│ │ │ │ └── SaveUserName.kt
│ │ │ └── journal
│ │ │ ├── AddJournal.kt
│ │ │ ├── DeleteJournal.kt
│ │ │ ├── GetJournalById.kt
│ │ │ ├── GetJournals.kt
│ │ │ └── JournalUseCases.kt
│ │ └── util
│ │ ├── add_edit_journal
│ │ │ ├── AddEditJournalEvent.kt
│ │ │ ├── AddEditJournalState.kt
│ │ │ └── JournalRandomDataState.kt
│ │ ├── datastore
│ │ │ ├── DataStoreOperationsEvent.kt
│ │ │ └── DataStoreOperationsState.kt
│ │ └── journal
│ │ ├── JournalDataTypeConverter.kt
│ │ ├── JournalEvent.kt
│ │ ├── JournalState.kt
│ │ └── JournalTextFieldState.kt
│ ├── navigation
│ │ ├── Screen.kt
│ │ └── SetupNavGraph.kt
│ ├── presentation
│ │ ├── DataStoreOperationsViewModel.kt
│ │ ├── MainActivity.kt
│ │ ├── add_edit_journal
│ │ │ ├── AddEditJournalScreen.kt
│ │ │ ├── AddEditJournalViewModel.kt
│ │ │ ├── components
│ │ │ │ ├── CustomHintTextField.kt
│ │ │ │ ├── DatePickerView.kt
│ │ │ │ ├── ShowColorPicker.kt
│ │ │ │ ├── ShowSearchBar.kt
│ │ │ │ ├── ShowVoiceRecorder.kt
│ │ │ │ └── VerticalDivider.kt
│ │ │ └── util
│ │ │ ├── AndroidAudioPlayer.kt
│ │ │ ├── AndroidAudioRecorder.kt
│ │ │ ├── AudioPlayer.kt
│ │ │ └── AudioRecorder.kt
│ │ ├── journal_screen
│ │ │ ├── JournalScreen.kt
│ │ │ ├── JournalViewModel.kt
│ │ │ └── components
│ │ │ ├── CustomDropDownMenu.kt
│ │ │ ├── JournalCardItem.kt
│ │ │ └── PandaCardView.kt
│ │ ├── onboarding_screen
│ │ └── OnBoardingScreen.kt
│ │ └── splash_screen
│ │ └── SplashScreen.kt
│ └── util
│ ├── Constants.kt
│ └── Utility.kt
└── ui
└── theme
├── Color.kt
├── Theme.kt
└── Type.kt
If you find Mood Journal helpful and would like to support further development, you can Buy Me a Coffee.
This project is licensed under the MIT License.
Special thanks to Jetpack Compose for making UI development on Android a breeze!
If you have any feedback, please reach out to us at developer.saksham26@gmail.com