Skip to content

Edulearn is an educational web application built with Django that allows users to create, manage, and browse online courses. It includes features for adding course details such as title, description, duration, and thumbnail. The platform is designed for both instructors (to upload courses) and learners (to explore and enroll).

Notifications You must be signed in to change notification settings

SHAHSULTANS/Edulearn

Repository files navigation

# Edulearn - Online Learning Platform

**Edulearn** is a full-featured online learning platform inspired by Udemy and Coursera. It allows instructors to create courses, manage lessons and sections, accept payments, and lets students enroll, learn, and review courses. Built with **Django**, it provides a robust, scalable, and secure backend.

---

## **Table of Contents**

1. [Project Overview](#project-overview)
2. [Features](#features)
3. [Tech Stack](#tech-stack)
4. [Setup Instructions](#setup-instructions)
5. [Project Structure](#project-structure)
6. [URL Routing and Endpoints](#url-routing-and-endpoints)
7. [Modules](#modules)
   - Users
   - Courses
   - Payments
   - Reviews
8. [Contributing](#contributing)
9. [License](#license)

---

## **Project Overview**

Edulearn is an online course management system where:

- **Students** can browse courses, enroll, complete lessons, and leave reviews.
- **Instructors** can create courses, add sections and lessons, and track student progress.
- **Admins** can manage users, courses, payments, and reviews.
- Integrated **Stripe payments** allow secure course checkout.

---

## **Features**

- User registration, login, logout, and password reset.
- Instructor dashboard for course creation and management.
- Course sections and lessons with CRUD functionality.
- Public and private course views.
- Student enrollment and learning progress tracking.
- Review system for courses.
- Stripe integration for payments.
- Admin panel for managing users, courses, and payments.
- Privacy, Terms of Service, and Cookie Policy pages.

---

## **Tech Stack**

- Python 3.x
- Django 5.x
- PostgreSQL / SQLite
- Stripe (for payments)
- HTML, CSS, JavaScript (Frontend templates)

---

## **Setup Instructions**

1. Clone the repository:

```bash
git clone https://github.com/yourusername/edulearn.git
cd edulearn
```
  1. Create and activate a virtual environment:
python -m venv venv
source venv/bin/activate  # Linux/macOS
venv\Scripts\activate     # Windows
  1. Install dependencies:
pip install -r requirements.txt
  1. Set up environment variables in .env file:
SECRET_KEY=your_django_secret_key
DEBUG=True
DATABASE_URL=postgres://user:password@localhost:5432/edulearn
STRIPE_SECRET_KEY=your_stripe_secret
STRIPE_PUBLIC_KEY=your_stripe_public_key
  1. Apply migrations:
python manage.py migrate
  1. Create a superuser:
python manage.py createsuperuser
  1. Run the development server:
python manage.py runserver

Access the project at http://127.0.0.1:8000/.


Project Structure

edulearn/
│
├── edulearn/               # Project settings
├── users/                  # User management (auth, profile)
├── courses/                # Course management (sections, lessons)
├── payments/               # Stripe integration and booking
├── reviews/                # Course reviews
├── templates/              # HTML templates
├── static/                 # CSS, JS, images
└── manage.py

URL Routing and Endpoints

Home & Users

URL Method Purpose
/ GET Home dashboard
/user/login/ GET/POST User login
/user/logout/ GET/POST Logout user
/user/register/ GET/POST User registration
/user/terms/ GET Terms of service
/user/privacy/ GET Privacy policy
/user/cookie-policy/ GET Cookie policy
/user/password-reset/ GET/POST Password reset workflow

Courses

URL Method Purpose
/courses/instructor-dashboard/ GET Instructor dashboard
/courses/create/ GET/POST Create course
/courses/course/<id>/ GET Course detail (instructor)
/courses/pcourse/<id>/ GET Public course detail
/courses/learning/<id>/ GET Course learning page
/courses/course/<id>/edit/ GET/PATCH Edit course
/courses/course/<id>/manage/ GET Manage course (sections/lessons)
/courses/course/<course_id>/section/create/ GET/POST Create section
/courses/course/<course_id>/section/<id>/edit/ PATCH Edit section
/courses/course/<course_id>/section/<id>/delete/ DELETE Delete section
/courses/course/<course_id>/section/<section_id>/lesson/create/ POST Create lesson
/courses/course/<course_id>/section/<section_id>/lesson/<id>/edit/ PATCH Edit lesson
/courses/course/<course_id>/section/<section_id>/lesson/<id>/delete/ DELETE Delete lesson

Payments

URL Method Purpose
/payments/checkout/<id>/ POST Create Stripe checkout session
/payments/success/<id>/ GET Payment success page
/payments/cancel/<id>/ GET Payment cancel page

Reviews

URL Method Purpose
/reviews/course/<course_id>/review/create/ POST Create course review

Modules Overview

Users Module

  • Registration, login/logout, password reset
  • Profile management
  • Terms, privacy, cookie policies

Courses Module

  • Instructor can create, edit, and manage courses, sections, and lessons
  • Public and private course views
  • Learning progress for students

Payments Module

  • Stripe integration for secure course payments
  • Payment success/cancel handling

Reviews Module

  • Students can create reviews for courses
  • Optional edit/delete features for reviews

Contributing

  • Fork the repository
  • Create a new branch: git checkout -b feature/your-feature
  • Commit changes: git commit -m "Add some feature"
  • Push to branch: git push origin feature/your-feature
  • Open a Pull Request

License

MIT License © 2025 Your Name


Notes

  • Ensure DEBUG=False in production
  • Set proper Stripe webhook endpoint for live payments
  • Use PostgreSQL or MySQL for production database

This README.md provides a complete, professional documentation for developers or QA to understand Edulearn and its routing, modules, and workflows.


About

Edulearn is an educational web application built with Django that allows users to create, manage, and browse online courses. It includes features for adding course details such as title, description, duration, and thumbnail. The platform is designed for both instructors (to upload courses) and learners (to explore and enroll).

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published