{"id":29858308,"url":"https://github.com/evorhard/evorbrain","last_synced_at":"2026-04-13T03:02:54.809Z","repository":{"id":307038804,"uuid":"1027401023","full_name":"evorhard/EvorBrain","owner":"evorhard","description":"Local-first life management system combining Notion's organization with Obsidian's data ownership. Built with Tauri, SolidJS \u0026 SQLite for blazing-fast performance.","archived":false,"fork":false,"pushed_at":"2025-07-29T04:57:48.000Z","size":273,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":0,"default_branch":"master","last_synced_at":"2025-07-29T05:43:46.083Z","etag":null,"topics":["cross-platform","desktop-app","git-backup","hierarchical-organization","knowledge-management","local-first","markdown","notion-alternative","obsidian-alternative","offline-first","open-source","personal-information-manager","productivity","rust","second-brain","solidjs","sqlite","task-management","tauri","typescript"],"latest_commit_sha":null,"homepage":"","language":"TypeScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/evorhard.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null}},"created_at":"2025-07-28T00:17:03.000Z","updated_at":"2025-07-29T04:57:51.000Z","dependencies_parsed_at":"2025-07-29T05:54:28.626Z","dependency_job_id":null,"html_url":"https://github.com/evorhard/EvorBrain","commit_stats":null,"previous_names":["evorhard/evorbrain"],"tags_count":null,"template":false,"template_full_name":null,"purl":"pkg:github/evorhard/EvorBrain","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/evorhard%2FEvorBrain","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/evorhard%2FEvorBrain/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/evorhard%2FEvorBrain/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/evorhard%2FEvorBrain/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/evorhard","download_url":"https://codeload.github.com/evorhard/EvorBrain/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/evorhard%2FEvorBrain/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":273516327,"owners_count":25119763,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","status":"online","status_checked_at":"2025-09-03T02:00:09.631Z","response_time":76,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["cross-platform","desktop-app","git-backup","hierarchical-organization","knowledge-management","local-first","markdown","notion-alternative","obsidian-alternative","offline-first","open-source","personal-information-manager","productivity","rust","second-brain","solidjs","sqlite","task-management","tauri","typescript"],"created_at":"2025-07-30T02:00:46.852Z","updated_at":"2025-10-04T06:12:04.747Z","avatar_url":"https://github.com/evorhard.png","language":"TypeScript","funding_links":["https://buymeacoffee.com/evorbrain","https://github.com/sponsors/yourusername","https://opencollective.com/evorbrain"],"categories":[],"sub_categories":[],"readme":"# 🧠 EvorBrain\n\n```\n███████╗██╗   ██╗ ██████╗ ██████╗ ██████╗ ██████╗  █████╗ ██╗███╗   ██╗\n██╔════╝██║   ██║██╔═══██╗██╔══██╗██╔══██╗██╔══██╗██╔══██╗██║████╗  ██║\n█████╗  ██║   ██║██║   ██║██████╔╝██████╔╝██████╔╝███████║██║██╔██╗ ██║\n██╔══╝  ╚██╗ ██╔╝██║   ██║██╔══██╗██╔══██╗██╔══██╗██╔══██║██║██║╚██╗██║\n███████╗ ╚████╔╝ ╚██████╔╝██║  ██║██████╔╝██║  ██║██║  ██║██║██║ ╚████║\n╚══════╝  ╚═══╝   ╚═════╝ ╚═╝  ╚═╝╚═════╝ ╚═╝  ╚═╝╚═╝  ╚═╝╚═╝╚═╝  ╚═══╝\n```\n\n**A local-first, hierarchical task management system that combines the best of Notion and Obsidian\ninto a blazing-fast desktop application.**\n\n\u003e ⚠️ **IMPORTANT: This project is currently in early development and is NOT functional yet.** The\n\u003e documentation below describes the planned features and architecture. Please check the\n\u003e [Current Status](#-current-status) section for development progress.\n\n[![Tauri](https://img.shields.io/badge/Tauri-2.0-24C8DB?style=for-the-badge\u0026logo=tauri\u0026logoColor=white)](https://tauri.app)\n[![SolidJS](https://img.shields.io/badge/SolidJS-1.8-2C4F7C?style=for-the-badge\u0026logo=solid\u0026logoColor=white)](https://solidjs.com)\n[![TypeScript](https://img.shields.io/badge/TypeScript-5.3-3178C6?style=for-the-badge\u0026logo=typescript\u0026logoColor=white)](https://typescriptlang.org)\n[![Rust](https://img.shields.io/badge/Rust-1.75-000000?style=for-the-badge\u0026logo=rust\u0026logoColor=white)](https://rust-lang.org)\n[![SQLite](https://img.shields.io/badge/SQLite-3.44-003B57?style=for-the-badge\u0026logo=sqlite\u0026logoColor=white)](https://sqlite.org)\n[![Bun](https://img.shields.io/badge/Bun-1.0-000000?style=for-the-badge\u0026logo=bun\u0026logoColor=white)](https://bun.sh)\n[![License](https://img.shields.io/badge/License-MIT-green?style=for-the-badge)](LICENSE)\n\n---\n\n## 📋 Table of Contents\n\n- [What Does This Do?](#-what-does-this-do)\n- [Current Status](#-current-status)\n- [Key Features](#-key-features)\n- [Tech Stack](#-tech-stack)\n- [Prerequisites](#-prerequisites)\n- [Installation](#-installation)\n- [Getting Started](#-getting-started)\n- [Project Structure](#-project-structure)\n- [Development Workflow](#-development-workflow)\n- [Documentation](#-documentation)\n- [Contributing](#-contributing)\n- [License](#-license)\n- [Support](#-support)\n\n---\n\n## 🚧 Current Status\n\nEvorBrain is currently in the initial development phase. Here's the development progress:\n\n### 🎯 Minimum Viable Product (MVP)\n\nThe MVP will be considered complete and operational when the following core features are\nimplemented:\n\n1. **✅ Hierarchical task management** - Organize your life with Life Areas → Goals → Projects →\n   Tasks\n2. **✅ Dashboard overview** - See what needs to be done at a glance\n3. **✅ Priority system** - Focus on what matters most\n4. **✅ Calendar view** - Visualize your tasks over time\n5. **✅ Local file storage** - Your data stays on your computer\n6. **✅ Windows support** - Native Windows 10/11 application\n7. **✅ Automatic Git backups** - Never lose your data\n\n**When will it be ready?** The app will be functional for daily use once Phase 2 (Core Features) and\nPhase 3.1-3.2 (File System \u0026 Git Integration) are complete. Check the\n[Development Checklist](#development-checklist) below for current progress.\n\n### Development Checklist\n\n#### ✅ Completed\n\n- [x] Project initialization and documentation\n- [x] Technology stack selection\n- [x] High-level architecture planning\n- [x] Development environment setup\n- [x] Basic Tauri application scaffold\n- [x] Initial UI component library setup (Kobalte)\n- [x] Theme system with dark mode support\n- [x] Responsive design system with breakpoints\n- [x] Base layout components (Header, Sidebar, Content Area)\n- [x] Core UI components (Button, Input, Modal, Card, etc.)\n- [x] SQLite database integration with SQLx\n- [x] Database migration system\n- [x] Core data models (Rust)\n- [x] Tauri IPC commands structure\n- [x] Frontend TypeScript type definitions\n- [x] Type-safe API client with full command coverage\n- [x] Testing framework setup (Vitest + SolidJS Testing Library)\n- [x] E2E testing setup with Playwright\n- [x] Comprehensive test utilities (TauriMock, render helpers, data factories)\n- [x] Test infrastructure with factory pattern for testable stores\n- [x] API abstraction layer with test doubles for better testing\n- [x] ESLint configuration with TypeScript and SolidJS rules\n- [x] Prettier configuration for code formatting\n- [x] Pre-commit hooks with Husky and lint-staged\n- [x] Code quality improvements (reduced ESLint errors from 181 to 2 warnings)\n- [x] Consolidated imports across codebase\n- [x] Removed unused demo and test components\n- [x] Added ConfirmDialog component to replace browser confirm/alert dialogs\n- [x] Fixed TypeScript type safety issues (replaced `any` with proper types)\n- [x] Resolved SolidJS reactivity warnings\n- [x] Component documentation standards defined\n- [x] Comprehensive testing infrastructure with 380+ tests passing\n- [x] Factory pattern for testable stores with dependency injection\n- [x] Enhanced render helpers with StoreProvider and ThemeProvider support\n- [x] Complete test coverage for all Life Area, Goal, Project, and Task components\n- [x] Integration tests for cross-store interactions and data flow\n- [x] Archiving functionality comprehensively tested\n\n#### 🔄 In Progress (MVP Focus)\n\n- [ ] Basic CRUD operations implementation (MVP)\n- [ ] Frontend state management setup (MVP)\n\n#### 📋 Pending - MVP Requirements\n\n**Essential for MVP:**\n\n- [ ] Complete CRUD operations for all entities\n- [ ] Hierarchical navigation component\n- [ ] Dashboard/Homepage with task overview\n- [ ] Task management UI with priority system\n- [ ] Calendar view implementation\n- [ ] Local file storage (Obsidian-like structure)\n- [ ] Git integration for automatic backups\n\n**Post-MVP Features:**\n\n- [ ] Search functionality\n- [ ] Keyboard shortcuts\n- [ ] Markdown editor integration\n- [ ] Import/Export functionality\n- [ ] Cross-platform testing (macOS, Linux)\n- [ ] Performance optimization\n- [ ] AI-powered features\n\n**Development Status**: Major progress! The app now has a complete database layer with SQLite\nintegration, migration system, and all data models implemented. The UI foundation is complete with\ntheme system and responsive design. All Tauri IPC commands are implemented with full CRUD operations\nfor Life Areas, Goals, Projects, Tasks, and Notes. A type-safe frontend API client is ready to use.\n**✅ Testing infrastructure now fully complete** with 380+ tests passing across all components and\nstores, comprehensive factory patterns for testable stores, enhanced render helpers with provider\nsupport, and complete integration testing. All testing infrastructure issues have been resolved.\nNext up: implementing the actual UI functionality and state management.\n\n---\n\n## 🤔 What Does This Do?\n\nEvorBrain is your personal life management system that helps you organize everything from big life\ngoals down to daily tasks. Think of it as a digital brain that:\n\n- **Organizes your life** into clear areas (Career, Health, Finance, etc.)\n- **Breaks down goals** into achievable projects and tasks\n- **Stores everything locally** on your computer - you own your data\n- **Syncs automatically** using Git for backups and multi-device access\n- **Works offline** with the speed of a native desktop app\n- **Reads like Obsidian** with human-readable markdown files\n- **Functions like Notion** with a beautiful, intuitive interface\n\nPerfect for anyone who wants the power of Notion's organization with Obsidian's local-first\nphilosophy and the performance of a native app.\n\n---\n\n## ✨ Key Features\n\n### 🚀 Currently In Development\n\n\u003e **Note**: These features represent the planned functionality. None of these features are\n\u003e implemented yet.\n\n- **Hierarchical Organization**: Life Areas → Goals → Projects → Tasks → Subtasks\n- **Local-First Storage**: All data stored in SQLite + markdown files on your computer\n- **Git Integration**: Automatic version control and backup to GitHub/GitLab\n- **Beautiful UI**: Modern, responsive interface built with SolidJS and Tailwind CSS\n- **Responsive Design**: Mobile-first design with custom breakpoint system and responsive utilities\n- **Fast Performance**: Native desktop app performance with \u003c2s startup time\n- **Calendar View**: Visualize tasks and deadlines in month/week/day views\n- **Full-Text Search**: Instantly find any task, project, or goal\n- **Keyboard Shortcuts**: Navigate and manage tasks without touching the mouse\n\n### 🔮 Coming Soon\n\n- **AI-Powered Prioritization**: Smart task priority suggestions\n- **Habit Tracking**: Build and monitor daily habits with streak tracking\n- **Health Metrics**: Track wellness data and correlate with productivity\n- **Plugin System**: Extend functionality with custom plugins\n- **Mobile Companion**: Access your data on the go\n- **Advanced Analytics**: Visualize progress with beautiful charts\n- **Template System**: Save and reuse project/task templates\n- **Cross-Platform**: Full support for macOS and Linux\n\n---\n\n## 🛠️ Tech Stack\n\n### Core Technologies\n\n| Component              | Technology                                                                                                  | Why I Chose It                                                                  |\n| ---------------------- | ----------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------- |\n| **Desktop Framework**  | [Tauri 2.0](https://tauri.app)                                                                              | Rust-powered, secure, 50MB apps vs Electron's 150MB+                            |\n| **Frontend Framework** | [SolidJS](https://solidjs.com)                                                                              | No virtual DOM, fine-grained reactivity, 7KB runtime                            |\n| **Styling**            | [Tailwind CSS](https://tailwindcss.com)                                                                     | Utility-first, great DX, perfect for rapid development                          |\n| **Responsive Design**  | Custom Breakpoint System                                                                                    | Mobile-first with useBreakpoint hook \u0026 responsive utils                         |\n| **UI Components**      | [Kobalte](https://kobalte.dev)                                                                              | Accessible, unstyled components for SolidJS                                     |\n| **Database**           | [SQLite](https://sqlite.org) with [SQLx](https://github.com/launchbadge/sqlx)                               | Fast, reliable, zero-config embedded database with compile-time checked queries |\n| **Migrations**         | Custom Rust-based system                                                                                    | Version-controlled database schema with up/down support                         |\n| **Language**           | [TypeScript](https://typescriptlang.org)                                                                    | Type safety, better DX, fewer runtime errors                                    |\n| **Backend Language**   | [Rust](https://rust-lang.org)                                                                               | Memory safe, blazing fast, excellent for native apps                            |\n| **Package Manager**    | [Bun](https://bun.sh)                                                                                       | Fast all-in-one JavaScript runtime and toolkit                                  |\n| **State Management**   | [Solid Stores](https://www.solidjs.com/docs/latest#stores)                                                  | Built-in reactive state management                                              |\n| **Router**             | [@solidjs/router](https://github.com/solidjs/solid-router)                                                  | Official SolidJS routing solution                                               |\n| **Build Tool**         | [Vite](https://vitejs.dev)                                                                                  | Fast frontend build tool with HMR                                               |\n| **Testing**            | [Vitest](https://vitest.dev) + [@solidjs/testing-library](https://github.com/solidjs/solid-testing-library) | Comprehensive testing framework with 380+ passing tests \u0026 factory patterns      |\n| **E2E Testing**        | [Playwright](https://playwright.dev)                                                                        | Cross-browser end-to-end testing for Tauri apps                                 |\n| **Linting**            | [ESLint](https://eslint.org) + TypeScript ESLint                                                            | Code quality and consistency enforcement                                        |\n| **Formatting**         | [Prettier](https://prettier.io)                                                                             | Consistent code formatting across the project                                   |\n| **Git Hooks**          | [Husky](https://typicode.github.io/husky) + [lint-staged](https://github.com/okonet/lint-staged)            | Pre-commit hooks for code quality checks                                        |\n\n---\n\n## 📦 Prerequisites\n\nBefore you begin, ensure you have the following installed:\n\n- **[Bun](https://bun.sh)** (v1.0 or higher) - JavaScript runtime and package manager\n- **[Rust](https://rust-lang.org)** (v1.75 or higher) - Required for Tauri backend\n- **[Git](https://git-scm.com)** - For version control and backup features\n- **[Node.js](https://nodejs.org)** (v18 or higher) - Some dependencies still require Node\n- **OS Requirements**:\n  - Windows 10/11 (version 1803 or higher with WebView2)\n  - macOS 10.15 or higher (coming soon)\n  - Linux with webkit2gtk (coming soon)\n\n### System Dependencies\n\n#### Windows\n\n- WebView2 (auto-installed by Tauri if not present)\n- Visual Studio Build Tools or Visual Studio 2019+ with C++ support\n\n#### macOS (Coming Soon)\n\n- Xcode Command Line Tools\n\n#### Linux (Coming Soon)\n\n- `webkit2gtk-4.0`\n- `libssl-dev`\n- `libgtk-3-dev`\n\n---\n\n## 🚀 Installation\n\n\u003e 🚀 **Developer Notice**: The application now runs in development mode! While core functionality\n\u003e like task management isn't implemented yet, you can explore the UI framework and responsive design\n\u003e system.\n\n### 1. Clone the Repository\n\n```bash\ngit clone https://github.com/evorhard/evorbrain.git\ncd evorbrain\n```\n\n### 2. Install Dependencies\n\n```bash\n# Install JavaScript dependencies\nbun install\n\n# Install Rust dependencies (handled automatically by Tauri)\n```\n\n### 3. Set Up Development Environment\n\n```bash\n# Start the Tauri development server\nbun run tauri:dev\n# or\nbun run start\n\n# The app will launch with:\n# - Working UI framework with theme switching\n# - Responsive design system\n# - Demo components showcasing the design system\n# - Database migration system (check MigrationTester component)\n# - Hot module replacement for development\n```\n\n**Current State**: Both UI foundation and database layer are complete! You can run the app to\nexplore the component library, theme system, responsive design, and test the database migration\nsystem. Next milestone: implementing CRUD operations and connecting frontend to backend.\n\n---\n\n## 🎯 Getting Started\n\n\u003e 📝 **Note**: This section describes the planned user experience once the application is\n\u003e functional. It's currently here as a reference for the intended workflow.\n\n### Quick Start Guide (Planned Experience)\n\n1. **Launch the App**\n\n   ```bash\n   bun run dev  # This command doesn't work yet\n   ```\n\n2. **Create Your First Life Area** _(Not implemented)_\n   - Click the \"+\" button in the sidebar\n   - Name it (e.g., \"Career\", \"Health\", \"Personal\")\n   - Choose a color and icon\n\n3. **Add a Goal** _(Not implemented)_\n   - Select your life area\n   - Click \"Add Goal\"\n   - Define what you want to achieve\n   - Set a target date\n\n4. **Create a Project** _(Not implemented)_\n   - Within your goal, create a project\n   - Break it down into actionable tasks\n   - Set priorities and deadlines\n\n5. **Start Working!** _(Not implemented)_\n   - Check off tasks as you complete them\n   - Watch your progress automatically update\n   - Your data is saved locally and backed up via Git\n\n### Keyboard Shortcuts\n\n| Shortcut       | Action                 |\n| -------------- | ---------------------- |\n| `Ctrl/Cmd + N` | New task               |\n| `Ctrl/Cmd + /` | Search                 |\n| `Ctrl/Cmd + S` | Save/Sync              |\n| `Ctrl/Cmd + ,` | Settings               |\n| `Tab`          | Navigate forward       |\n| `Shift + Tab`  | Navigate backward      |\n| `Space`        | Toggle task completion |\n\n---\n\n## 📁 Project Structure\n\n```\nevorbrain/\n├── src-tauri/              # Rust backend\n│   ├── src/\n│   │   ├── main.rs        # Application entry point\n│   │   ├── lib.rs         # Library root with command registration\n│   │   ├── commands/      # Tauri IPC commands ✅\n│   │   │   ├── life_areas.rs\n│   │   │   ├── goals.rs\n│   │   │   ├── projects.rs\n│   │   │   ├── tasks.rs\n│   │   │   └── notes.rs\n│   │   ├── db/           # Database operations ✅\n│   │   │   ├── models.rs  # Data models\n│   │   │   ├── migrations/ # Migration system\n│   │   │   └── repository.rs\n│   │   ├── storage/      # File system operations (planned)\n│   │   ├── sync/         # Git synchronization (planned)\n│   │   └── utils/        # Shared utilities\n│   ├── Cargo.toml        # Rust dependencies\n│   └── tauri.conf.json   # Tauri configuration\n│\n├── src/                   # SolidJS frontend\n│   ├── components/       # UI components ✅\n│   ├── stores/          # State management (planned)\n│   ├── hooks/           # Custom hooks ✅\n│   ├── lib/             # Libraries and utilities\n│   │   ├── api.ts       # Type-safe Tauri API client ✅\n│   │   └── api.test.ts  # API client tests ✅\n│   ├── test/            # Test utilities and setup ✅\n│   │   └── setup.ts     # Test environment configuration\n│   ├── types/           # TypeScript types ✅\n│   │   ├── models.ts    # Database model types\n│   │   ├── commands.ts  # Command request/response types\n│   │   └── index.ts     # Type exports\n│   ├── styles/          # Global styles\n│   └── App.tsx          # Root component\n│\n├── data/                  # User data (git-ignored)\n│   ├── evorbrain.db      # SQLite database\n│   ├── areas/           # Life area markdown files\n│   ├── attachments/     # File attachments\n│   └── config/          # User settings\n│\n├── e2e/                  # End-to-end tests ✅\n│   ├── fixtures.ts      # Test fixtures and setup\n│   ├── helpers/         # E2E test helper functions\n│   └── *.spec.ts        # E2E test files\n│\n├── public/               # Static assets\n├── scripts/             # Build and utility scripts\n├── tests/               # Test files\n├── vitest.config.ts     # Vitest configuration ✅\n├── playwright.config.ts # Playwright configuration ✅\n│\n├── .github/             # GitHub Actions workflows\n├── package.json         # Node.js dependencies\n├── bun.lockb           # Bun lock file\n├── tsconfig.json       # TypeScript configuration\n├── vite.config.ts      # Vite configuration\n├── tailwind.config.js  # Tailwind configuration\n│\n├── PLANNING.md         # Architecture and planning document\n├── TASKS.md           # Development task tracking\n├── ARCHITECTURE.md    # Technical specifications\n└── README.md          # You are here! 👋\n```\n\n---\n\n## 💻 Development Workflow\n\n### Running the App\n\n\u003e ℹ️ **Note**: Some commands are still being configured as development progresses.\n\n```bash\n# Development mode with hot reload ✅ WORKING\nbun run tauri:dev\n# or\nbun run start\n\n# Build for production ✅ WORKING\nbun run tauri:build\n\n# Run tests ✅ WORKING (use vitest, not bun test directly)\nbun run test          # Run tests in watch mode\nbun run test:ui       # Run tests with UI interface\nbun run test:run      # Run tests once\nbun run test:coverage # Run tests with coverage report\n\n# Run specific test file\nbunx vitest run src/components/features/LifeArea*.test.tsx\n\n# Run E2E tests ✅ WORKING\nbun run test:e2e      # Run end-to-end tests\nbun run test:e2e:ui   # Run E2E tests with interactive UI\nbun run test:e2e:debug # Debug E2E tests\nbun run test:e2e:headed # Run E2E tests in headed mode\n\n# Rebuild commands ✅ WORKING\nbun run rebuild     # Clean Rust cache and restart dev server\nbun run rebuild:all # Deep clean everything, reinstall deps, and restart\n\n# Lint code ✅ WORKING\nbun run lint      # Check for linting errors\nbun run lint:fix  # Auto-fix linting errors where possible\n\n# Format code ✅ WORKING\nbun run format    # Format all code with Prettier\nbun run format:check # Check if code is properly formatted\n\n# Generate documentation ✅ WORKING\nbun run docs          # Generate all documentation\nbun run docs:typescript # Generate TypeScript/Frontend docs only\nbun run docs:rust     # Generate Rust/Backend docs only\nbun run docs:serve    # Serve documentation locally\n```\n\n### Making Changes\n\n1. **Create a feature branch**\n\n   ```bash\n   git checkout -b feature/your-feature-name\n   ```\n\n2. **Make your changes**\n   - Follow the coding standards in [`PLANNING.md`](PLANNING.md#coding-standards)\n   - Write tests for new functionality\n   - Update documentation as needed\n\n3. **Test your changes**\n\n   ```bash\n   bun run test      # Run unit tests\n   bun run lint      # Check code quality\n   bun run lint:fix  # Auto-fix linting issues\n   ```\n\n4. **Commit with conventional commits**\n\n   ```bash\n   git commit -m \"feat: add new calendar view\"\n   ```\n\n5. **Push and create a pull request**\n   ```bash\n   git push origin feature/your-feature-name\n   ```\n\n### Development Tips\n\n- Use the VS Code workspace settings for consistent formatting\n- Install recommended extensions for the best development experience\n- Check [`TASKS.md`](TASKS.md) for current development priorities\n- Join my Discord for help and discussions\n\n### Troubleshooting Development Issues\n\nIf you encounter issues where changes aren't taking effect:\n\n1. **Frontend changes not updating**: The Vite dev server should hot-reload automatically. If not,\n   try refreshing the browser.\n\n2. **Backend (Rust) changes not working**:\n\n   ```bash\n   # Clean and rebuild the Rust backend\n   bun run rebuild\n   ```\n\n3. **Database issues or stale data**:\n   - Check the database location: `~/.local/share/com.evorbrain.evorbrain/evorbrain.db` (Linux/Mac)\n   - Delete the database file to start fresh (backup first if needed)\n\n4. **Complete reset**:\n   ```bash\n   bun run rebuild:all  # Clean everything, reinstall deps, and start fresh\n   ```\n\n---\n\n## 🧪 Testing\n\nThe project uses Vitest for unit testing and Playwright for end-to-end testing with comprehensive\ntest infrastructure.\n\n### ✅ Testing Status: COMPLETED\n\n**Comprehensive testing framework successfully implemented with 380+ tests passing:**\n\n- **✅ Complete Test Infrastructure**: Factory patterns, enhanced render helpers, and full provider\n  support\n- **✅ Enhanced API Abstraction**: TestApiClient with isolated unit testing capabilities\n- **✅ Comprehensive Component Coverage**: All Life Area, Goal, Project, and Task components fully\n  tested\n- **✅ Integration Testing**: Cross-store interactions and data flow validation\n- **✅ Advanced Test Utilities**: TauriMock with state management, custom matchers, and data\n  factories\n- **✅ Provider Support**: StoreProvider and ThemeProvider integration in test utilities\n- **✅ Archiving Tests**: Complete cascading operations and UI state validation\n\n**Current Test Coverage:**\n\n- 65+ Life Area tests (factory pattern, UI, validation)\n- 94+ Goal tests (complete CRUD, state management)\n- 75+ Project tests (status transitions, form validation)\n- 83+ Task tests (subtasks, priorities, due dates)\n- 42+ Integration tests (cross-store interactions)\n- 20+ Archiving functionality tests\n\n**Testing Best Practices Established:**\n\n- Factory pattern for store-dependent components\n- Enhanced render helpers for UI-only components\n- TestApiClient for API mocking (not vi.mock)\n- Custom matchers for domain validation\n\n### Running Tests\n\n```bash\n# Run all tests in watch mode\nbun run test\n\n# Run all tests once (recommended for CI)\nbun run test:run\n\n# Run tests with interactive UI interface\nbun run test:ui\n\n# Run specific test files (factory pattern tests work best)\nbunx vitest run src/components/features/goals/GoalsPage.factory.test.tsx\nbunx vitest run src/stores/goalStore.factory.test.ts\n\n# Run E2E tests (fully working)\nbun run test:e2e\nbun run test:e2e:ui      # With interactive UI\nbun run test:e2e:debug   # With debugging tools\n```\n\n### Test Coverage\n\nThe project includes comprehensive test coverage reporting using Vitest's built-in coverage support\n(via c8/v8).\n\n```bash\n# Generate coverage report\nbun run test:coverage\n\n# Coverage will be generated in ./coverage directory\n# Open ./coverage/index.html in your browser for detailed report\n```\n\n#### Coverage Configuration\n\n- **Coverage Thresholds**: 80% for statements, functions, and lines; 70% for branches\n- **Output Formats**: text, json, html, and lcov\n- **Excluded Files**: Test files, configuration files, type definitions, and test utilities\n\nThe coverage configuration can be found in `vitest.config.ts`. Coverage reports are automatically\nexcluded from version control.\n\n### Test Utilities\n\n**Comprehensive test utilities in `src/test/utils/` with full provider support:**\n\n- **✅ Enhanced Render Helpers**: `renderWithProviders()`, `renderWithStores()`,\n  `renderWithAllProviders()`\n- **✅ TauriMock**: Advanced mocking for Tauri IPC commands with state management and isolation\n- **✅ Data Factories**: Functions for generating realistic test data for all entities\n- **✅ Custom Matchers**: Domain-specific assertions for validation and state checking\n- **✅ API Test Doubles**: TestApiClient for completely isolated unit testing\n- **✅ Store Factory Pattern**: Testable stores with dependency injection for component testing\n- **✅ Provider Integration**: StoreProvider and ThemeProvider support in all render helpers\n\n**Key Features:**\n\n- Factory pattern for store-dependent components (recommended)\n- Enhanced render helpers for UI-only components\n- Complete provider support (stores, theme, router)\n- Isolated testing with mock APIs\n- Comprehensive documentation and examples\n\nSee the [Test Utilities Documentation](src/test/utils/README.md) for complete guides and best\npractices.\n\n---\n\n## 📚 Documentation\n\n### Project Documentation\n\n- **[Planning Document](PLANNING.md)** - Project vision, design decisions, and development phases\n- **[Architecture Document](ARCHITECTURE.md)** - Detailed technical architecture and implementation\n  specs\n- **[Task Tracking](TASKS.md)** - Current development status, upcoming features, and task\n  assignments\n- **[Business Logic](docs/BUSINESS_LOGIC.md)** - Complex business logic patterns and architectural\n  decisions\n- **[Component Standards](docs/COMPONENT_STANDARDS.md)** - Guidelines for writing consistent,\n  well-documented components\n\n### API Documentation\n\n- **[API Documentation](docs/api/)** - Auto-generated API documentation for TypeScript and Rust code\n- **[TypeScript API](docs/api/typescript/)** - Frontend components, stores, and utilities\n  documentation\n- **[Rust API](docs/api/rust/)** - Backend commands, database operations, and system APIs\n  documentation\n\n### Testing Documentation\n\n- **[Test Utilities Guide](src/test/utils/README.md)** - Comprehensive guide to test utilities and\n  helpers\n- **[Component Testing Guide](src/test/component-testing-guide.md)** - Guide for writing component\n  tests\n- **[E2E Testing Guide](e2e/README.md)** - Comprehensive guide for end-to-end testing\n\n### User Documentation\n\n- **[User Guide](docs/user-guide.md)** - Comprehensive user documentation (coming soon)\n\n### Generating Documentation\n\nThe project uses automated documentation generation tools:\n\n```bash\n# Generate all documentation (TypeScript + Rust)\nbun run docs\n\n# Generate TypeScript documentation only\nbun run docs:typescript\n\n# Generate Rust documentation only\nbun run docs:rust\n\n# Serve documentation locally\nbun run docs:serve\n```\n\nDocumentation is automatically generated on push to main/master branches via GitHub Actions.\n\n---\n\n## 🤝 Contributing\n\nI love contributions! EvorBrain is built by the community, for the community.\n\n### How to Contribute\n\n1. **Check existing issues** or create a new one\n2. **Fork the repository** and create your branch\n3. **Make your changes** following our coding standards\n4. **Write/update tests** as needed\n5. **Submit a pull request** with a clear description\n\n### Ways to Contribute\n\n- 🐛 **Report bugs** and help me fix them\n- 💡 **Suggest features** that would make EvorBrain better\n- 📝 **Improve documentation** to help others\n- 🎨 **Design UI/UX improvements**\n- 🌍 **Translate** to your language (coming soon)\n- ⭐ **Star the project** to show your support!\n\nSee my [Contributing Guidelines](CONTRIBUTING.md) for more details (coming soon).\n\n---\n\n## 📄 License\n\nEvorBrain is open source software licensed under the [MIT License](LICENSE).\n\nThis means you can:\n\n- Use it for personal or commercial purposes\n- Modify and distribute it\n- Include it in proprietary software\n\nAll I ask is that you include the original copyright and license notice in any copy of the software.\n\n---\n\n## 💬 Support\n\nNeed help? I'm here for you!\n\n\u003c!-- - 📖 **[Documentation](https://evorbrain.dev/docs)** - Comprehensive guides (coming soon) --\u003e\n\u003c!-- - 💬 **[Discord Community](https://discord.gg/evorbrain)** - Get help and chat with users --\u003e\n\n- 🐛 **[Issue Tracker](https://github.com/evorhard/evorbrain/issues)** - Report bugs or request\n  features\n  \u003c!-- - 📧 **Email** - support@evorbrain.dev --\u003e\n  \u003c!-- - 🐦 **Twitter** - [@evorbrain](https://twitter.com/evorbrain) for updates --\u003e\n\n\u003c!-- ### Sponsorship\n\nLove EvorBrain? Consider sponsoring development:\n\n- ☕ **[Buy us a coffee](https://buymeacoffee.com/evorbrain)**\n- 💖 **[GitHub Sponsors](https://github.com/sponsors/yourusername)**\n- 🎯 **[Open Collective](https://opencollective.com/evorbrain)**\n\nYour support helps us dedicate more time to making EvorBrain amazing! --\u003e\n\n---\n\n\u003cdiv align=\"center\"\u003e\n  \u003cbr\u003e\n  \u003cstrong\u003eBuilt with ❤️ by Evorhard\u003c/strong\u003e\n  \u003cbr\u003e\n  \u003csub\u003eMaking task management beautiful, fast, and local-first\u003c/sub\u003e\n\u003c/div\u003e\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fevorhard%2Fevorbrain","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fevorhard%2Fevorbrain","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fevorhard%2Fevorbrain/lists"}