import React, { useState, useEffect } from 'react';
import { Sun, Moon, Globe, User, Camera, Mic, BookOpen, Video, FileText, HelpCircle, ChevronLeft, ChevronRight, Menu, X, Check, AlertTriangle, Mail, Lock, Eye, EyeOff, ArrowRight, BarChart2, Users, BookOpen as Courses, Settings, LogOut, Home, LogIn, UserPlus, DollarSign, Star, Award, PieChart, TrendingUp, List, Grid, Search, Plus, Edit, Trash2 } from 'lucide-react';
// Main App Component
export default function MathELearningPlatform() {
const [darkMode, setDarkMode] = useState(false);
const [language, setLanguage] = useState('en');
const [currentPage, setCurrentPage] = useState('home');
const [menuOpen, setMenuOpen] = useState(false);
const [aiAssistantOpen, setAiAssistantOpen] = useState(false);
const [isAuthenticated, setIsAuthenticated] = useState(false);
const [isAdmin, setIsAdmin] = useState(false);
// Toggle dark mode and store preference
const toggleDarkMode = () => {
setDarkMode(!darkMode);
document.documentElement.classList.toggle('dark');
};
// Change language and handle RTL for Arabic
const changeLanguage = (lang) => {
setLanguage(lang);
document.documentElement.dir = lang === 'ar' ? 'rtl' : 'ltr';
};
// Handle login
const handleLogin = (email, password, asAdmin = false) => {
// In a real app, this would validate credentials with a backend
setIsAuthenticated(true);
setIsAdmin(asAdmin);
setCurrentPage(asAdmin ? 'adminDashboard' : 'dashboard');
};
// Handle logout
const handleLogout = () => {
setIsAuthenticated(false);
setIsAdmin(false);
setCurrentPage('home');
};
// Translations object for multilingual support
const translations = {
en: {
home: "Home",
login: "Login",
register: "Register",
dashboard: "Dashboard",
courses: "Courses",
exercises: "Exercises",
quizzes: "Quizzes",
profile: "Profile",
settings: "Settings",
aiAssistant: "AI Assistant",
darkMode: "Dark Mode",
lightMode: "Light Mode",
language: "Language",
popularCourses: "Popular Courses",
continueStudying: "Continue Studying",
recommendedForYou: "Recommended For You",
yourProgress: "Your Progress",
downloadPDF: "Download PDF",
watchVideo: "Watch Video",
startExercise: "Start Exercise",
takeQuiz: "Take Quiz",
solveWithCamera: "Solve with Camera",
askWithVoice: "Ask with Voice",
nextStep: "Next Step",
showSolution: "Show Solution",
checkAnswer: "Check Answer",
correct: "Correct!",
incorrect: "Try Again",
hint: "Hint",
email: "Email",
password: "Password",
forgotPassword: "Forgot Password?",
dontHaveAccount: "Don't have an account?",
signUp: "Sign Up",
rememberMe: "Remember Me",
welcomeBack: "Welcome Back",
loginToAccount: "Login to your account",
getStarted: "Get Started",
learnMore: "Learn More",
features: "Features",
pricing: "Pricing",
testimonials: "Testimonials",
contactUs: "Contact Us",
aboutUs: "About Us",
termsOfService: "Terms of Service",
privacyPolicy: "Privacy Policy",
copyright: "© 2023 MathGenius. All rights reserved.",
heroTitle: "Master Mathematics with AI-Powered Learning",
heroSubtitle: "Interactive courses, personalized learning paths, and AI assistance in multiple languages",
featureTitle1: "Interactive Exercises",
featureDesc1: "Practice with step-by-step solutions and instant feedback",
featureTitle2: "AI Math Assistant",
featureDesc2: "Get help anytime with our intelligent AI tutor",
featureTitle3: "Multilingual Support",
featureDesc3: "Learn in English, French, or Arabic with full UI translations",
pricingBasic: "Basic",
pricingPro: "Pro",
pricingEnterprise: "Enterprise",
pricingBasicPrice: "$9.99/month",
pricingProPrice: "$19.99/month",
pricingEnterprisePrice: "Contact Us",
pricingBasicFeature1: "Access to all basic courses",
pricingBasicFeature2: "Interactive exercises",
pricingBasicFeature3: "Limited AI assistance",
pricingProFeature1: "All Basic features",
pricingProFeature2: "Advanced courses & quizzes",
pricingProFeature3: "Unlimited AI assistance",
pricingEnterpriseFeature1: "All Pro features",
pricingEnterpriseFeature2: "Custom course creation",
pricingEnterpriseFeature3: "Dedicated support",
testimonialTitle: "What Our Students Say",
adminDashboard: "Admin Dashboard",
overview: "Overview",
users: "Users",
analytics: "Analytics",
totalUsers: "Total Users",
activeCourses: "Active Courses",
completionRate: "Completion Rate",
revenue: "Revenue",
recentUsers: "Recent Users",
userManagement: "User Management",
courseManagement: "Course Management",
addNewCourse: "Add New Course",
editCourse: "Edit Course",
deleteCourse: "Delete Course",
searchUsers: "Search users...",
searchCourses: "Search courses...",
name: "Name",
role: "Role",
status: "Status",
actions: "Actions",
active: "Active",
inactive: "Inactive",
student: "Student",
instructor: "Instructor",
admin: "Admin",
lastActive: "Last Active",
viewDetails: "View Details",
edit: "Edit",
delete: "Delete",
confirmDelete: "Are you sure you want to delete this item?",
cancel: "Cancel",
save: "Save",
addNew: "Add New",
filterBy: "Filter by",
sortBy: "Sort by",
ascending: "Ascending",
descending: "Descending",
showingResults: "Showing {start}-{end} of {total} results",
previousPage: "Previous Page",
nextPage: "Next Page",
itemsPerPage: "Items per page",
dashboardOverview: "Dashboard Overview",
todayStats: "Today's Stats",
monthlyStats: "Monthly Stats",
yearlyStats: "Yearly Stats",
newUsers: "New Users",
courseEnrollments: "Course Enrollments",
quizCompletions: "Quiz Completions",
averageScore: "Average Score",
topPerformingCourses: "Top Performing Courses",
recentActivities: "Recent Activities",
viewAll: "View All",
activity: "Activity",
time: "Time",
userJoined: "User Joined",
courseCreated: "Course Created",
quizCompleted: "Quiz Completed",
certificateIssued: "Certificate Issued",
justNow: "Just now",
minutesAgo: "{minutes} minutes ago",
hoursAgo: "{hours} hours ago",
daysAgo: "{days} days ago",
},
fr: {
home: "Accueil",
login: "Connexion",
register: "S'inscrire",
dashboard: "Tableau de bord",
courses: "Cours",
exercises: "Exercices",
quizzes: "Quiz",
profile: "Profil",
settings: "Paramètres",
aiAssistant: "Assistant IA",
darkMode: "Mode sombre",
lightMode: "Mode clair",
language: "Langue",
popularCourses: "Cours populaires",
continueStudying: "Continuer l'étude",
recommendedForYou: "Recommandé pour vous",
yourProgress: "Votre progression",
downloadPDF: "Télécharger PDF",
watchVideo: "Regarder la vidéo",
startExercise: "Commencer l'exercice",
takeQuiz: "Faire le quiz",
solveWithCamera: "Résoudre avec la caméra",
askWithVoice: "Demander avec la voix",
nextStep: "Étape suivante",
showSolution: "Afficher la solution",
checkAnswer: "Vérifier la réponse",
correct: "Correct !",
incorrect: "Essayez encore",
hint: "Indice",
email: "Email",
password: "Mot de passe",
forgotPassword: "Mot de passe oublié ?",
dontHaveAccount: "Vous n'avez pas de compte ?",
signUp: "S'inscrire",
rememberMe: "Se souvenir de moi",
welcomeBack: "Bienvenue",
loginToAccount: "Connectez-vous à votre compte",
getStarted: "Commencer",
learnMore: "En savoir plus",
features: "Fonctionnalités",
pricing: "Tarifs",
testimonials: "Témoignages",
contactUs: "Contactez-nous",
aboutUs: "À propos",
termsOfService: "Conditions d'utilisation",
privacyPolicy: "Politique de confidentialité",
copyright: "© 2023 MathGenius. Tous droits réservés.",
heroTitle: "Maîtrisez les mathématiques avec l'apprentissage assisté par IA",
heroSubtitle: "Cours interactifs, parcours d'apprentissage personnalisés et assistance IA en plusieurs langues",
featureTitle1: "Exercices interactifs",
featureDesc1: "Pratiquez avec des solutions étape par étape et des commentaires instantanés",
featureTitle2: "Assistant mathématique IA",
featureDesc2: "Obtenez de l'aide à tout moment avec notre tuteur IA intelligent",
featureTitle3: "Support multilingue",
featureDesc3: "Apprenez en anglais, français ou arabe avec des traductions complètes",
pricingBasic: "Basique",
pricingPro: "Pro",
pricingEnterprise: "Entreprise",
pricingBasicPrice: "9,99€/mois",
pricingProPrice: "19,99€/mois",
pricingEnterprisePrice: "Contactez-nous",
pricingBasicFeature1: "Accès à tous les cours de base",
pricingBasicFeature2: "Exercices interactifs",
pricingBasicFeature3: "Assistance IA limitée",
pricingProFeature1: "Toutes les fonctionnalités de base",
pricingProFeature2: "Cours et quiz avancés",
pricingProFeature3: "Assistance IA illimitée",
pricingEnterpriseFeature1: "Toutes les fonctionnalités Pro",
pricingEnterpriseFeature2: "Création de cours personnalisés",
pricingEnterpriseFeature3: "Support dédié",
testimonialTitle: "Ce que disent nos étudiants",
adminDashboard: "Tableau de bord administrateur",
overview: "Aperçu",
users: "Utilisateurs",
analytics: "Analytique",
totalUsers: "Utilisateurs totaux",
activeCourses: "Cours actifs",
completionRate: "Taux d'achèvement",
revenue: "Revenus",
recentUsers: "Utilisateurs récents",
userManagement: "Gestion des utilisateurs",
courseManagement: "Gestion des cours",
addNewCourse: "Ajouter un nouveau cours",
editCourse: "Modifier le cours",
deleteCourse: "Supprimer le cours",
searchUsers: "Rechercher des utilisateurs...",
searchCourses: "Rechercher des cours...",
name: "Nom",
role: "Rôle",
status: "Statut",
actions: "Actions",
active: "Actif",
inactive: "Inactif",
student: "Étudiant",
instructor: "Instructeur",
admin: "Administrateur",
lastActive: "Dernière activité",
viewDetails: "Voir les détails",
edit: "Modifier",
delete: "Supprimer",
confirmDelete: "Êtes-vous sûr de vouloir supprimer cet élément ?",
cancel: "Annuler",
save: "Enregistrer",
addNew: "Ajouter nouveau",
filterBy: "Filtrer par",
sortBy: "Trier par",
ascending: "Ascendant",
descending: "Descendant",
showingResults: "Affichage de {start}-{end} sur {total} résultats",
previousPage: "Page précédente",
nextPage: "Page suivante",
itemsPerPage: "Éléments par page",
dashboardOverview: "Aperçu du tableau de bord",
todayStats: "Statistiques du jour",
monthlyStats: "Statistiques mensuelles",
yearlyStats: "Statistiques annuelles",
newUsers: "Nouveaux utilisateurs",
courseEnrollments: "Inscriptions aux cours",
quizCompletions: "Quiz terminés",
averageScore: "Score moyen",
topPerformingCourses: "Cours les plus performants",
recentActivities: "Activités récentes",
viewAll: "Voir tout",
activity: "Activité",
time: "Heure",
userJoined: "Utilisateur inscrit",
courseCreated: "Cours créé",
quizCompleted: "Quiz terminé",
certificateIssued: "Certificat délivré",
justNow: "À l'instant",
minutesAgo: "Il y a {minutes} minutes",
hoursAgo: "Il y a {hours} heures",
daysAgo: "Il y a {days} jours",
},
ar: {
home: "الرئيسية",
login: "تسجيل الدخول",
register: "التسجيل",
dashboard: "لوحة التحكم",
courses: "الدورات",
exercises: "التمارين",
quizzes: "الاختبارات",
profile: "الملف الشخصي",
settings: "الإعدادات",
aiAssistant: "المساعد الذكي",
darkMode: "الوضع الداكن",
lightMode: "الوضع الفاتح",
language: "اللغة",
popularCourses: "الدورات الشائعة",
continueStudying: "متابعة الدراسة",
recommendedForYou: "موصى به لك",
yourProgress: "تقدمك",
downloadPDF: "تحميل PDF",
watchVideo: "مشاهدة الفيديو",
startExercise: "بدء التمرين",
takeQuiz: "بدء الاختبار",
solveWithCamera: "حل باستخدام الكاميرا",
askWithVoice: "السؤال بالصوت",
nextStep: "الخطوة التالية",
showSolution: "عرض الحل",
checkAnswer: "تحقق من الإجابة",
correct: "صحيح!",
incorrect: "حاول مرة أخرى",
hint: "تلميح",
email: "البريد الإلكتروني",
password: "كلمة المرور",
forgotPassword: "نسيت كلمة المرور؟",
dontHaveAccount: "ليس لديك حساب؟",
signUp: "إنشاء حساب",
rememberMe: "تذكرني",
welcomeBack: "مرحبًا بعودتك",
loginToAccount: "تسجيل الدخول إلى حسابك",
getStarted: "ابدأ الآن",
learnMore: "اعرف المزيد",
features: "المميزات",
pricing: "الأسعار",
testimonials: "آراء الطلاب",
contactUs: "اتصل بنا",
aboutUs: "من نحن",
termsOfService: "شروط الخدمة",
privacyPolicy: "سياسة الخصوصية",
copyright: "© 2023 ماث جينيوس. جميع الحقوق محفوظة.",
heroTitle: "أتقن الرياضيات مع التعلم المدعوم بالذكاء الاصطناعي",
heroSubtitle: "دورات تفاعلية، مسارات تعلم مخصصة، ومساعدة الذكاء الاصطناعي بلغات متعددة",
featureTitle1: "تمارين تفاعلية",
featureDesc1: "تدرب مع حلول خطوة بخطوة وملاحظات فورية",
featureTitle2: "مساعد الرياضيات الذكي",
featureDesc2: "احصل على المساعدة في أي وقت مع مدرسنا الذكي",
featureTitle3: "دعم متعدد اللغات",
featureDesc3: "تعلم باللغة الإنجليزية أو الفرنسية أو العربية مع ترجمات كاملة",
pricingBasic: "أساسي",
pricingPro: "احترافي",
pricingEnterprise: "مؤسسات",
pricingBasicPrice: "$9.99/شهر",
pricingProPrice: "$19.99/شهر",
pricingEnterprisePrice: "اتصل بنا",
pricingBasicFeature1: "الوصول إلى جميع الدورات الأساسية",
pricingBasicFeature2: "تمارين تفاعلية",
pricingBasicFeature3: "مساعدة ذكاء اصطناعي محدودة",
pricingProFeature1: "جميع ميزات الباقة الأساسية",
pricingProFeature2: "دورات واختبارات متقدمة",
pricingProFeature3: "مساعدة ذكاء اصطناعي غير محدودة",
pricingEnterpriseFeature1: "جميع ميزات الباقة الاحترافية",
pricingEnterpriseFeature2: "إنشاء دورات مخصصة",
pricingEnterpriseFeature3: "دعم مخصص",
testimonialTitle: "ماذا يقول طلابنا",
adminDashboard: "لوحة تحكم المسؤول",
overview: "نظرة عامة",
users: "المستخدمون",
analytics: "التحليلات",
totalUsers: "إجمالي المستخدمين",
activeCourses: "الدورات النشطة",
completionRate: "معدل الإكمال",
revenue: "الإيرادات",
recentUsers: "المستخدمون الجدد",
userManagement: "إدارة المستخدمين",
courseManagement: "إدارة الدورات",
addNewCourse: "إضافة دورة جديدة",
editCourse: "تعديل الدورة",
deleteCourse: "حذف الدورة",
searchUsers: "البحث عن مستخدمين...",
searchCourses: "البحث عن دورات...",
name: "الاسم",
role: "الدور",
status: "الحالة",
actions: "الإجراءات",
active: "نشط",
inactive: "غير نشط",
student: "طالب",
instructor: "مدرس",
admin: "مسؤول",
lastActive: "آخر نشاط",
viewDetails: "عرض التفاصيل",
edit: "تعديل",
delete: "حذف",
confirmDelete: "هل أنت متأكد من رغبتك في حذف هذا العنصر؟",
cancel: "إلغاء",
save: "حفظ",
addNew: "إضافة جديد",
filterBy: "تصفية حسب",
sortBy: "ترتيب حسب",
ascending: "تصاعدي",
descending: "تنازلي",
showingResults: "عرض {start}-{end} من {total} نتيجة",
previousPage: "الصفحة السابقة",
nextPage: "الصفحة التالية",
itemsPerPage: "العناصر في الصفحة",
dashboardOverview: "نظرة عامة على لوحة التحكم",
todayStats: "إحصائيات اليوم",
monthlyStats: "إحصائيات شهرية",
yearlyStats: "إحصائيات سنوية",
newUsers: "مستخدمون جدد",
courseEnrollments: "التسجيلات في الدورات",
quizCompletions: "اختبارات مكتملة",
averageScore: "متوسط الدرجات",
topPerformingCourses: "أفضل الدورات أداءً",
recentActivities: "الأنشطة الأخيرة",
viewAll: "عرض الكل",
activity: "النشاط",
time: "الوقت",
userJoined: "انضم مستخدم",
courseCreated: "تم إنشاء دورة",
quizCompleted: "تم إكمال اختبار",
certificateIssued: "تم إصدار شهادة",
justNow: "الآن",
minutesAgo: "منذ {minutes} دقيقة",
hoursAgo: "منذ {hours} ساعة",
daysAgo: "منذ {days} يوم",
}
};
// Get translated text based on current language
const t = (key) => translations[language][key] || key;
// Render the appropriate page based on currentPage state
const renderPage = () => {
switch(currentPage) {
case 'home':
return
{t('heroSubtitle')}
Discover how our platform revolutionizes mathematics education
{t('featureDesc1')}
{t('featureDesc2')}
{t('featureDesc3')}
Our platform offers a truly interactive learning experience with:
Get help with any math problem using our advanced AI assistant:
Choose the plan that fits your learning needs
Hear from students who have transformed their math skills with our platform
"MathGenius transformed my approach to calculus. The step-by-step solutions and AI assistant helped me understand concepts I had struggled with for years."
"As a teacher, I've recommended MathGenius to all my students. The multilingual support makes it accessible to everyone, and the interactive exercises keep students engaged."
"The camera-based equation solver is a game-changer! I can take a picture of a problem I'm stuck on and get immediate help. My math grades have improved significantly."
Join thousands of students who are transforming their math skills with our AI-powered platform.
{t('loginToAccount')}
| {t('name')} | {t('role')} | {t('status')} | {t('lastActive')} |
|---|---|---|---|
|
{user.name.charAt(0)}
{user.name}
{user.email}
|
{t(user.role)} | {t(user.status)} | {user.lastActive} |
{activity.type === 'userJoined' && `${activity.user} ${t('userJoined')}`} {activity.type === 'courseCreated' && `${activity.user} ${t('courseCreated')}: ${activity.course}`} {activity.type === 'quizCompleted' && `${activity.user} ${t('quizCompleted')}: ${activity.quiz} (${activity.score})`} {activity.type === 'certificateIssued' && `${activity.user} ${t('certificateIssued')}: ${activity.course}`}
{activity.time === 'justNow' && t('justNow')} {activity.time === 'minutesAgo' && t('minutesAgo').replace('{minutes}', activity.minutes)} {activity.time === 'hoursAgo' && t('hoursAgo').replace('{hours}', activity.hours)} {activity.time === 'daysAgo' && t('daysAgo').replace('{days}', activity.days)}Analytics charts would be displayed here
| {t('name')} | {t('email')} | {t('role')} | {t('status')} | {t('lastActive')} | {t('actions')} |
|---|---|---|---|---|---|
|
{user.name.charAt(0)}
{user.name}
|
{user.email} | {t(user.role)} | {t(user.status)} | {user.lastActive} |
|
| {t('title')} | {t('instructor')} | {t('students')} | {t('rating')} | {t('status')} | {t('actions')} |
|---|---|---|---|---|---|
|
{course.title}
|
{course.instructor} | {course.students} |
{course.rating}
|
{t(course.status)} |
|
{t('newUsers')}
{t('courseEnrollments')}
{t('quizCompletions')}
{t('averageScore')}
User growth chart would be displayed here
Course popularity chart would be displayed here
| {t('course')} | {t('students')} | {t('completionRate')} | {t('averageScore')} | {t('revenue')} |
|---|---|---|---|---|
|
Calculus I
|
156 | 85% | 92% | $7,800 |
|
Linear Algebra
|
98 | 78% | 88% | $4,900 |
|
Statistics
|
import React, { useState, useEffect } from 'react';
import { Sun, Moon, Globe, User, Camera, Mic, BookOpen, Video, FileText, HelpCircle, ChevronLeft, ChevronRight, Menu, X, Check, AlertTriangle } from 'lucide-react';
// Main App Component
export default function MathELearningPlatform() {
const [darkMode, setDarkMode] = useState(false);
const [language, setLanguage] = useState('en');
const [currentPage, setCurrentPage] = useState('dashboard');
const [menuOpen, setMenuOpen] = useState(false);
const [aiAssistantOpen, setAiAssistantOpen] = useState(false);
// Toggle dark mode and store preference
const toggleDarkMode = () => {
setDarkMode(!darkMode);
document.documentElement.classList.toggle('dark');
};
// Change language and handle RTL for Arabic
const changeLanguage = (lang) => {
setLanguage(lang);
document.documentElement.dir = lang === 'ar' ? 'rtl' : 'ltr';
};
// Translations object for multilingual support
const translations = {
en: {
dashboard: "Dashboard",
courses: "Courses",
exercises: "Exercises",
quizzes: "Quizzes",
profile: "Profile",
settings: "Settings",
aiAssistant: "AI Assistant",
darkMode: "Dark Mode",
lightMode: "Light Mode",
language: "Language",
popularCourses: "Popular Courses",
continueStudying: "Continue Studying",
recommendedForYou: "Recommended For You",
yourProgress: "Your Progress",
downloadPDF: "Download PDF",
watchVideo: "Watch Video",
startExercise: "Start Exercise",
takeQuiz: "Take Quiz",
solveWithCamera: "Solve with Camera",
askWithVoice: "Ask with Voice",
nextStep: "Next Step",
showSolution: "Show Solution",
checkAnswer: "Check Answer",
correct: "Correct!",
incorrect: "Try Again",
hint: "Hint",
},
fr: {
dashboard: "Tableau de bord",
courses: "Cours",
exercises: "Exercices",
quizzes: "Quiz",
profile: "Profil",
settings: "Paramètres",
aiAssistant: "Assistant IA",
darkMode: "Mode sombre",
lightMode: "Mode clair",
language: "Langue",
popularCourses: "Cours populaires",
continueStudying: "Continuer l'étude",
recommendedForYou: "Recommandé pour vous",
yourProgress: "Votre progression",
downloadPDF: "Télécharger PDF",
watchVideo: "Regarder la vidéo",
startExercise: "Commencer l'exercice",
takeQuiz: "Faire le quiz",
solveWithCamera: "Résoudre avec la caméra",
askWithVoice: "Demander avec la voix",
nextStep: "Étape suivante",
showSolution: "Afficher la solution",
checkAnswer: "Vérifier la réponse",
correct: "Correct !",
incorrect: "Essayez encore",
hint: "Indice",
},
ar: {
dashboard: "لوحة التحكم",
courses: "الدورات",
exercises: "التمارين",
quizzes: "الاختبارات",
profile: "الملف الشخصي",
settings: "الإعدادات",
aiAssistant: "المساعد الذكي",
darkMode: "الوضع الداكن",
lightMode: "الوضع الفاتح",
language: "اللغة",
popularCourses: "الدورات الشائعة",
continueStudying: "متابعة الدراسة",
recommendedForYou: "موصى به لك",
yourProgress: "تقدمك",
downloadPDF: "تحميل PDF",
watchVideo: "مشاهدة الفيديو",
startExercise: "بدء التمرين",
takeQuiz: "بدء الاختبار",
solveWithCamera: "حل باستخدام الكاميرا",
askWithVoice: "السؤال بالصوت",
nextStep: "الخطوة التالية",
showSolution: "عرض الحل",
checkAnswer: "تحقق من الإجابة",
correct: "صحيح!",
incorrect: "حاول مرة أخرى",
hint: "تلميح",
}
};
// Get translated text based on current language
const t = (key) => translations[language][key] || key;
// Render the appropriate page based on currentPage state
const renderPage = () => {
switch(currentPage) {
case 'dashboard':
return
{/* Header */}
);
}
// Dashboard Component
function Dashboard({ t, setCurrentPage }) {
// Mock data for dashboard
const courses = [
{ id: 1, title: "Calculus I", progress: 75, image: "https://images.unsplash.com/photo-1635070041078-e363dbe005cb?ixlib=rb-4.0.3&ixid=M3wxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8fA%3D%3D&auto=format&fit=crop&w=500&q=80" },
{ id: 2, title: "Linear Algebra", progress: 30, image: "https://images.unsplash.com/photo-1509228468518-180dd4864904?ixlib=rb-4.0.3&ixid=M3wxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8fA%3D%3D&auto=format&fit=crop&w=500&q=80" },
{ id: 3, title: "Statistics", progress: 10, image: "https://images.unsplash.com/photo-1551288049-bebda4e38f71?ixlib=rb-4.0.3&ixid=M3wxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8fA%3D%3D&auto=format&fit=crop&w=500&q=80" },
{ id: 4, title: "Discrete Mathematics", progress: 0, image: "https://images.unsplash.com/photo-1580894732444-8ecded7900cd?ixlib=rb-4.0.3&ixid=M3wxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8fA%3D%3D&auto=format&fit=crop&w=500&q=80" }
];
return (
MathGenius
MathGenius
setMenuOpen(false)}
>
setAiAssistantOpen(false)}
>
)}
{/* Navigation Bar (Desktop) */}
{/* Welcome Section */}
);
}
// Course Page Component
function CoursePage({ t, setCurrentPage }) {
const [activeTab, setActiveTab] = useState('content');
return (
Welcome back, Alex!Continue your learning journey in mathematics. {t('yourProgress')}
{courses.map(course => (
setCurrentPage('course')}
>
))}
{course.title}{course.progress}% {t('completed')} {t('recommendedForYou')} setCurrentPage('course')}
>
Differential EquationsAdvanced course on solving differential equations setCurrentPage('course')}
>
Number TheoryExplore the fascinating world of numbers setCurrentPage('course')}
>
GeometryMaster geometric principles and proofs
{/* Course Header */}
);
}
// Exercise Page Component
function ExercisePage({ t, setCurrentPage }) {
const [currentStep, setCurrentStep] = useState(0);
const [showSolution, setShowSolution] = useState(false);
const [userAnswer, setUserAnswer] = useState('');
const [feedback, setFeedback] = useState(null);
// Mock exercise data
const exercise = {
title: "Evaluating Limits",
steps: [
{
question: "Evaluate the limit: \\lim_{x \\to 2} \\frac{x^2 - 4}{x - 2}",
solution: "\\begin{align} \\lim_{x \\to 2} \\frac{x^2 - 4}{x - 2} &= \\lim_{x \\to 2} \\frac{(x - 2)(x + 2)}{x - 2} \\\\ &= \\lim_{x \\to 2} (x + 2) \\\\ &= 2 + 2 \\\\ &= 4 \\end{align}",
correctAnswer: "4"
},
{
question: "Evaluate the limit: \\lim_{x \\to 0} \\frac{\\sin x}{x}",
solution: "\\begin{align} \\lim_{x \\to 0} \\frac{\\sin x}{x} = 1 \\end{align} This is a fundamental limit in calculus.",
correctAnswer: "1"
},
{
question: "Evaluate the limit: \\lim_{x \\to 1} \\frac{x^3 - 1}{x - 1}",
solution: "\\begin{align} \\lim_{x \\to 1} \\frac{x^3 - 1}{x - 1} &= \\lim_{x \\to 1} \\frac{(x - 1)(x^2 + x + 1)}{x - 1} \\\\ &= \\lim_{x \\to 1} (x^2 + x + 1) \\\\ &= 1^2 + 1 + 1 \\\\ &= 3 \\end{align}",
correctAnswer: "3"
}
]
};
const checkAnswer = () => {
if (userAnswer === exercise.steps[currentStep].correctAnswer) {
setFeedback({ correct: true, message: t('correct') });
} else {
setFeedback({ correct: false, message: t('incorrect') });
}
};
const nextStep = () => {
if (currentStep < exercise.steps.length - 1) {
setCurrentStep(currentStep + 1);
setShowSolution(false);
setUserAnswer('');
setFeedback(null);
}
};
return (
Calculus IModule 1: Introduction to Limits{/* PDF Section */}Course Notes: Limits and ContinuityPDF Preview Video Lecture: Understanding LimitsVideo Player
Subtitles: English
1080p
Module 2: Derivatives{/* PDF Section */}Course Notes: Introduction to DerivativesPDF Preview setCurrentPage('exercise')}
>
Exercise 1: Evaluating LimitsPractice calculating limits using algebraic methods
Beginner
setCurrentPage('exercise')}
>
Exercise 2: ContinuityDetermine where functions are continuous and discontinuous
Intermediate
setCurrentPage('exercise')}
>
Exercise 3: Derivative RulesApply different rules to find derivatives
Advanced
setCurrentPage('quiz')}
>
Quiz 1: Limits FundamentalsTest your understanding of basic limit concepts
10 questions
15 min
setCurrentPage('quiz')}
>
Quiz 2: DerivativesTest your knowledge of derivative rules and applications
15 questions
20 min
{/* Exercise Header */}
);
}
// Quiz Page Component
function QuizPage({ t, setCurrentPage }) {
const [currentQuestion, setCurrentQuestion] = useState(0);
const [selectedOption, setSelectedOption] = useState(null);
const [showExplanation, setShowExplanation] = useState(false);
const [quizCompleted, setQuizCompleted] = useState(false);
const [score, setScore] = useState(0);
// Mock quiz data
const quiz = {
title: "Limits Fundamentals",
questions: [
{
question: "What is the value of \\lim_{x \\to 0} \\frac{\\sin x}{x}?",
options: ["0", "1", "\\infty", "Does not exist"],
correctAnswer: 1,
explanation: "This is a fundamental limit in calculus. As x approaches 0, the ratio of sin(x) to x approaches 1."
},
{
question: "If f(x) is continuous at x = a, then:",
options: [
"\\lim_{x \\to a} f(x) = f(a)",
"f(x) must be differentiable at x = a",
"f(x) must be defined for all x",
"f(x) must be a polynomial"
],
correctAnswer: 0,
explanation: "By definition, a function is continuous at x = a if the limit of f(x) as x approaches a equals f(a)."
},
{
question: "Which of the following is an indeterminate form?",
options: ["\\frac{1}{0}", "\\frac{0}{1}", "\\frac{0}{0}", "\\frac{1}{1}"],
correctAnswer: 2,
explanation: "The form 0/0 is indeterminate because it doesn't immediately give us information about the limit's value. We need additional techniques like L'Hôpital's rule to evaluate such limits."
}
]
};
const handleOptionSelect = (index) => {
setSelectedOption(index);
};
const checkAnswer = () => {
if (selectedOption === quiz.questions[currentQuestion].correctAnswer) {
setScore(score + 1);
}
setShowExplanation(true);
};
const nextQuestion = () => {
if (currentQuestion < quiz.questions.length - 1) {
setCurrentQuestion(currentQuestion + 1);
setSelectedOption(null);
setShowExplanation(false);
} else {
setQuizCompleted(true);
}
};
return (
{exercise.title}
{/* Question Panel */}
Question {currentStep + 1}{exercise.steps[currentStep].question}
setUserAnswer(e.target.value)}
className="w-full px-3 py-2 border dark:border-gray-700 rounded-md focus:outline-none focus:ring-2 focus:ring-indigo-500 dark:focus:ring-teal-500 dark:bg-gray-700"
placeholder="Enter your answer here"
/>
{feedback && (
{feedback.correct ? (
{feedback.message} {showSolution ? t('solution') : t('hint')}{showSolution ? ({t('stepByStepSolution')}: {exercise.steps[currentStep].solution} {t('tryFactoring')}
{/* Quiz Header */}
);
}
// AI Assistant Component
function AIAssistant({ t, darkMode, onClose }) {
const [messages, setMessages] = useState([
{ role: 'assistant', content: t('aiAssistantIntro') }
]);
const [input, setInput] = useState('');
const [isProcessing, setIsProcessing] = useState(false);
const handleSendMessage = () => {
if (input.trim() === '') return;
const newMessages = [
...messages,
{ role: 'user', content: input }
];
setMessages(newMessages);
setInput('');
setIsProcessing(true);
// Simulate AI response
setTimeout(() => {
setMessages([
...newMessages,
{
role: 'assistant',
content: "I'd be happy to help with your math question! Let me explain the concept step by step..."
}
]);
setIsProcessing(false);
}, 1500);
};
return (
{quiz.title}Question {currentQuestion + 1}{quiz.questions[currentQuestion].question}
{quiz.questions[currentQuestion].options.map((option, index) => (
{showExplanation && (
!showExplanation && handleOptionSelect(index)}
className={`p-3 border rounded-md cursor-pointer transition-colors ${
selectedOption === index
? (showExplanation
? (index === quiz.questions[currentQuestion].correctAnswer
? 'bg-green-100 dark:bg-green-900 border-green-500'
: 'bg-red-100 dark:bg-red-900 border-red-500')
: 'bg-indigo-100 dark:bg-indigo-900 border-indigo-500')
: (showExplanation && index === quiz.questions[currentQuestion].correctAnswer
? 'bg-green-100 dark:bg-green-900 border-green-500'
: 'hover:bg-gray-100 dark:hover:bg-gray-700 border-gray-300 dark:border-gray-600')
}`}
>
))}
{selectedOption === index && (
)}
{showExplanation && index === quiz.questions[currentQuestion].correctAnswer && (
{option}
{t('explanation')}:{quiz.questions[currentQuestion].explanation}
{!showExplanation ? (
) : (
)}
{t('quizCompleted')}
{score}/{quiz.questions.length}
{score === quiz.questions.length ? t('perfectScore') : score >= quiz.questions.length / 2 ? t('goodJob') : t('keepPracticing')} {t('aiAssistant')}
{messages.map((message, index) => (
{message.content}
setInput(e.target.value)}
onKeyPress={(e) => e.key === 'Enter' && handleSendMessage()}
className="flex-1 px-3 py-2 border dark:border-gray-700 rounded-md focus:outline-none focus:ring-2 focus:ring-indigo-500 dark:focus:ring-teal-500 dark:bg-gray-700"
placeholder={t('typeYourQuestion')}
/>
|