A React + Vite web application for guided Bible study, organized into themed blocks, modules, and lessons. The app is built with Firebase authentication and Firestore persistence so users can track their study progress, save notes, and continue where they left off.
- Firebase authentication with Google and email/password sign-in
- User progress tracking for completed studies
- Notes persistence per study
- Curriculum organized into blocks, modules, and studies
- Home dashboard with progress summary and resume study CTA
- Block, module, and study detail views
- Responsive UI built with Tailwind CSS and Lucide icons
src/App.tsx— application routessrc/main.tsx— app entry pointsrc/contexts/AuthContext.tsx— authentication state providersrc/hooks/useProgress.ts— progress state and Firestore syncsrc/services/auth.ts— Firebase auth helperssrc/services/firebase.ts— Firebase initializationsrc/services/progress.ts— Firestore progress CRUD functionssrc/data/curriculum.ts— blocks, modules, and study metadatasrc/pages/— page components for home, login, blocks, profile, and detail viewssrc/components/— reusable UI elements and layout componentssrc/types/— TypeScript types used across the app
- React 18
- TypeScript
- Vite
- Tailwind CSS
- Firebase Authentication
- Firestore
- React Router DOM
- Lucide icons
/— Home dashboard/login— Authentication/blocos— Block list view/bloco/:blockId— Block detail view/modulo/:moduleId— Module detail view/estudo/:studyId— Study detail view/perfil— User profile
The app expects Firebase configuration values in environment variables. The values are loaded using Vite and should be defined in a .env or .env.local file at the project root.
Required variables:
VITE_FIREBASE_API_KEYVITE_FIREBASE_AUTH_DOMAINVITE_FIREBASE_PROJECT_IDVITE_FIREBASE_STORAGE_BUCKETVITE_FIREBASE_MESSAGING_SENDER_IDVITE_FIREBASE_APP_ID
Example .env file:
VITE_FIREBASE_API_KEY=your_api_key
VITE_FIREBASE_AUTH_DOMAIN=your_project.firebaseapp.com
VITE_FIREBASE_PROJECT_ID=your_project_id
VITE_FIREBASE_STORAGE_BUCKET=your_project.appspot.com
VITE_FIREBASE_MESSAGING_SENDER_ID=your_messaging_sender_id
VITE_FIREBASE_APP_ID=your_app_id- Install dependencies
npm install- Configure Firebase environment variables
- Start the development server
npm run dev- Build for production
npm run build- Preview the production build
npm run previewsrc/contexts/AuthContext.tsxkeeps track of the authenticated Firebase usersrc/services/auth.tshandles Google sign-in, email sign-in, registration, logout, and Firestore user document creationsrc/hooks/useProgress.tsloads and refreshes progress, calculates completion percentages, and updates notes and completion statesrc/services/progress.tsstores progress underusers/{uid}/progress/{studyId}in Firestore
src/data/curriculum.tsdefines six study blocks (A through F)- Each block contains modules with study counts and study metadata
- The curriculum currently includes well over 200 studies spanning foundational faith topics, biblical history, teachings of Jesus, Christian living, prophecy, and Spirit of Prophecy content
- The app is designed for a Bible study curriculum aligned with Adventist study values
- Anonymous or unauthenticated visitors can browse the interface, but progress and notes save only for authenticated users
- The login page supports both Google authentication and email/password registration
Contributions are welcome. If you want to extend the app:
- add new curriculum content in
src/data/curriculum.ts - create new study detail components for richer lesson presentation
- implement additional progress analytics or streak tracking
- improve accessibility and mobile responsiveness
This project is currently private and configured as a personal study app.