# RTSDA Web Project Overview ## Project Purpose This is a church website project for Rockville Tolland Seventh-day Adventist Church, featuring: - Event management and submission system - Sermon archive and streaming - Bulletin management - Contact forms - Admin interface ## Tech Stack - **Frontend**: Astro 5.13.0 with TailwindCSS - **Backend**: Rust-based church-core library with NAPI-RS bindings - **Architecture**: Hybrid - Astro frontend with Rust backend via native bindings - **API**: External API at `https://api.rockvilletollandsda.church/api/` ## Key Components - `astro-church-website/` - Main Astro frontend - `church-core/` - Rust backend library - `axum-church-website/` - Alternative backend (Axum-based) ## Project Structure ``` / ├── astro-church-website/ # Main Astro frontend │ ├── src/ │ │ ├── components/ # Reusable components │ │ ├── layouts/ # Page layouts │ │ ├── pages/ # Astro pages and API routes │ │ │ ├── api/ # API endpoints │ │ │ ├── events/ # Event-related pages │ │ │ ├── admin/ # Admin interface │ │ │ └── bulletin/ # Bulletin management │ │ └── lib/ # Utilities and bindings │ ├── package.json │ ├── Cargo.toml # Rust dependencies for NAPI │ └── build.rs # Build script ├── church-core/ # Rust backend library └── axum-church-website/ # Alternative Axum backend ``` ## Development Commands - `npm run dev` - Start development server (localhost:4321) - `npm run build` - Build production site (includes native build) - `npm run build:native` - Build native Rust bindings only - `npm run preview` - Preview built site ## Key Features 1. **Event Submission Form** (`/events/submit`) - Users can submit events for approval 2. **Admin Interface** (`/admin`) - Event management and approval 3. **Bulletin Archive** (`/bulletin`) - Historical bulletins 4. **Live Streaming** (`/live`) - Church service streaming 5. **Sermon Archive** (`/sermons`) - Past sermons and audio ## Known Issue There's a database error when users select "2nd 3rd Saturday" in the recurring field of the event submission form, causing a 500 error.