E-learning-Django

Ilm Ghar

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.

Home

Home page

Explore

Explore page

Course

Course page

Forum

Course Forum

Careers

Careers page

Instructors Dashboard

Instructors Dashboard

Instructor course view

Instructors Course View

Students Dashboard

Students Dashboard

Registered Course

Registered Course

Lecture

Lecture

Backend Setup

  1. Clone the repository:

     git clone https://github.com/SajeelHashmi/E-learning-Django
    
  2. Navigate to the project folder:

     cd E-learning-Django
    
  3. Create a virtual environment:

     python -m venv venv
    
  4. Activate the virtual environment:

    • On Windows:

        venv\Scripts\activate
      
    • On macOS/Linux:

        source venv/bin/activate
      
  5. Navigate to the IlmGhar directory:

     cd IlmGhar
    
  6. Install Python dependencies:

     pip install -r requirements.txt
    
  7. Apply migrations:

     python manage.py migrate
    
  8. Run the development server:

     python manage.py runserver
    

    The backend should now be running at http://localhost:8000/.

Frontend Setup

  1. Navigate to the frontend folder:

     cd frontend
    
  2. Initialize npm (if not already done):

     npm init
    

    Follow the prompts to create a package.json file.

  3. Install frontend dependencies:

     npm install
    
  4. Run the development server:

     npm start
    

    The frontend development server should now be running at http://localhost:3000/.

Important Note:

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.