A console-based Daily Journal App built using Java that allows users to securely write, manage, and search personal journal entries.
This project demonstrates OOP, File Handling, Serialization, Date/Time API, and Password Encryption.
- 🔐 Password Protection (SHA-256 Encrypted)
- ➕ Add new journal entries
- 📖 View all saved entries
- 🔍 Search entry by ID
- 📅 Search entries by date
- ✏ Edit existing entries
- 🗑 Delete entries
- 💾 Persistent storage using file serialization
- 🧱 OOP-based design
- 🖥 Menu-driven console interface
- Object-Oriented Programming (OOP)
- Java Collections (ArrayList)
- File Handling (ObjectInputStream / ObjectOutputStream)
- Serialization
- Java Time API (LocalDateTime, DateTimeFormatter)
- SHA-256 Password Hashing
- Exception Handling
- CRUD Operations
journalapp/
│
├── AuthManager.java → Handles encrypted login system
├── JournalEntry.java → Model class for journal entries
├── JournalManager.java → Business logic & file handling
└── Main.java → Menu-driven user interface
The application stores passwords using SHA-256 hashing instead of plain text.
This ensures that even if the password file is accessed, the real password cannot be read.
- Clone the repository
- Open in any Java IDE (IntelliJ, Eclipse, VS Code)
- Compile all files
- Run
Main.java
On first run, you will be asked to set a password.
When searching by date, use:
dd-MM-yyyy
Example: 03-02-2026