Thank you for your interest in contributing to TomatoTask!
- Node.js (v18 or higher)
- Rust (latest stable)
- Tauri Prerequisites
# Clone the repository
git clone https://github.com/AnthonyMahe/TomatoTask.git
cd TomatoTask
# Install dependencies
npm install
# Run in development mode
npm run tauri dev# Build the application
npm run tauri build
# The installer will be in src-tauri/target/release/bundle/Frontend:
- Svelte 5 - Reactive UI framework with Runes API
- TypeScript - Type-safe JavaScript
- Tailwind CSS - Utility-first CSS framework
- Shadcn-svelte - Reusable component library
- svelte-i18n - Internationalization
Backend:
- Tauri 2 - Lightweight desktop application framework
- Rust - Systems programming language
- SQLite - Embedded database
- rusqlite - SQLite bindings for Rust
TomatoTask/
├── src/ # Frontend source
│ ├── lib/
│ │ ├── components/ # Svelte components
│ │ │ ├── timer/ # Timer-related components
│ │ │ ├── tasks/ # Task management components
│ │ │ ├── projects/ # Project organization components
│ │ │ ├── summary/ # Statistics components
│ │ │ ├── settings/ # Settings and preferences
│ │ │ └── keyboard/ # Keyboard shortcuts
│ │ ├── services/ # Business logic layer
│ │ ├── stores/ # Reactive state management
│ │ ├── types/ # TypeScript type definitions
│ │ ├── utils/ # Utility functions
│ │ └── i18n/ # Translation files
│ ├── App.svelte # Main application component
│ └── main.ts # Application entry point
├── src-tauri/ # Backend source
│ ├── src/
│ │ ├── commands/ # Tauri commands (API)
│ │ ├── db/ # Database layer
│ │ │ ├── migrations.rs # Schema migrations
│ │ │ ├── models.rs # Data models
│ │ │ └── queries/ # SQL queries
│ │ ├── tray.rs # System tray integration
│ │ ├── notifications.rs # System notifications
│ │ └── lib.rs # Application entry point
│ └── tauri.conf.json # Tauri configuration
SQLite database with 4 tables:
projects- Project organization with colorstasks- Task items with Pomodoro trackingpomodoro_sessions- Historical session datasettings- User preferences and configuration
# Development
npm run dev # Start Vite dev server
npm run tauri dev # Run Tauri in development mode
# Building
npm run build # Build frontend
npm run tauri build # Build complete application
# Type Checking
npm run check # Run Svelte and TypeScript checks
# Preview
npm run preview # Preview production build- Fork the repository
- Create your feature branch (
git checkout -b feature/AmazingFeature) - Commit your changes (
git commit -m 'feat: add some amazing feature') - Push to the branch (
git push origin feature/AmazingFeature) - Open a Pull Request
- All Rust code comments in French (as per project requirements)
- TypeScript strict mode enabled
- Rust Clippy compliance
- DRY principle enforced throughout
For bugs, questions, and discussions please use the GitHub Issues.