Loading repository data…
Loading repository data…
Navaneeth-Gireesh / repository
EduSphere is a robust online learning platform that leverages Python, Django, and MySQL for backend operations, combined with HTML, CSS, and JavaScript for a responsive frontend. It offers a secure, scalable, and user-friendly experience for both administrators and students.
EduSphere is a robust online learning platform that leverages Python, Django, and MySQL for backend operations, combined with HTML, CSS, and JavaScript for a responsive frontend. It offers a secure, scalable, and user-friendly experience for both administrators and students.
EduSphere is a feature-rich online learning platform that enables users to enroll in courses, access study materials, and engage with quizzes, videos, and documents. It offers seamless coupon code functionality for course purchases and integrates automated email notifications using Celery to enhance communication with users. Additionally, the platform employs Django AllAuth for secure and efficient social authentication via Google and GitHub. Administrators have full control over managing courses, users, and coupon codes, making EduSphere a powerful tool for educational purposes.
Authentication and Security: Integrated OTP-based authentication and OAuth, allowing secure login and recovery processes using social logins (Google, GitHub).
Automated Notifications: Set up automated email notifications for login attempts, account status changes, and course purchases using Django Celery.
Role-Based Access Control: Implemented dynamic coupon generation and role-based access control to enhance the user experience with customized access and discounts.
Efficient Management: Developed CRUD operations for managing courses, users, and coupons, streamlining administrative tasks.
Enhanced Search Functionality: Enabled intuitive search options, allowing admins to locate users by email, username, or name, and students to search for courses by name.
Ensure you have the following installed:
Clone the repository:
git clone https://github.com/Navaneeth-Gireesh/Online_Learning_Platform.git
cd Online_Learning_Platform
Set up a virtual environment:
python -m venv venv
source venv/bin/activate # On Mac
venv\Scripts\Activate # On Windows
Install dependencies:
pip install -r requirements.txt
Configure settings.py:
In your settings.py, change the following configuration with yours under DATABASES:
DATABASES = {
'default': {
'ENGINE': 'django.db.backends.mysql',
'NAME': '<your-database-name>', # Replace with your MySQL database name
'USER': 'root', # Replace with your MySQL username
'PASSWORD': '<your-password>', # Replace with your MySQL password
'HOST': '127.0.0.1', # Or your database host
'PORT': '3306', # The default MySQL port
'OPTIONS': {
'init_command': 'SET sql_mode="STRICT_TRANS_TABLES"',
}
}
}
Create Database:
Create the MySQL database if it hasn't been created yet :
CREATE DATABASE <your-database-name>;
Make sure to replace 'your-database-name' with your chosen database name.
Run Make Migrations:
python manage.py makemigrations
Run Migrate:
python manage.py migrate
Configure settings.py:
EMAIL_BACKEND = 'django.core.mail.backends.smtp.EmailBackend'
EMAIL_HOST = 'smtp.gmail.com'
EMAIL_HOST_USER = '<your-email@gmail.com>' # Replace with your email
EMAIL_HOST_PASSWORD = '<your-app-password>' # Replace with your email app password
EMAIL_PORT = 587
EMAIL_USE_TLS = True
Generate App Password:
EMAIL_HOST_PASSWORD.Start the server with:
python manage.py runserver
Visit http://127.0.0.1:8000/.
To enable social login functionality, users need to configure API keys from Google and GitHub. Follow these steps:
Google OAuth Setup:
GitHub OAuth Setup:
http://127.0.0.1:8000/accounts/github/login/callback/ or your production domain.Admin Configuration:
Sites under the Sites section and create or update the site with the appropriate domain and site_id.site_id for the social account to match the one created under Sites.Settings Configuration:
You can access the live version of the application at: Live Demo Link
This project is for educational purposes only. Users may use the code for study and learning purposes but not for commercial use or redistribution.