- Initialize Firebase Data Connect - Deploy Firestore security rules for SMTP config - Update firebase.json with Firestore configuration - Add generated Data Connect SDKs
Prayer App
A Progressive Web App (PWA) for journaling prayers and praises, organized by date, with journaling functionality and email reminders.
Features
- User authentication with Firebase (login and signup)
- Add prayers and praises with date organization
- Journal entries for each prayer
- "Pray For" field to specify a person for each prayer
- Email field auto-populated with user's email for reminders
- Archive prayers instead of deleting them
- View archived prayers with dedicated tab
- Search prayers by content, type, or journal (dedicated Search tab)
- Pagination for large numbers of entries
- Share prayers on social media, email, and text
- Prominent share buttons with visual feedback
- Admin panel for SMTP configuration and user management
- Email notifications (requires configuration)
- Reminder frequency options (daily, weekly, monthly, or never)
- Option to include active prayers summary in reminder emails
- Beautiful HTML-formatted emails with prayer cards and visual styling
- PWA for offline access and installation
- Dark mode theme
- Bottom navigation tabs for easy switching (Add Entry, Active, Archived, Search)
- Engaging loading screen with animations and inspirational content (minimum 5-second display)
- Enhanced bottom navigation with gradients, shadows, and improved touch targets
Setup
- Create a Firebase project at https://console.firebase.google.com/
- Enable Authentication with Email/Password provider
- Enable Firestore Database
- Get your Firebase config and replace the placeholder in
src/lib/firebase.ts
Users can now register accounts directly in the app!
Admin Setup
Admin access is restricted to specific email addresses. Admins can manage the admin email list directly in the app through the Admin panel.
To add/remove admin emails:
- Log in as an existing admin
- Click the "Admin" button
- Scroll to "Admin Email Management" section
- Add new admin emails or remove existing ones
- Changes are saved automatically to Firestore
Admin users can access the admin panel by clicking the "Admin" button in the header. From there, they can configure:
- SMTP settings for email sending
- Admin email management
- Other server configurations
The admin panel saves settings to Firestore for persistent configuration.
Firestore Security Rules
To enable SMTP configuration saving and other admin features, you need to deploy Firestore security rules:
-
Install Firebase CLI if you haven't already:
npm install -g firebase-tools -
Login to Firebase:
firebase login -
Initialize or connect to your Firebase project:
firebase use --addSelect your prayer-app project.
-
Deploy the security rules using the provided script:
# On Linux/Mac ./deploy-firestore-rules.sh # On Windows deploy-firestore-rules.batOr deploy manually:
firebase deploy --only firestore:rules
The firestore.rules file in this repository allows authenticated users to read/write configuration data needed for the admin panel.
SMTP Configuration
After deploying Firestore rules, you can configure SMTP settings through the admin panel:
- Log in as an admin user
- Click the "Admin" button
- Fill in your SMTP provider details (Gmail, Outlook, etc.)
- Save the configuration
Gmail Setup:
- Host:
smtp.gmail.com - Port:
587(or465for SSL) - Username: Your Gmail address
- Password: App password (not your regular password)
- From: Your Gmail address
- Use SSL/TLS: Checked for port 465, unchecked for port 587
Note: For Gmail, you'll need to generate an "App Password" in your Google Account settings.
Getting Started
First, install dependencies:
npm install
Then, run the development server:
npm run dev
# or
yarn dev
# or
pnpm dev
# or
bun dev
Open http://localhost:3000 with your browser to see the result.
You can start editing the page by modifying app/page.tsx. The page auto-updates as you edit the file.
This project uses next/font to automatically optimize and load Geist, a new font family for Vercel.
Configuration
For email reminders, configure SMTP settings in src/app/api/send-email/route.ts.
Build
npm run build
Deploy
Deploy to Vercel or any platform supporting Next.js PWAs.
Learn More
To learn more about Next.js, take a look at the following resources:
- Next.js Documentation - learn about Next.js features and API.
- Learn Next.js - an interactive Next.js tutorial.
You can check out the Next.js GitHub repository - your feedback and contributions are welcome!
Deploy on Vercel
The easiest way to deploy your Next.js app is to use the Vercel Platform from the creators of Next.js.
Check out our Next.js deployment documentation for more details.
Docker Support
This application is fully containerized and ready for deployment.
Building Locally
# Build the Docker image
docker build -t prayer-app .
# Run the container
docker run -p 3000:3000 prayer-app
Using Docker Compose
# Start the application
docker-compose up -d
# Stop the application
docker-compose down
GitHub Container Registry
The application includes GitHub Actions CI/CD that automatically builds and pushes Docker images to GitHub Container Registry on every push to the main branch.
Images are available at: ghcr.io/[your-username]/prayer-app:latest