A modern, feature-rich digital bullet journal app built with Kotlin and Android Architecture Components
Transform your daily journaling experience with this comprehensive digital bullet journal that combines the simplicity of traditional journaling with modern mobile features:
- โ๏ธ Rich Text Entries - Create detailed journal entries with titles and descriptions
- ๐ธ Visual Memories - Attach photos from gallery or camera to your entries
- ๐๏ธ Date Tracking - Automatic date management for chronological organization
- ๐ฑ Intuitive Interface - Clean, user-friendly design optimized for daily use
- ๐ Smart Reminders - Daily notifications to maintain your journaling habit
- โ๏ธ Edit & Delete - Full CRUD operations with confirmation dialogs
- ๐พ Local Storage - Secure offline storage with Room database
- Create unlimited journal entries with rich content
- Edit existing entries with seamless navigation
- Delete entries with confirmation protection
- Chronological sorting (newest entries first)
- Camera Capture - Take photos directly within the app
- Gallery Selection - Choose existing photos from device storage
- Smart Compression - Automatic image optimization for storage efficiency
- Base64 Storage - Embedded images for offline reliability
- Material Design - Modern Android UI/UX standards
- Responsive Layout - Optimized for various screen sizes
- Contextual Actions - Tap to edit, long-press to delete
- Visual Feedback - Snackbar notifications and confirmation dialogs
- Daily Reminders - WorkManager-powered notifications
- Customizable Timing - Adjustable reminder schedules
- Engagement Tracking - Visual cues for empty journal states
Built with modern Android development best practices:
- Kotlin - 100% Kotlin codebase
- MVVM Architecture - Clean separation of concerns
- Room Database - Local SQLite abstraction
- LiveData - Reactive data observation
- ViewModel - UI state management
- Coroutines - Asynchronous programming
- WorkManager - Background task scheduling
- RecyclerView - Efficient list rendering
- Android Studio Arctic Fox or later
- Android SDK API 21+ (Android 5.0)
- Kotlin 1.5+
-
Clone the repository
git clone https://github.com/yourusername/bullet-journal-android.git cd bullet-journal-android -
Open in Android Studio
- Open Android Studio
- Select "Open an existing project"
- Navigate to the cloned directory
-
Build and run
- Connect an Android device or start an emulator
- Click "Run" or press
Ctrl+R
The app requests the following permissions:
- Camera - For taking photos directly in the app
- Storage - For selecting images from gallery (handled automatically)
app/src/main/java/com/example/bulletjournalapp/
โโโ MainActivity.kt # Main activity with journal list
โโโ AddEntryActivity.kt # Add/edit entry screen
โโโ JournalEntry.kt # Data model with Room annotations
โโโ JournalEntryDao.kt # Database access object
โโโ JournalDatabase.kt # Room database configuration
โโโ JournalViewModel.kt # MVVM ViewModel for data management
โโโ JournalEntryAdapter.kt # RecyclerView adapter
โโโ ReminderWorker.kt # Background notification worker
// Automatic image compression and Base64 encoding
private fun compressImage(bitmap: Bitmap): Bitmap {
val maxWidth = 1024
val maxHeight = 1024
// Intelligent scaling while maintaining aspect ratio
}@Entity(tableName = "journal_entries")
data class JournalEntry(
@PrimaryKey(autoGenerate = true) val id: Int = 0,
val title: String,
val description: String,
val date: String,
val imageUri: String? = null // Base64 encoded images
)// LiveData ensures UI stays synchronized with database
journalViewModel.allEntries.observe(this) { entries ->
updateUI(entries)
}This project helped me master:
- Android Architecture Components (Room, ViewModel, LiveData)
- Kotlin Coroutines for asynchronous database operations
- Image processing and storage optimization techniques
- WorkManager for reliable background tasks
- Material Design principles and user experience
- MVVM architecture implementation in Android
- Database design for mobile applications
- Cloud Sync - Backup entries to cloud storage
- Categories & Tags - Organize entries with custom labels
- Search Functionality - Find entries by content or date
- Export Options - PDF or text export capabilities
- Themes - Dark mode and custom color schemes
- Rich Text Formatting - Bold, italic, lists, etc.
- Location Tagging - GPS coordinates for entries
- Voice Notes - Audio recording integration
- Statistics - Journaling habits and insights
Contributions are welcome! Here are some ways you can help:
- Report bugs or suggest features
- Improve UI/UX design
- Add new functionality
- Optimize performance
- Write tests
Please feel free to open an issue or submit a pull request.
This project is licensed under a Custom License - see the LICENSE file for details.
Note: Commercial use requires notification and may require permission. Contact for commercial licensing inquiries.
โญ Enjoying this app? Give it a star and help others discover the joy of digital journaling!