Entire Backend API with Postgres
Go to file
Benjamin Slingo adacf443e5 Add config update endpoint for admin panel
- Add update_config handler in config.rs (6 lines)
- Add PUT /config route in main.rs (1 line)
- Enables admin panel to update church configuration
- Follows existing DRY/KISS architecture patterns
2025-08-30 11:50:21 -04:00
migrations Add comprehensive hymnal support and enhance bulletin processing 2025-08-28 20:34:04 -04:00
src Add config update endpoint for admin panel 2025-08-30 11:50:21 -04:00
tests Initial commit: Church API Rust implementation 2025-08-19 20:56:41 -04:00
.env.example Initial commit: Church API Rust implementation 2025-08-19 20:56:41 -04:00
.gitignore Add proper README and remove development documentation files 2025-08-19 21:01:55 -04:00
build.rs Initial commit: Church API Rust implementation 2025-08-19 20:56:41 -04:00
Cargo.toml Initial commit: Church API Rust implementation 2025-08-19 20:56:41 -04:00
cleanup_manual_hymn_titles.sql NUCLEAR: Delete db_operations.rs entirely 2025-08-28 21:36:14 -04:00
CLEANUP_PROGRESS.md Phase 3 complete: EventService restructuring achieves maximum DRY/KISS compliance 2025-08-29 22:37:26 -04:00
find_manual_hymn_titles.sql NUCLEAR: Delete db_operations.rs entirely 2025-08-28 21:36:14 -04:00
fix_timezone_double_conversion.sql NUCLEAR: Delete db_operations.rs entirely 2025-08-28 21:36:14 -04:00
HYMNARIUM_API_DOCUMENTATION.md NUCLEAR: Delete db_operations.rs entirely 2025-08-28 21:36:14 -04:00
LICENSE Initial commit: Church API Rust implementation 2025-08-19 20:56:41 -04:00
migrate_hymnal_data.py NUCLEAR: Delete db_operations.rs entirely 2025-08-28 21:36:14 -04:00
README.md Add proper README and remove development documentation files 2025-08-19 21:01:55 -04:00
simple_hymn_cleanup.sql NUCLEAR: Delete db_operations.rs entirely 2025-08-28 21:36:14 -04:00

Church API

A comprehensive church management system built with Rust and Axum, providing REST APIs for bulletin management, event scheduling, media processing, and live streaming integration.

Features

  • Bulletin Management: Upload, process, and serve church bulletins with automatic format conversion
  • Event Scheduling: Create and manage church events with recurring event support
  • Media Processing: Handle video uploads with transcoding and thumbnail generation
  • Live Streaming: Integration with Owncast for live stream management
  • User Authentication: JWT-based authentication with role-based access control
  • Email Notifications: SMTP integration for automated notifications
  • Database Management: PostgreSQL with automated migrations

Tech Stack

  • Backend: Rust with Axum web framework
  • Database: PostgreSQL with SQLx
  • Media Processing: GStreamer for video transcoding
  • Authentication: JWT with bcrypt password hashing
  • Email: lettre for SMTP integration

Quick Start

  1. Prerequisites

    • Rust 1.70+
    • PostgreSQL 13+
    • GStreamer development libraries
  2. Setup

    # Clone the repository
    git clone ssh://rockvilleav@git.rockvilletollandsda.church:10443/RTSDA/church-api.git
    cd church-api
    
    # Copy environment template
    cp .env.example .env
    # Edit .env with your configuration
    
    # Run database migrations
    sqlx migrate run
    
    # Build and run
    cargo run
    
  3. Configuration

    Edit .env with your settings:

    • Database URL
    • JWT secret
    • SMTP configuration
    • Upload directories

API Endpoints

  • POST /api/auth/login - User authentication
  • GET /api/bulletins - List bulletins
  • POST /api/bulletins - Upload bulletin
  • GET /api/events - List events
  • POST /api/events - Create event
  • POST /api/media/upload - Upload media files
  • GET /api/stream/status - Live stream status

Development

# Run tests
cargo test

# Check code
cargo check

# Format code
cargo fmt

License

MIT License - see LICENSE file for details.

Author

Benjamin Slingo