![]() - Replace PocketBase integration with new church API at api.rockvilletollandsda.church - Use /api/events/upcoming endpoint to eliminate client-side filtering - Update data structures to match new API response format - Simplify event fetching logic by leveraging server-side filtering - Increase image size limit to 2MB for better image support - Rename PocketbaseEvent to ApiEvent and PocketbaseClient to ApiClient - Update configuration to use api_url instead of pocketbase_url |
||
---|---|---|
.github | ||
icons | ||
src | ||
.gitignore | ||
beacon.desktop | ||
Cargo.lock | ||
Cargo.toml | ||
digital-sign.desktop | ||
install.sh | ||
README.md |
Beacon
A modern digital signage application for displaying church events, built with Rust and Iced.
Features
- Real-time event display with automatic updates
- Smooth image loading and transitions
- Modern, clean interface design
- Automatic event filtering based on date/time
- Support for high-resolution displays
- Efficient memory management for images
Requirements
- Rust 1.70 or higher
- A running Pocketbase instance with events collection
Configuration
Create a config.toml
file in the application directory with the following settings:
pocketbase_url = "http://your-pocketbase-url"
window_width = 1920
window_height = 1080
slide_interval_secs = 10
refresh_interval_mins = 5
Building
cargo build --release
Running
./target/release/beacon
Development
The application is built using:
- Iced for the UI framework
- Tokio for async runtime
- Reqwest for HTTP requests
- Chrono for date/time handling
License
MIT License