Skip to content

Murali-KrishnaM/PersonalDiaryApp

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

36 Commits
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

Personal Diary App

A lightweight and user-friendly Personal Diary Android application built using Kotlin.
This app allows users to record daily thoughts, moods, and moments through clean and structured journal entries.
Perfect for maintaining digital journals, tracking emotional wellness, and preserving daily memories.


🎯 Objective

Create a simple yet powerful personal diary experience that enables users to document their daily lives with ease.
The app provides an intuitive interface for creating, viewing, and managing journal entries with mood tracking, timestamps, and organized storage β€” all without cloud sync or external dependencies.


✨ Features

Entry Management

  • Create New Entries: Quick access via Floating Action Button
  • View All Entries: Organized in reverse chronological order
  • Detailed Entry View: Full content display with mood indicators
  • Timestamp Tracking: Auto-generated and editable

Mood Tracking

  • Emoji-based mood selector
  • Visual mood indicators in entry list and detail view
  • Supports moods like happy, sad, angry, neutral, etc.

User Interface

  • Smooth RecyclerView with dynamic list
  • Clean, distraction-free UI
  • Responsive layout optimized across devices
  • Simple, intuitive navigation

πŸ› οΈ Technology Stack

Component Purpose
Kotlin Core logic and activities
Android Studio IDE and build tools
RecyclerView Efficient list rendering
XML Layouts UI templates and design
Intents Screen navigation & data passing
Data Classes Entry model structure

πŸ“¦ Installation

Prerequisites

  • Android Studio (latest recommended)
  • Android SDK (API Level 21+)
  • Kotlin support
  • Emulator or Android device

Setup

git clone https://github.com/yourusername/personal-diary-app.git
cd personal-diary-app

Open in Android Studio

  1. Launch Android Studio
  2. Select Open an Existing Project
  3. Choose the cloned directory
  4. Allow Gradle to sync

Build & Run

  • Build β†’ Make Project
  • Run β†’ Run 'app'

πŸš€ Usage

Creating Your First Entry

  1. Open the app
  2. Tap the + button
  3. Enter:
    • Title / Content
    • Date & Time
    • Mood
  4. Save the entry

Viewing Entries

  • Scroll through the journal list
  • Tap an entry to open details
  • View full content, timestamp, and mood

πŸ“± User Interface Flow

[Journal List Screen]
        ↓ (Tap + button)
[Add Entry Screen]
        ↓ (Save entry)
[Back to Journal List]
        ↓ (Tap any entry)
[View Entry Details]

πŸ“Š App Structure

app/
β”œβ”€β”€ java/com/example/diaryapp/
β”‚   β”œβ”€β”€ JournalListActivity.kt
β”‚   β”œβ”€β”€ AddEntryActivity.kt
β”‚   β”œβ”€β”€ ViewEntryActivity.kt
β”‚   β”œβ”€β”€ JournalListAdapter.kt
β”‚   β”œβ”€β”€ JournalEntry.kt
β”‚   └── EntryRepository.kt
└── res/layout/
    β”œβ”€β”€ activity_journal_list.xml
    β”œβ”€β”€ activity_add_entry.xml
    β”œβ”€β”€ activity_view_entry.xml
    └── item_entry.xml

πŸ”§ Key Components

Activities

Activity Description
JournalListActivity Main list of all entries
AddEntryActivity Create new journal entry
ViewEntryActivity View full entry details

Data Model

data class JournalEntry(
    val id: String,
    val title: String,
    val content: String,
    val timestamp: Long,
    val mood: String
)

Repository Pattern

EntryRepository manages the in-memory storage:

  • Add entries
  • Retrieve entries
  • List all entries

Adapter

JournalListAdapter:

  • Binds entry data to list
  • Handles click events
  • Provides smooth scrolling

⚑ Features Under the Hood

  • Emoji-based mood indicators
  • Repository pattern for clean data management
  • Intent-based navigation
  • View Binding for efficient view access
  • Reverse chronological sorting
  • Modular architecture

🎨 UI Layouts

Layout Files

Layout Purpose
activity_journal_list.xml List all entries
activity_add_entry.xml Add new entry
activity_view_entry.xml Full entry information
item_entry.xml Row template for list items

Design Principles

  • Minimal UI
  • Pleasant spacing & typography
  • Mood-driven visual elements
  • Easy-to-navigate screens

πŸ”„ How It Works

  1. Launch β†’ Loads all entries
  2. Add Entry β†’ User inputs details
  3. Save β†’ Entry stored in repository
  4. UI Refresh β†’ Latest entry shown
  5. Tap Item β†’ Open detailed view

Data Flow Diagram

User Input β†’ AddEntryActivity β†’ EntryRepository β†’ JournalListActivity
                                       ↓
                                ViewEntryActivity

πŸš€ Future Enhancements

  • Persistent storage (Room database)
  • Search functionality
  • Tags / categories
  • Image attachments
  • Export to PDF / text
  • PIN / biometric lock
  • Dark mode
  • Calendar view
  • Mood statistics
  • Cloud sync (optional)

⚠️ Important Notes

Data Persistence

  • Currently uses in-memory only
  • Data clears after app restarts

Privacy

  • 100% offline
  • No analytics
  • No permissions required

Compatibility

  • Minimum: Android 5.0 (API 21)
  • Target: Latest Android release

🀝 Contributing

Pull Request Steps

fork β†’ create branch β†’ commit β†’ push β†’ open PR

Guidelines

  • Follow Kotlin conventions
  • Keep architecture clean
  • Test across Android versions
  • Update documentation

πŸ‘¨β€πŸ’» Author

Murali Krishna M
Android Development | Kotlin | UI/UX
Email: murali.krishna1591@gmail.com


⭐ Support

If you found this project useful, please star this repository!

About

A simple and intuitive Personal Diary Android application built using Kotlin and Android Studio. Users can create, view, and manage daily journal entries with mood tracking, timestamps, and a clean, scrollable list interface. Features include adding new entries, detailed entry views, mood indicators, and organized storage in app repo

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors