Skip to content

fan-tastic-z/EchoDaily

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

45 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

📔 Echo Daily

A minimalist, privacy-focused personal journal with AI assistance

Tauri React TypeScript Rust License CI

FeaturesInstallationDevelopmentContributing


✨ Features

📝 Rich Journaling

  • Modern Editor: Built on TipTap with markdown support, code blocks, and more
  • Auto-Save: Never lose your thoughts with automatic saving
  • Calendar View: Navigate entries easily with an intuitive calendar interface
  • Mood Tracking: Record your daily mood with emoji indicators
  • Daily Quotes: AI-generated inspirational quotes to spark creativity

🤖 AI Assistance

  • Text Polish: Enhance your writing with AI-powered refinement
  • Translation: Translate content to multiple languages
  • Grammar Fix: Automatically correct grammar mistakes
  • Word Dictionary: Select a word to get phonetic, definitions, and etymology
  • History: Track all AI operations for each entry

📚 Vocabulary Learning

  • Save Words: Save translated words to your personal vocabulary
  • Dictionary View: View words with phonetic transcription and definitions
  • Date Organization: Browse vocabulary by day or month
  • Anki Export: Export vocabulary to Anki-compatible TSV format for flashcard learning
  • Sidebar Access: Quick access to today's vocabulary from the editor

🔊 Text-to-Speech

  • Multiple Providers: Support for Qwen (阿里云) and Murf.ai
  • Voice Selection: Choose from various voice options
  • Speed Control: Adjust playback speed (Murf provider)
  • Audio Playback: Built-in audio player powered by Howler.js

📊 Insights

  • Writing Statistics: Track total entries, current streak, and longest streak
  • Mood Analytics: Visualize your emotional patterns over time
  • Full-Text Search: Quickly find entries with powerful search capabilities

💾 Data Management

  • Cloud Sync: Synchronize your entries across devices via Supabase
  • Import/Export: Backup and restore your data as JSON
  • Privacy First: All data stored locally on your device by default
  • Cross-Platform: Available on Windows, macOS, and Linux

🚀 Installation

Prerequisites

From Source

# Clone the repository
git clone https://github.com/fan-tastic-z/echo-daily.git
cd echo-daily

# Install dependencies
pnpm install

# Run in development mode
pnpm tauri dev

Pre-built Binaries

Coming soon! Releases will be available on GitHub Releases.


🛠️ Development

Project Structure

echo-daily/
├── src/                    # Frontend source (React + TypeScript)
│   ├── components/         # React components
│   ├── lib/               # API layer
│   ├── store/             # State management (Zustand)
│   └── types/             # TypeScript types
├── src-tauri/             # Backend source (Rust)
│   ├── src/
│   │   ├── ai/           # AI provider implementations
│   │   ├── db/           # Database queries and migrations
│   │   ├── tts/          # Text-to-speech providers
│   │   └── keychain/     # Secure storage for API keys
│   └── capabilities/      # Tauri capability configurations
└── Cargo.toml            # Rust dependencies

Available Scripts

# Development
pnpm tauri dev          # Start dev server with hot reload

# Building
pnpm tauri build        # Build production binaries
pnpm build              # Build frontend only

# Linting & Formatting
pnpm exec eslint .      # Lint frontend code
pnpm exec prettier --write .  # Format code

# Type checking
pnpm exec tsc --noEmit  # Check TypeScript types

# Rust
cargo check            # Check Rust code
cargo test             # Run Rust tests
cargo clippy           # Lint Rust code

Build Notes

Linux (Arch/Manjaro):

  • AppImage bundling may fail due to linuxdeploy compatibility with newer system libraries
  • The build produces working DEB and RPM packages successfully
  • If you encounter AppImage build errors, the packages are still available in src-tauri/target/release/bundle/

Output Artifacts:

  • Linux: .deb, .rpm, .AppImage bundles
  • Windows: .exe installer
  • macOS: .dmg installer, .app bundle

Tech Stack

Frontend:

  • Framework: React 19.1 with TypeScript
  • Editor: TipTap (ProseMirror-based)
  • Styling: Tailwind CSS
  • State: Zustand
  • Audio: Howler.js
  • Icons: Lucide React
  • Code Quality: ESLint 9, Prettier

Backend:

  • Framework: Tauri 2.0
  • Database: SQLite with SQLx
  • AI: 智谱 AI (Zhipu AI)
  • TTS: Qwen, Murf.ai
  • Sync: Supabase (optional, self-hosted)
  • Security: Platform keychain for API keys

📸 Screenshots

TODO: Add screenshots here


⚙️ Configuration

AI Settings

  1. Click the wand icon (🪄) in the header
  2. Enter your Zhipu AI API key
  3. Configure model settings

TTS Settings

  1. Click the speaker icon (🔊) in the header
  2. Choose your provider (Qwen or Murf.ai)
  3. Enter your API key
  4. Select voice and adjust speed

Sync Settings

  1. Click the cloud icon (☁️) in the header
  2. Configure your Supabase project:
    • Enter your Supabase URL and anon key
    • Set up the required database tables
  3. Enable sync to keep your entries synchronized across devices
  4. Manual sync or automatic sync on save

Vocabulary Settings

  1. Click the book icon (📖) in the header to open the vocabulary panel
  2. Browse saved words by date or view all words
  3. Click "Export to Anki" to download vocabulary as TSV file
  4. Import the TSV file into Anki for flashcard learning

Data Backup

  1. Click the database icon (💾) in the header
  2. Export: Save all your data as a JSON file
  3. Import: Restore from a previous backup

🗺️ Roadmap

  • Mobile apps (iOS/Android)
  • Plugin system
  • Custom themes
  • End-to-end encryption
  • More AI providers
  • Attachment support (images, files)

📄 License

This project is licensed under the MIT License - see the LICENSE file for details.


🙏 Acknowledgments

  • Tauri - Cross-platform desktop framework
  • TipTap - Rich text editor framework
  • Zhipu AI - AI services provider
  • Supabase - Backend as a service for sync
  • Howler.js - Audio library for reliable playback
  • Lucide - Beautiful icons

Made with ❤️ by fan-tastic-z

⭐ Star us on GitHub — it helps!

About

No description, website, or topics provided.

Resources

License

Contributing

Stars

Watchers

Forks

Packages

 
 
 

Contributors