rustboxd 0.2.0

A Letterboxd web scraper and API client library written in Rust
Documentation
# Rustboxd Contributing Guide

Thank you for considering contributing to Rustboxd! This guide will help you get started.

## Development Setup

1. **Clone the repository**:
   ```bash
   git clone https://github.com/Pranav-Karra-3301/rustboxd.git
   cd rustboxd
   ```

2. **Install Rust**:
   ```bash
   curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh
   source $HOME/.cargo/env
   ```

3. **Install dependencies and run tests**:
   ```bash
   cargo test
   ```

## Project Structure

```
rustboxd/
├── src/
│   ├── core/           # Core functionality (client, errors, constants)
│   ├── models/         # Data models (User, Movie, Search, etc.)
│   ├── pages/          # Page-specific parsers
│   ├── utils/          # Utility functions
│   └── lib.rs         # Library entry point
├── examples/           # Usage examples
├── tests/             # Integration and unit tests
└── docs/              # Documentation
```

## Making Changes

1. **Create a feature branch**:
   ```bash
   git checkout -b feature/your-feature-name
   ```

2. **Make your changes and add tests**:
   - All new functionality should include tests
   - Follow the existing code style
   - Run `cargo fmt` to format your code
   - Run `cargo clippy` to check for issues

3. **Test your changes**:
   ```bash
   cargo test
   cargo check --examples
   ```

4. **Submit a pull request**:
   - Describe your changes clearly
   - Include any relevant issue numbers
   - Make sure all CI checks pass

## Code Style

- Use `cargo fmt` to format code
- Follow Rust naming conventions
- Write clear, descriptive variable and function names
- Add documentation comments for public APIs
- Keep functions small and focused

## Testing

- Write unit tests for utility functions
- Write integration tests for main functionality
- Mock external HTTP calls when possible
- Test error conditions

## Documentation

- Update README.md if adding new features
- Add examples for new functionality
- Document public APIs with rustdoc comments
- Keep examples up to date

## Reporting Issues

- Use the GitHub issue tracker
- Include a clear description of the problem
- Provide steps to reproduce
- Include relevant error messages

## Questions?

Feel free to open an issue for questions or join discussions in existing issues.