docs: Split documentation into separate files

- Move development details to DEVELOPMENT.md
- Move contributing guidelines to CONTRIBUTING.md
- Add LICENSE file with MIT license
- Add CONTRIBUTORS.md for attribution
- Update README.md to focus on user-facing information
- Improve documentation structure and navigation
This commit is contained in:
Alvaro Soliverez 2025-10-04 12:33:59 -03:00
parent 8362ebe44b
commit 37e9bc2dc1
5 changed files with 826 additions and 122 deletions

136
README.md
View file

@ -14,18 +14,18 @@ A Rust-based command-line tool that synchronizes calendar events between Zoho Ca
## Quick Start
### 1. Prerequisites
### Prerequisites
- Rust 1.70+ (for building from source)
- Zoho account with CalDAV access
- Nextcloud instance with CalDAV enabled
- App-specific passwords for both services (recommended)
### 2. Installation
### Installation
```bash
# Clone the repository
git clone <repository-url>
git clone ssh://git@gitea.soliverez.com.ar/alvaro/caldavpuller.git
cd caldavpuller
# Build the project
@ -34,7 +34,7 @@ cargo build --release
# The binary will be at target/release/caldav-sync
```
### 3. Configuration
### Configuration
Copy the example configuration file:
@ -63,7 +63,7 @@ target_calendar = "Imported-Zoho-Events"
create_if_missing = true
```
### 4. First Run
### First Run
Test the configuration with a dry run:
@ -77,35 +77,6 @@ Perform a one-time sync:
./target/release/caldav-sync --once
```
## Configuration Details
### Zoho Setup
1. **Enable CalDAV in Zoho**:
- Go to Zoho Mail Settings → CalDAV
- Enable CalDAV access
- Generate an app-specific password
2. **Find Calendar Names**:
```bash
./target/release/caldav-sync --list-events --debug
```
This will show all available calendars.
### Nextcloud Setup
1. **Enable CalDAV**:
- Usually enabled by default
- Access at `https://your-domain.com/remote.php/dav/`
2. **Generate App Password**:
- Go to Settings → Security → App passwords
- Create a new app password for the sync tool
3. **Target Calendar**:
- The tool can automatically create the target calendar
- Or create it manually in Nextcloud first
## Usage
### Command Line Options
@ -149,36 +120,7 @@ Options:
caldav-sync --username "user@example.com" --password "app-password" --once
```
## Configuration Reference
### Complete Configuration Example
```toml
[server]
url = "https://caldav.zoho.com/caldav"
username = "your-email@domain.com"
password = "your-app-password"
timeout = 30
[calendar]
name = "Work Calendar"
color = "#4285F4"
[sync]
sync_interval = 300
sync_on_startup = true
weeks_ahead = 1
dry_run = false
[filters]
exclude_patterns = ["Cancelled:", "BLOCKED"]
min_duration_minutes = 5
max_duration_hours = 24
[logging]
level = "info"
file = "caldav-sync.log"
```
## Configuration
### Environment Variables
@ -193,6 +135,10 @@ export CALDAV_CALENDAR="Work Calendar"
./target/release/caldav-sync
```
### Complete Configuration Example
See `config/example.toml` for a comprehensive configuration example with all available options.
## Security Considerations
1. **Use App Passwords**: Never use your main account password
@ -233,65 +179,11 @@ caldav-sync --debug --list-events
This will show detailed HTTP requests, responses, and processing steps.
## Development
## More Information
### Building from Source
```bash
# Clone the repository
git clone <repository-url>
cd caldavpuller
# Build in debug mode
cargo build
# Build in release mode
cargo build --release
# Run tests
cargo test
# Check code formatting
cargo fmt --check
# Run linter
cargo clippy
```
### Project Structure
```
caldavpuller/
├── src/
│ ├── main.rs # CLI interface and entry point
│ ├── lib.rs # Library interface
│ ├── config.rs # Configuration management
│ ├── caldav_client.rs # CalDAV HTTP client
│ ├── event.rs # Event data structures
│ ├── timezone.rs # Timezone handling
│ ├── calendar_filter.rs # Calendar filtering logic
│ ├── sync.rs # Synchronization engine
│ └── error.rs # Error types and handling
├── config/
│ ├── default.toml # Default configuration
│ └── example.toml # Example configuration
├── tests/
│ └── integration_tests.rs # Integration tests
├── Cargo.toml # Rust project configuration
└── README.md # This file
```
## Contributing
1. Fork the repository
2. Create a feature branch
3. Make your changes
4. Add tests if applicable
5. Submit a pull request
## License
This project is licensed under the MIT License - see the LICENSE file for details.
- **Development & Design**: See [DEVELOPMENT.md](DEVELOPMENT.md)
- **Contributing**: See [CONTRIBUTING.md](CONTRIBUTING.md)
- **License**: See [LICENSE](LICENSE)
## Support