Beacon/README.md
RTSDA 575afffd29 docs: simplify README to reflect church-core managed API
Since church-core handles API configuration and connectivity:
- Remove detailed API setup instructions
- Simplify configuration to focus on display settings only
- Note that API connectivity is managed by church-core
- Emphasize that most configuration is automatic
- Remove redundant environment variable examples
- Fix requirements to not assume file structure

The README now accurately reflects that users don't need to
manually configure API endpoints when using church-core.
2025-08-16 21:59:43 -04:00

90 lines
2.5 KiB
Markdown

# Beacon
A modern digital signage application for displaying church events, built with Rust, Iced, and the shared church-core library.
## Features
- Real-time event display with automatic updates
- Smooth image loading and transitions with intelligent caching
- Modern, clean interface design with modular components
- Automatic event filtering based on date/time
- Support for high-resolution displays
- Efficient memory management for images
- Built on shared church-core library for consistency and reliability
- Graceful error handling with comprehensive logging
## Requirements
- Rust 1.70 or higher
- church-core crate
**Note:** API connectivity is managed by church-core - no additional setup required.
## Configuration
Beacon uses the church-core library for API connectivity, which handles most configuration automatically. You only need to configure display settings:
### Optional Configuration File
Create a `config.toml` file in the application directory for display customization:
```toml
# Display settings
window_width = 1920
window_height = 1080
slide_interval_seconds = 10
# Optional: Override church-core API settings if needed
# api_url = "https://your-custom-endpoint.com"
```
### Environment Variables
You can also configure via environment variables:
```bash
export BEACON_WINDOW_WIDTH="1920"
export BEACON_WINDOW_HEIGHT="1080"
export RUST_LOG=beacon=info
./beacon
```
**Note:** API configuration is handled by church-core and typically doesn't need customization.
## Building
```bash
cargo build --release
```
## Running
```bash
./target/release/beacon
```
## Development
The application is built using:
- **church-core** - Shared library for API integration, event models, and utilities
- **Iced** - Modern UI framework for Rust
- **Tokio** - Async runtime
- **Reqwest** - HTTP client for image loading
- Modular architecture with dedicated UI components and caching system
### Architecture
Beacon leverages the shared `church-core` library to:
- Use standardized Event models with built-in helper methods
- Share API client functionality across church projects
- Eliminate code duplication and ensure consistency
- Benefit from shared testing and improvements
### Key Modules
- `src/main.rs` - Application entry point and state management
- `src/ui.rs` - Modular UI components for event display
- `src/cache.rs` - Intelligent image caching system
- `src/config.rs` - Configuration management with validation
- `src/api.rs` - Simplified API integration using church-core
## License
MIT License