A comprehensive family-based Islamic education platform featuring structured courses, spaced repetition memorization, and gamification elements.
- Family-Based Learning: Parent accounts manage multiple child profiles with age-appropriate content
- Structured Courses: Quran, Hadith, Fiqh, Seerah, Arabic (Sarf/Nahw), and Islamic History
- Flash Cards with Spaced Repetition: Interactive flash cards with SM-2 algorithm for optimal retention
- Quizzes & Assessments: Multi-format questions including multiple choice, true/false, and fill-in-the-blank
- Spaced Repetition System (SRS): Optimize memorization of Ayahs, Hadith, Duas, and terms
- Gamification: Points, streaks, achievements, and progress tracking
- AI-Powered: Automatic quiz question generation
- Multi-Age Support: Content adapted for Early Child, Child, Pre-Teen, Teen, and Adult
islamic-learning-platform/
├── frontend/ # React + Vite + TypeScript
│ ├── src/
│ │ ├── components/ # Reusable UI components
│ │ ├── pages/ # Page components
│ │ ├── stores/ # Zustand state management
│ │ ├── services/ # API service layer
│ │ ├── types/ # TypeScript type definitions
│ │ └── utils/ # Utility functions
│ └── ...
├── backend/ # Node.js + Express + TypeScript
│ ├── src/
│ │ ├── controllers/ # Request handlers
│ │ ├── services/ # Business logic
│ │ ├── middleware/ # Express middleware
│ │ ├── routes/ # API routes
│ │ ├── config/ # Configuration
│ │ └── utils/ # Utility functions
│ └── prisma/ # Database schema & migrations
└── docs/ # Documentation
- Node.js 18+
- PostgreSQL 14+
- Redis 7+
- npm or yarn
cd frontend
npm install
npm run devThe frontend will be available at http://localhost:5173
- Copy environment file:
cd backend
cp .env.example .env-
Update
.envwith your database credentials and secrets -
Install dependencies:
npm install- Generate Prisma client:
npm run db:generate- Run database migrations:
npm run db:migrate- Seed the database (optional):
npm run db:seed- Start the development server:
npm run devThe API will be available at http://localhost:3000
POST /api/v1/auth/register- Register new familyPOST /api/v1/auth/login- LoginPOST /api/v1/auth/refresh- Refresh access tokenPOST /api/v1/auth/forgot-password- Request password resetPOST /api/v1/auth/reset-password- Reset password
GET /api/v1/family- Get family infoGET /api/v1/family/members- List family membersPOST /api/v1/family/members- Add family memberPUT /api/v1/family/members/:id- Update family memberDELETE /api/v1/family/members/:id- Remove family member
GET /api/v1/courses- List coursesGET /api/v1/courses/:id- Get course detailsGET /api/v1/courses/:id/units- List course unitsPOST /api/v1/courses/enrollments- Enroll member in course
GET /api/v1/assessments/units/:id/questions- Get unit questionsPOST /api/v1/assessments/submit- Submit quiz answers
GET /api/v1/courses/:courseId/flashcards- Get course flash cardsGET /api/v1/units/:unitId/flashcards- Get unit flash cardsGET /api/v1/flashcards/:id- Get single flash cardPOST /api/v1/flashcards- Create flash card (admin)PUT /api/v1/flashcards/:id- Update flash card (admin)DELETE /api/v1/flashcards/:id- Delete flash card (admin)POST /api/v1/flashcards/:id/review- Submit flash card reviewGET /api/v1/members/:memberId/flashcards/due- Get due flash cardsGET /api/v1/members/:memberId/flashcards/stats- Get flash card statistics
GET /api/v1/srs/due/:memberId- Get items due for reviewPOST /api/v1/srs/review- Submit review rating
- React 18
- Vite
- TypeScript
- TailwindCSS
- Zustand (state management)
- React Router v6
- Axios
- Node.js
- Express
- TypeScript
- Prisma ORM
- PostgreSQL
- Redis
- JWT Authentication
- bcrypt
- Primary (Green):
#16a34a- Islamic green, representing growth and knowledge - Secondary (Gold):
#ca8a04- Represents illumination and wisdom - Accent (Blue):
#2563eb- Trust and reliability
- Headings: Poppins
- Body: Inter
- Arabic: Amiri
The platform is fully responsive and works on:
- Desktop (1024px+)
- Tablet (768px - 1023px)
- Mobile (< 768px)
- JWT-based authentication with access/refresh tokens
- Password hashing with bcrypt (12 rounds)
- Rate limiting on API endpoints
- Input validation with express-validator
- CORS protection
- Helmet security headers
MIT License - see LICENSE file for details
See CONTRIBUTING.md for contribution guidelines.
For support, please open an issue in the repository.