# New Life Christian Church Sermon Management System A Nuxt 4 application for managing and displaying church sermons with authentication and QR code generation. ## Features - **Sermon Management**: Create, view, and manage sermons with Bible references, personal applications, and pastor's challenges - **Authentication**: Secure admin login for sermon creation - **Responsive Design**: Built with NuxtUI for a modern, mobile-friendly interface - **QR Codes**: Auto-generated QR codes for each sermon linking to the sermon page - **SQLite Database**: Lightweight, file-based database for sermon storage - **Docker Ready**: Complete containerization for easy deployment ## Quick Start 1. **Clone and setup**: ```bash git clone cd nlcc-sermons npm install ``` 2. **Run locally**: ```bash npm run dev ``` 3. **Build for production**: ```bash npm run build ``` 4. **Deploy with Docker**: ```bash docker-compose up -d ``` ## Environment Variables Create a `.env` file or set these environment variables: - `JWT_SECRET`: Secret key for JWT token generation (change in production!) - `ADMIN_PASSWORD`: Default admin password (default: admin123) ## Default Login - **Username**: admin - **Password**: admin123 (or set via ADMIN_PASSWORD) ## Project Structure ``` ├── server/ │ ├── api/ # API routes │ │ ├── auth/ # Authentication endpoints │ │ └── sermons/ # Sermon management endpoints │ └── utils/ # Database and auth utilities ├── components/ # Vue components ├── pages/ # Nuxt pages ├── public/ # Static assets └── data/ # SQLite database location ``` ## API Endpoints - `POST /api/auth/login` - User authentication - `GET /api/sermons` - List sermons (with time filtering) - `POST /api/sermons` - Create new sermon (admin only) - `GET /api/sermons/[slug]` - Get specific sermon ## Docker Deployment The application is fully containerized and ready for deployment: ```bash # Build and run docker-compose up -d # View logs docker-compose logs -f # Stop docker-compose down ``` The SQLite database will persist in a Docker volume named `sermon_data`. ## Development - Uses Nuxt 4 with NuxtUI components - TypeScript for type safety - Tailwind CSS for styling - QR code generation for sermon sharing - Responsive design for all devices ## Security Notes - Change default passwords before production deployment - Use strong JWT secrets in production - Consider implementing rate limiting for API endpoints - Database is stored in `/data/sermons.db` in the container