LearnSmart is an adaptive e-learning platform designed to provide personalized educational content based on user preferences, learning styles, and progress. This Minimum Viable Product (MVP) focuses on core features such as user classification, content management, YouTube video integration, and analytics.
- Introduction
- Features
- Technology Stack
- Installation
- API Endpoints
- Data Model
- User Stories
- Contributing
- License
The LearnSmart MVP provides an interactive and personalized learning experience by dynamically adjusting content based on users' learning styles. With integrated YouTube video support and detailed progress tracking, learners receive content recommendations tailored to their unique needs.
- User Classification: Classifies users based on their learning styles and preferences.
- Personalized Content: Delivers content from the Learning Repository and YouTube based on classification and progress.
- YouTube API Integration: Fetches relevant educational videos for learners.
- Progress Tracking: Tracks learners' progress to optimize future content delivery.
- Admin Panel: Manage the content repository and analyze user interactions.
- LMS Analytics Tool: Provides detailed reports on user engagement and content performance.
- Frontend: HTML, CSS, JavaScript
- Backend: PHP
- Database: MySQL
- APIs: YouTube Data API, LearnSmart Custom APIs
- Frameworks:
- Backend: codeigniter
- Analytics: LMS Analytics Tool (custom analytics module)
- PHP
- MySQL
- YouTube Data API Key
-
Clone the repository:
git clone https://github.com/Christopher-Chilengwe/LearnSmart.git cd LearnSmart -
Install dependencies:
install Xampp
-
Set up the database:
- Create a MySQL/ database named
edupulsedb. - Import the database edupulsedb`.
- Create a MySQL/ database named
-
Start the server:
start the localhost server
-
Access the app at
http://localhost/LearnSmart.
- POST
/api/classify_user- Classifies users based on interaction data.
- Params:
user_id,interaction_data
- GET
/api/get_content- Retrieves educational content for the user.
- Params:
user_id,classification_type
- GET
/api/get_youtube_videos- Fetches educational videos based on user classification.
- Params:
user_id,classification_type,search_terms(optional)
- POST
/api/update_progress- Updates the user’s progress.
- Params:
user_id,progress_data
- GET
/api/analyze_usage- Provides insights into user engagement.
- Params:
date_range,user_id(optional)
- Users: Stores user profiles and classifications.
user_id,name,email,classification_type,progress,preferences
- Content: Stores educational content.
content_id,title,type,format,difficulty_level,classification_type
- YouTube Videos: Stores video metadata.
video_id,title,url,classification_type,duration,description
- Interactions: Logs user interactions with content and videos.
interaction_id,user_id,content_id,video_id,timestamp,interaction_type
- "As a learner, I want to receive content based on my learning style so I can improve my learning outcomes."
- "As a learner, I want to track my progress to understand how I am improving."
- "As an administrator, I want to manage the content repository to ensure it stays up to date."
- "As an administrator, I want to analyze user engagement data to improve content delivery."
- "As an educator, I want to view analytics to optimize how learning materials are presented."
- "As a recruiter, I want to explore a demo mode without creating an account."
We welcome contributions! To contribute:
- Fork the repository.
- Create a new branch (
git checkout -b feature-name). - Commit your changes (
git commit -m 'Add new feature'). - Push to the branch (
git push origin feature-name). - Open a pull request.
This project is licensed under the MIT License - see the LICENSE file for details.