- Rust (latest stable)
curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh
- Node.js (v18+) for UI development
- Tauri CLI
cargo install tauri-cli
- rust-analyzer for IDE support
- cargo-watch for auto-recompilation
cargo install cargo-watch
git clone https://github.com/yourusername/pomotoro.git
cd pomotoro# Rust dependencies
cargo build
# UI dependencies
cd apps/react-ui && npm install && npm run build# Run all tests
cargo test --workspace
# Run domain tests only
cargo test -p domain
# Run with coverage
cargo tarpaulin --out Html# Run the Tauri app in development mode
cargo tauri dev
# Or run individual components
cargo run -p infra # Backend only
cd apps/react-ui && npm run dev # Frontend onlypomotoro/
├── core/ # Framework-agnostic core (domain, usecases, infra)
├── apps/
│ ├── tauri-app/ # Tauri desktop client
│ ├── react-ui/ # React + TypeScript frontend
│ ├── pomotoro-cli/
│ └── cosmic-de/
└── docs/ # Documentation
Start by exploring the domain layer:
# Read the domain documentation
cat docs/reference/domain-model.md
# Explore key entities
ls -la core/domain/src/timer/
ls -la core/domain/src/task/Check available issues:
- Look for
good-first-issuelabels - See the feature docs for what's already built
git checkout -b feature/your-feature-name
# or
git checkout -b fix/issue-descriptionFollow the workflow for your task type:
# Run tests for affected modules
cargo test -p domain
cargo test -p usecases
# Run integration tests
cargo test --test '*'
# Check formatting
cargo fmt --check
# Run linter
cargo clippy -- -D warnings- Push your branch
- Create a Pull Request
- Ensure CI passes
- Request review
# Debug build
cargo build
# Release build
cargo build --release
# Build specific package
cargo build -p domain# Run all tests
cargo test
# Run tests with output
cargo test -- --nocapture
# Run specific test
cargo test test_timer_start
# Run benchmarks
cargo bench# Watch for changes
cargo watch -x test
# Format code
cargo fmt
# Check code
cargo clippy
# Update dependencies
cargo update# Development mode
cargo tauri dev
# Build for production
cargo tauri build
# Generate icons
cargo tauri icon path/to/icon.png- Install
rust-analyzerextension - Install
Tauriextension - Configure settings:
{
"rust-analyzer.cargo.features": "all",
"rust-analyzer.checkOnSave.command": "clippy"
}- Install Rust plugin
- Enable
cargointegration - Configure code style from
rustfmt.toml
# Clean and rebuild
cargo clean
cargo build# Run tests in single thread
cargo test -- --test-threads=1# Reset Tauri
rm -rf target/
cargo tauri dev- Check the troubleshooting section in the README
- Ask in discussions
✅ Environment set up
✅ Project structure understood
➡️ Explore the Architecture
➡️ Learn the Development Workflow
➡️ Start contributing!