A web application for managing and displaying church choir lyrics with embedded videos and user authentication.
-
Lyrics Management
- Browse and view choir song lyrics
- Embedded video player for each song
- Search and filter songs by title or theme
-
User Authentication
- Optional login for regular users
- Required authentication for admin features
- Role-based access control
-
Admin Features
- Add, edit, and delete lyrics
- Attach videos to lyrics
- Manage user roles
- Backend
- Node.js + Express.js
- Firebase Admin SDK
- Firebase Authentication
- Firebase Firestore
- Node.js (v14 or higher)
- Firebase project with necessary configurations
- Clone the repository
- Install dependencies:
npm install
- Create a
.envfile in the root directory with your Firebase configuration:PORT=3000 JWT_SECRET=your_jwt_secret_here FIREBASE_PROJECT_ID=your-project-id FIREBASE_PRIVATE_KEY=your-private-key FIREBASE_CLIENT_EMAIL=your-client-email FIREBASE_STORAGE_BUCKET=your-storage-bucket
Start the development server:
npm run devThe server will start on http://localhost:3000
POST /api/auth/register- Register new userPOST /api/auth/login- User loginPOST /api/auth/set-admin- Set admin role (super admin only)
GET /api/lyrics- Get all lyricsGET /api/lyrics/:id- Get single lyricsPOST /api/lyrics- Create new lyrics (admin only)PUT /api/lyrics/:id- Update lyrics (admin only)DELETE /api/lyrics/:id- Delete lyrics (admin only)
- JWT-based authentication
- Role-based access control
- Firebase security rules
- Environment variables for sensitive data