An educational web application for students studying Islamic knowledge, featuring flashcards generated from Islamic texts.
- User authentication with email verification
- Protected dashboard with sidebar navigation
- Flashcard generation and viewing
- Card flip animations
- State persistence per user
- Responsive design
- Node.js 18+ and npm
- Supabase account
-
Clone the repository
git clone <repository-url> cd Islamic-Study-Tools
-
Set up Supabase
Follow the detailed guide: docs/SUPABASE_SETUP.md
-
Install and configure backend
cd backend/api npm install cp .env.example .env # Edit .env with your Supabase credentials
-
Install and configure frontend
cd ../../frontend npm install cp .env.example .env # Edit .env with your Supabase credentials
-
Start development servers
Terminal 1 (Backend):
cd backend/api npm run devTerminal 2 (Frontend):
cd frontend npm run dev -
Open the application
Visit http://localhost:5173
Islamic-Study-Tools/
├── backend/
│ ├── api/ # Node.js/Express API
│ └── flashcard_generation/ # Pre-generated flashcards
├── frontend/ # React TypeScript application
└── docs/ # Documentation
Backend:
- Node.js + Express
- TypeScript
- Supabase (Auth & Database)
Frontend:
- React 18
- TypeScript
- Vite
- Tailwind CSS
- React Router
- Sign up with email and password
- Verify email with OTP code
- Sign in to dashboard
- Navigate to Flashcards
- Generate flashcards (simulated 5-10s delay)
- Study flashcards with flip animations
cd backend/api
npm run dev # Start development server
npm run build # Build for production
npm start # Run production buildcd frontend
npm run dev # Start development server
npm run build # Build for production
npm run preview # Preview production buildGET /api/books/:bookId- Get book metadataGET /api/flashcards/:bookId- Get flashcardsGET /api/flashcards/:bookId/state- Get user statePOST /api/flashcards/:bookId/generate- Generate flashcards
PORT=5000
NODE_ENV=development
SUPABASE_URL=your_supabase_url
SUPABASE_ANON_KEY=your_supabase_anon_key
SUPABASE_SERVICE_ROLE_KEY=your_supabase_service_role_key
FRONTEND_URL=http://localhost:5173VITE_SUPABASE_URL=your_supabase_url
VITE_SUPABASE_ANON_KEY=your_supabase_anon_key
VITE_API_URL=http://localhost:5000/api- AI-powered flashcard generation
- Qira'at Corrector
- Chain-of-Narration visualization
- Qur'an Expanded tools
- Multiple book support
- Progress tracking
- Spaced repetition
[Add your license here]
[Add contribution guidelines]
For issues and questions, please open a GitHub issue.