Skip to main content

A platform for creating and delivering learning materials via email within a Django application. It provides tools for content management, user role-based administration, and scheduler integration for automated content delivery.

Project description

Django Email Learning Logo

Django Email Learning

A Django package for creating email-based learning platforms with IMAP integration and React frontend components.

License Python Django Tests

⚠️ Early Development Notice

This project is currently in early development and is not yet ready for production use.

What is django-email-learning?

django-email-learning is an open-source Django app, currently under active development, designed to provide a complete email-based learning platform. It is inspired by the Darsnameh email-learning service, which unfortunately shut down in July 2017. This library aims to revive that concept and make it accessible to anyone who wants to launch a similar service.

Why an email learning platform?

An email learning platform is a type of e-learning system where course content is delivered directly to learners’ inboxes. Platform admins can create courses, lessons, and quizzes, and configure the timing rules that determine when each next lesson or quiz is sent.

The system exposes management commands and/or API endpoints that can be triggered by cron jobs or cloud schedulers to:

  • Track learner progress

  • Send lessons and quizzes via email

  • Handle automated transitions between course steps

Additionally, the platform can issue online completion certificates that learners can verify using a QR code.

Why use email for e-learning?

While modern e-learning platforms often rely heavily on video content and complex web interfaces, email remains a powerful and inclusive channel. Some of the reasons:

  • Low bandwidth requirement: Email works well in regions with slow or unstable internet.

  • High accessibility: No need to install apps or log into a portal—lessons arrive directly in the inbox.

  • Resilience to censorship: Emails are often less likely to be blocked than certain websites or platforms under restrictive governments.

  • Simplicity: Email is universal, familiar, and works on virtually any device.

Documentation

Comprehensive documentation is available at django-email-learning.readthedocs.io, including:

  • Installation Guide: Step-by-step setup instructions
  • Platform Management: Creating organizations, courses, and managing learners
  • Technical Reference: Management commands and configuration
  • Usage Examples: Real-world implementation scenarios

Installation

This is a Django app, so we assume you already have Django installed.

1. Install the Package

pip install django-email-learning

2. Add to INSTALLED_APPS

Add django_email_learning to your INSTALLED_APPS in the Django settings file:

INSTALLED_APPS = [
    ...
    'django_email_learning',
]

3. Configure Settings

Add the required configuration for the site base URL in your Django settings:

DJANGO_EMAIL_LEARNING = {
    "SITE_BASE_URL": "<YOUR_SITE_BASE_URL_STARTING_WITH_HTTP>"
}

4. Configure Media Files

This app uses Django's MEDIA files to save organization logos. Ensure your media settings are configured correctly. See the MEDIA_URL setting for details.

5. Run Migrations

python manage.py migrate

6. Add URLs

Include the app URLs in your main Django URLs configuration:

from django.urls import path, include
from django_email_learning import urls as email_learning_urls

urlpatterns = [
    ...
    path('your_preferred_path/', include(email_learning_urls, namespace='django_email_learning')),
]

The platform will be accessible at your_preferred_path/platform/.

Access Control Notes

  • Platform Access: You need to be logged in to access the /platform sub-URL, which is used for managing courses and viewing learner progress.

  • Current MVP Limitations: In the current MVP version, you can use the superuser account. Other staff users can access the platform only if they are programmatically assigned to an organization. The UI to assign members with different roles to organizations is not yet implemented, however, the access control for those roles is in place.

Usage

Content Delivery

This app uses the email backend defined in Django settings to deliver course content. Assuming you have active courses and enrollments, you need to schedule a job that runs the content delivery management command periodically (e.g., using cron or a cloud scheduler).

Execute the content delivery job using:

python manage.py deliver_contents

Contributing

We welcome contributions! Please read our Contributing Guide to learn about our development process, how to set up the development environment, and how to submit pull requests.

Sponsorship

Support our open-source work and community projects by sponsoring us through GitHub Sponsors or Open Collective. Depending on your sponsorship tier, we can feature your logo and link on the project’s README and documentation.

Sponsor us

License

This project is licensed under the BSD 3-Clause License - see the LICENSE file for details.

Project details


Release history Release notifications | RSS feed

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

django_email_learning-0.1.25.tar.gz (823.2 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

django_email_learning-0.1.25-py3-none-any.whl (872.8 kB view details)

Uploaded Python 3

File details

Details for the file django_email_learning-0.1.25.tar.gz.

File metadata

  • Download URL: django_email_learning-0.1.25.tar.gz
  • Upload date:
  • Size: 823.2 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: poetry/2.2.1 CPython/3.13.3 Linux/5.15.167.4-microsoft-standard-WSL2

File hashes

Hashes for django_email_learning-0.1.25.tar.gz
Algorithm Hash digest
SHA256 66e43be425e77d033898f5fcf5d3680d7e844bce6c85d88b26842f09f82adc72
MD5 b3a030368cafa1e5c0e0ebab891ab371
BLAKE2b-256 4ef984ec5419eede6c20d49e5f66e5b57f8db2365aae25f98a43bb7726b352e3

See more details on using hashes here.

File details

Details for the file django_email_learning-0.1.25-py3-none-any.whl.

File metadata

  • Download URL: django_email_learning-0.1.25-py3-none-any.whl
  • Upload date:
  • Size: 872.8 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: poetry/2.2.1 CPython/3.13.3 Linux/5.15.167.4-microsoft-standard-WSL2

File hashes

Hashes for django_email_learning-0.1.25-py3-none-any.whl
Algorithm Hash digest
SHA256 e752a966acee6fd5a71a52d79d222cc97046abb66d16c17e890af7d0586b04fc
MD5 399f0cf74c6c2396799829c0018fde6b
BLAKE2b-256 0872656d434d54940b4e6cb2185f9fccca2e16f7135aea21e2252ce7b2c5a8b0

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page