A terminal-based daily journaling application built with Clojure.
- Create daily journal entries with prompts for reflection
- View all entries with color-coded formatting
- Search entries by content or date range
- Edit existing entries
- Delete entries
- Unique entry IDs in JFAyyyymmdd format
- Java Runtime Environment (JRE) 8 or higher
- Leiningen (for development and building)
-
Clone the repository:
git clone https://github.com/yourusername/daily-journal.git cd daily-journal -
Run the application:
lein run
-
Clone the repository:
git clone https://github.com/yourusername/daily-journal.git cd daily-journal -
Build the uberjar:
lein uberjar
-
Run the compiled JAR:
java -jar target/uberjar/daily-journal-0.1.0-SNAPSHOT-standalone.jar
After starting the application, you'll see a menu with the following options:
- Create a new entry
- View all entries
- Search entries
- Edit an entry
- Delete an entry
- Exit
When creating a new entry, you'll be prompted to answer:
- How you're feeling today
- What you did well
- What you want to focus on tomorrow
- How you plan to improve
Each entry is automatically dated and assigned a unique ID in the format JFAyyyymmdd.
Entries are displayed in reverse chronological order (newest first), with color-coded formatting for easy reading.
You can search by:
- Content across all fields
- Date range
Entries can be selected by their number in the list for editing or deletion.
src/daily_journal/core.clj- Main application codeproject.clj- Project configuration and dependencies
- Clojure - Functional programming language
- Leiningen - Build tool
- EDN (Extensible Data Notation) - Data storage format
This project is licensed under the MIT License - see the LICENSE file for details.
- Fork the repository
- Create your feature branch (
git checkout -b feature/amazing-feature) - Commit your changes (
git commit -m 'Add some amazing feature') - Push to the branch (
git push origin feature/amazing-feature) - Open a Pull Request