A comprehensive learning management system with AI-driven recommendations, analytics, and fraud detection for university education.
- Course Management: Browse and enroll in courses with modules and lessons
- Learning Progress Tracking: Monitor completion and performance
- Assignments & Quizzes: Submit assignments and take timed quizzes
- AI Recommendations: Personalized learning suggestions based on performance
- Discussion Forums: Engage with peers and instructors
- Real-time Notifications: Get updates on deadlines, grades, and recommendations
- Multi-language Support: English, French, and Kinyarwanda
- Dark/Light Mode: Customizable theme preferences
- Course Creation: Build courses with modules, lessons, and assessments
- Performance Analytics: View detailed student performance metrics
- Assignment Grading: Grade submissions with feedback
- Forum Moderation: Respond to student questions
- Participation Tracking: Monitor student engagement
- Lesson Difficulty Analysis: Identify challenging content
- User Management: Manage students, teachers, and admins
- Platform Analytics: Monitor system-wide metrics
- Report Generation: Export CSV/PDF reports
- Bulk Operations: Import/export courses and enrollments
- System Health Monitoring: Track platform performance
frontend/
βββ src/
β βββ components/ # Reusable UI components
β βββ pages/ # Page components (student, teacher, admin)
β βββ context/ # React Context (Auth, Theme, Language)
β βββ hooks/ # Custom React hooks
β βββ utils/ # Utility functions and translations
β βββ assets/ # Images and static files
βββ public/
βββ package.json
backend/
βββ api/ # REST API endpoints
βββ config/ # Database and constants
βββ models/ # Data models (CRUD operations)
βββ controllers/ # Business logic
βββ includes/ # Shared templates
βββ uploads/ # User-uploaded files
βββ reports/ # Generated reports
βββ logs/ # Error and analytics logs
- 3NF Normalized Schema
- 14 Tables: users, courses, modules, lessons, enrollments, assignments, submissions, quizzes, questions, quiz_attempts, forum_posts, recommendations, notifications, analytics_logs
- Prepared Statements: SQL injection prevention
- Foreign Keys: Data integrity enforcement
- PHP: 7.4 or higher
- MySQL: 5.7 or higher
- Node.js: 16.x or higher
- XAMPP/WAMP/LAMP: Local server environment
- Import Database
# Start MySQL server
mysql -u root -p
# Create database
CREATE DATABASE student_learning_platform;
# Import schema
mysql -u root -p student_learning_platform < database/schema.sql
# Import seed data
mysql -u root -p student_learning_platform < database/seed_data.sql- Configure Database Connection
Edit
backend/config/database.php:
private $host = 'localhost';
private $username = 'root';
private $password = '';
private $database = 'student_learning_platform';- Set Directory Permissions
chmod -R 755 backend/uploads
chmod -R 755 backend/reports
chmod -R 755 backend/logs- Configure Apache
Ensure
mod_rewriteis enabled and.htaccessfiles are processed.
- Install Dependencies
cd frontend
npm install- Configure API Endpoint
Edit
frontend/src/context/AuthContext.js:
const API_BASE_URL = 'http://localhost/aiprs/backend/api';- Start Development Server
npm startThe application will open at http://localhost:3000
cd frontend
npm run build-
Authentication
- Secure password hashing (bcrypt)
- Session management
- Role-based access control (RBAC)
-
Input Validation
- Client-side: React form validation
- Server-side: PHP filter_var, htmlspecialchars
- Prepared statements for SQL
-
File Upload Security
- MIME type validation
- File size limits (10MB)
- Random filename generation
- Restricted upload directories
-
Activity Logging
- Login attempts
- Data modifications
- Recommendation generation
- Quiz attempts with fraud detection
-
CORS Configuration
- Controlled cross-origin requests
- API endpoint protection
- Next Lesson: Suggests the next logical lesson based on progress
- Review: Recommends revisiting content for struggling students (score < 60%)
- Challenge: Advanced content for high performers (score β₯ 85%)
- Remedial: Content review based on quiz performance
1. Analyze student performance data
- Quiz scores
- Assignment grades
- Lesson completion rates
- Time spent on lessons
2. Apply rule-based logic
- High performers β Challenging content
- Struggling students β Review and remedial
- Average students β Next lessons
3. Generate personalized recommendations
- Priority scoring (0-10)
- Reason explanation
- Course/lesson linking
4. Send notifications
- Real-time alerts
- Dashboard display
| Role | Password | |
|---|---|---|
| Student | sangwabgy | Admin@123! |
| Student | jackson | Admin@123! |
| Teacher | Teacher1 | Admin@123! |
| Admin | admin | Admin@123! |
POST /api/auth.php?action=login- User loginPOST /api/auth.php?action=register- User registrationPOST /api/auth.php?action=logout- User logoutGET /api/auth.php?action=current- Get current user
GET /api/courses.php?action=list- List all coursesGET /api/courses.php?action=get&id={id}- Get course detailsPOST /api/courses.php?action=create- Create coursePUT /api/courses.php?action=update&id={id}- Update courseDELETE /api/courses.php?action=delete&id={id}- Delete course
GET /api/enrollments.php?action=student_courses- Get student's coursesGET /api/enrollments.php?action=course_students- Get course studentsPOST /api/enrollments.php?action=enroll- Enroll in coursePUT /api/enrollments.php?action=update_progress- Update progress
GET /api/recommendations.php?action=get- Get recommendationsPOST /api/recommendations.php?action=generate- Generate new recommendationsPOST /api/recommendations.php?action=mark_viewed- Mark as viewed
Supported languages:
- English (en): Default
- French (fr): Full translation
- Kinyarwanda (rw): Full translation
Add translations in frontend/src/utils/translations.js
Toggle between light and dark modes using the half-moon icon in the top navigation bar. Theme preference is saved in localStorage.
- Enrollment statistics
- Completion rates
- Average grades
- Study time tracking
- Course performance metrics
- Student participation rates
- Assignment submission statistics
- Quiz score distributions
- Platform-wide metrics
- User growth trends
- Course popularity
- System performance
- CSV exports for data analysis
- PDF reports for presentations
- Filter by date, course, student, or grade
- IP address tracking
- Time analysis (too fast/slow)
- Answer pattern detection
- Multiple tab detection (future enhancement)
- Text similarity checking
- Submission timing analysis
- Pattern recognition
- PHP: PSR-12 coding standards
- JavaScript: ESLint with Airbnb config
- Comments: Clear documentation for all functions
- Naming: Descriptive variable and function names
- Unit tests for models
- Integration tests for API endpoints
- End-to-end tests with Selenium (future)
git init
git add .
git commit -m "Initial commit: Intelligent Learning Platform"- React 18.2.0
- Material UI 5.14.19
- React Router DOM 6.20.1
- Recharts 2.10.3
- Axios 1.6.2
- Pure PHP (no frameworks)
- MySQLi extension
- GD Library (image processing)
-
Database Connection Error
- Check MySQL is running
- Verify credentials in
backend/config/database.php - Ensure database exists
-
CORS Errors
- Check API endpoint URL in AuthContext
- Verify CORS headers in API files
- Enable
mod_headersin Apache
-
File Upload Fails
- Check directory permissions (755)
- Verify
upload_max_filesizein php.ini - Ensure uploads folder exists
-
Session Not Persisting
- Check
session.cookie_samesitein php.ini - Verify
withCredentials: truein Axios requests - Ensure cookies are enabled in browser
- Check
This project is licensed under the MIT License. See LICENSE file for details.
For questions and support:
- Email: support@eduplatform.edu
- Documentation: /docs
- Issue Tracker: GitHub Issues
- β Core functionality
- β AI recommendations
- β Multi-language support
- β Analytics dashboard
- π Real-time chat
- π Video conferencing integration
- π Mobile app (React Native)
- π Advanced fraud detection
- π Machine learning models
- π Blockchain certificates
- π Gamification features
- π Advanced analytics with AI
Built with modern web technologies and best practices for educational institutions worldwide.
Version: 1.0.0
Last Updated: November 2024
Maintained by: Development Team