Note: This README was generated with AI assistance to provide comprehensive documentation for the project.
A modern, feature-rich journaling application built with React, TypeScript, and Mantine UI. BenJS Journal is a Progressive Web App (PWA) that offers a clean, intuitive interface for daily journaling with advanced features like speech-to-text, encryption, and mood tracking.
- 📝 Daily Journaling: Create and manage journal entries with title, content, and mood ratings
- 🎤 Speech Recognition: Voice-to-text functionality for hands-free journaling
- 🌙 Dark/Light Mode: Responsive theming for comfortable writing in any lighting
- 🔒 Encryption: Secure your entries with built-in encryption capabilities
- 💾 Local Storage: All data stored locally in your browser for privacy
- 📱 PWA Support: Install as a mobile app with offline capabilities
- ⭐ Mood Tracking: Rate your day with a 5-star system
- 📅 Date Navigation: Easy browsing through past entries
- 💾 Backup & Export: Export your journal data in JSON format
- 🔔 Notifications: Optional notification reminders for journaling
- Node.js (v16 or higher)
- npm or yarn
-
Clone the repository:
git clone https://github.com/yourusername/BenJSJournal.git cd BenJSJournal -
Install dependencies:
npm install
-
Start the development server:
npm run dev
-
Open your browser and navigate to
http://localhost:5173
npm run buildThe built files will be in the dist directory.
- Frontend: React 19, TypeScript
- UI Library: Mantine Core, Mantine Dates
- Build Tool: Vite
- Styling: CSS Modules, Mantine Styles
- Speech Recognition: react-speech-recognition
- Icons: React Icons
- Date Handling: Day.js
- Linting: ESLint with TypeScript rules
BenJS Journal can be installed as a Progressive Web App on your device:
- Offline Support: Continue journaling even without internet
- App-like Experience: Runs in its own window when installed
- Mobile Optimized: Responsive design for all screen sizes
- Service Worker: Caches resources for faster loading
- Local Storage: All journal data is stored locally in your browser
- No Server: No data is sent to external servers
- Encryption: Built-in encryption for sensitive entries
- Export Control: You control your data with export/backup features
- ✅ Base layout and UI
- ✅ Core journaling functionality
- ✅ Audio transcriptions
- ✅ Dark theme support
- ✅ Encryption capabilities
- ✅ Backup and export
- ✅ Mood ratings system
- ✅ Notifications
- ✅ PWA functionality
- ⏳ Markdown support for rich text formatting
- ⏳ Search functionality across entries
- ⏳ Tagging system for organization
- ⏳ File attachments (images, documents)
- ⏳ Auto-locking for security
- ⏳ Custom rating categories
- ⏳ Individual day export as TXT files
- ⏳ Sound/audio attachments
Contributions are welcome! Please feel free to submit a Pull Request. For major changes, please open an issue first to discuss what you would like to change.
- Fork the project
- Create your feature branch (
git checkout -b feature/AmazingFeature) - Commit your changes (
git commit -m 'Add some AmazingFeature') - Push to the branch (
git push origin feature/AmazingFeature) - Open a Pull Request
This project is open source. Please check the license file for more details.
- Mantine UI for the excellent component library
- Vite for the fast development experience
Made with ❤️ for better journaling experiences