This is my semester project for the software engineering course. Ilm Ghar is an online education platform committed to providing the underprivileged with education in their native languages. It allows users to explore and filter courses, register accounts, enroll in courses to access lecture notes, assignments, forums, and enables instructors to manage their courses and more.
The application is developed using the RESTful approach, with Django as the backend and Vue.js for the frontend.
Following are some screenshots from the application.










Clone the repository:
git clone https://github.com/SajeelHashmi/E-learning-Django
Navigate to the project folder:
cd E-learning-Django
Create a virtual environment:
python -m venv venv
Activate the virtual environment:
On Windows:
venv\Scripts\activate
On macOS/Linux:
source venv/bin/activate
Navigate to the IlmGhar directory:
cd IlmGhar
Install Python dependencies:
pip install -r requirements.txt
Apply migrations:
python manage.py migrate
Run the development server:
python manage.py runserver
The backend should now be running at http://localhost:8000/.
Navigate to the frontend folder:
cd frontend
Initialize npm (if not already done):
npm init
Follow the prompts to create a package.json file.
Install frontend dependencies:
npm install
Run the development server:
npm start
The frontend development server should now be running at http://localhost:3000/.
Create a superuser and use the Django admin area to register instructors and create courses with them. Each course will have some lectures, and every lecture will include a video, notes, and an assignment. We are using HLS to serve the lectures; currently, you need to manually create the HLS segments. After uploading a lecture, navigate to the media directory and run the following command:
ffmpeg -i lectureVideo.mp4 -c:v h264 -c:a aac -hls_time 10 -hls_list_size 0 lectureName_lectureId/output.m3u8
Remember to replace lectureVideo with the actual video name, lectureName with the lecture name, and lectureId with its ID.
Thank you.