RTSDA-Website/.serena/memories/project_overview.md
Benjamin Slingo 91a1bb7a54 Restructure project and update gitignore
- Flatten directory structure by moving files from astro-church-website/ to root
- Remove church-core subdirectory in favor of inline Rust library
- Update .gitignore to properly exclude build artifacts, generated files, and dependencies
- Add environment variables, IDE files, and coverage reports to gitignore
- Include generated CSS files and native bindings in ignore patterns
2025-08-30 08:59:27 -04:00

2.4 KiB

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.