Building an E-Learning Platform
In this chapter, you will start a new Django project. You will build an e-learning platform with your own content management system (CMS).
Online learning platforms are a great example of applications where you need to provide tools to generate content with flexibility in mind.
In this chapter, you will learn how to build the functionality for instructors to create courses and manage the contents of courses in a versatile and efficient manner.
In this chapter, you will learn how to:
- Create fixtures for your models
- Use model inheritance
- Create custom model fields
- Use class-based views and mixins
- Build formsets
- Manage groups and permissions
- Create a CMS
Setting up the e-learning project
Your final practical project will be an e-learning platform. First, create a virtual environment for your new project and activate it with the following commands:
mkdir env python3 -m venv env/educa source env/educa/bin/activate
Install Django in your virtual environment with the following command:
pip install "Django==3.0.*"
You are going to manage image uploads in your project, so you also need to install
Pillow with the following command:
pip install Pillow==7.0.0
Create a new project using the following command:
django-admin startproject educa
Enter the new
educa directory and create a new application using the following commands:
cd educa django-admin startapp courses
settings.py file of the
educa project and add
courses to the
INSTALLED_APPS setting, as follows:
INSTALLED_APPS = [ 'courses.apps.CoursesConfig', 'django.contrib.admin', 'django.contrib.auth', 'django.contrib.contenttypes', 'django.contrib.sessions', 'django.contrib.messages', 'django.contrib.staticfiles', ]
courses application is now active for the project. Let's define the models for courses and course contents.