A modern, scalable, and extensible web-based e-learning platform built with Django, Django REST Framework, Channels, and Docker. It supports course creation, student enrollment, real-time chat, and secure media handling—all containerized for seamless deployment.
-
Backend: Django 5.0.4, Django REST Framework
-
Async: Django Channels + Daphne + Redis
-
Database: PostgreSQL
-
Web Server: Nginx + uWSGI
-
Containerization: Docker & Docker Compose
- 🧑🏫 Instructor & student workflows
- 🧵 Real-time chat using Django Channels + Redis
- 🎓 Course creation, enrollment, and progress tracking
- 🖼️ Media uploads and secure content access
- 🧱 Modular Django apps (courses, students, chat)
- 🐳 Full Dockerized setup with Nginx, PostgreSQL, Redis
- ⚙️ ASGI + Daphne for async support
| Component | Details | |
|---|---|---|
| ⚙️ | Architecture |
|
| 🔩 | Code Quality |
|
| 🔌 | Integrations |
|
| 🧩 | Modularity |
|
| ⚡️ | Performance |
|
| 🛡️ | Security |
|
| 📦 | Dependencies |
|
| 🚀 | Scalability |
|
└── e-learning-platform/
├── Dockerfile
├── config
│ ├── nginx
│ └── uwsgi
├── data
│ ├── cache
│ └── db
├── docker-compose.yml
├── educa
│ ├── api_examples
│ ├── chat
│ ├── courses
│ ├── educa
│ ├── manage.py
│ ├── media
│ ├── ssl
│ ├── static
│ └── students
├── requirements.txt
└── wait-for-it.sh- Docker & Docker Compose
- Python 3.11+ (for local dev without containers)
Build e-learning-platform from the source and intsall dependencies:
-
Clone the repository:
❯ git clone https://github.com/eazariDev/e-learning-platform
-
Navigate to the project directory:
❯ cd e-learning-platform -
Build and run containers:
❯ docker-compose up --build
Visit http://localhost:8000 to start exploring the platform.
- 💬 Join the Discussions: Share your insights, provide feedback, or ask questions.
- 🐛 Report Issues: Submit bugs found or log feature requests for the
e-learning-platformproject. - 💡 Submit Pull Requests: Review open PRs, and submit your own PRs.
Contributing Guidelines
- Fork the Repository: Start by forking the project repository to your github account.
- Clone Locally: Clone the forked repository to your local machine using a git client.
git clone https://github.com/eazariDev/e-learning-platform
- Create a New Branch: Always work on a new branch, giving it a descriptive name.
git checkout -b new-feature-x
- Make Your Changes: Develop and test your changes locally.
- Commit Your Changes: Commit with a clear message describing your updates.
git commit -m 'Implemented new feature x.' - Push to github: Push the changes to your forked repository.
git push origin new-feature-x
- Submit a Pull Request: Create a PR against the original project repository. Clearly describe the changes and their motivations.
- Review: Once your PR is reviewed and approved, it will be merged into the main branch. Congratulations on your contribution!
