cmd/jot/ # Main CLI application
internal/
journal/ # Journal management
entry/ # Entry management
crypto/ # Encryption utilities
docs/ # Additional documentation
- Standard Library Only: No external dependencies except Go standard library
- Security First: All journal data is encrypted using NaCl for modern security
- Simple Interface: Clear and intuitive CLI commands
- Data Storage: All data stored in
$HOME/.jot/
directory
- Unique name identifier
- Creation timestamp
- List of entries
- NaCl key for encryption
- Creation timestamp
- Encrypted body text
- Associated with a specific journal
- Follow Go 1.20+ standards
- Adhere to:
- SOLID principles
- DRY (Don't Repeat Yourself)
- KISS (Keep It Simple, Stupid)
- YAGNI (You Aren't Gonna Need It)
- Document all exported functions and types
- Keep files focused and concise
- Implement proper error handling
- Use the principle of least privilege
- Write unit tests for all packages
- Include integration tests for CLI commands
- Test encryption/decryption functionality thoroughly
go build ./cmd/jot