Skip to content

A **course management system** built with **Django** that allows users to manage courses, lessons, and student enrollments. The system includes user authentication, password reset functionality via email (OTP-based), and role-based access control.

Notifications You must be signed in to change notification settings

AbdullahRFA/Edu_Learn_Django_CURD_Project

Repository files navigation

Edu Learn - Django CRUD Project πŸ«πŸ“š

A course management system built with Django that allows users to manage courses, lessons, and student enrollments. The system includes user authentication, password reset functionality via email (OTP-based), and role-based access control.


πŸ“Œ Features

1️⃣ Authentication & Authorization

  • User registration, login, and logout functionality.
  • Password change and reset using OTP verification via email.
  • Role-based access control (Admin & Student).
  • Profile management (Update user information).

2️⃣ Course & Lesson Management

  • CRUD operations for courses and lessons.
  • Course descriptions, thumbnails, and durations.
  • Enroll students in courses.
  • View students enrolled in a specific course.
  • View lessons under a course.

3️⃣ Student Management

  • Add new students & manage existing ones.
  • View individual student details.
  • Delete or update student information.

4️⃣ Additional Functionalities

  • Bootstrap-based responsive UI.
  • Django Messages Framework for alerts.
  • Custom forms with validation.
  • Admin Panel Access for superusers.

πŸ› οΈ Technologies Used

  • Backend: Django (Python)
  • Frontend: HTML, CSS, Bootstrap
  • Database: SQLite (can be configured to PostgreSQL/MySQL)
  • Authentication: Django Authentication System
  • Email Service: SMTP (Google App Password for OTP)
  • UI Components: Bootstrap 5, FontAwesome Icons

πŸš€ Installation & Setup

πŸ”Ή Step 1: Clone the Repository

git clone https://github.com/yourusername/Edu_Learn_Django_CURD_Project.git
cd Edu_Learn_Django_CURD_Project

πŸ”Ή Step 2: Create & Activate Virtual Environment

source .venv/bin/activate   # Mac/Linux

(For Windows, use: venv\Scripts\activate)

πŸ”Ή Step 3: Install Dependencies

pip install -r requirements.txt

πŸ”Ή Step 4: Configure Environment Variables

Create a .env file in the project root directory and add:
EMAIL_HOST_USER=your-email@gmail.com
EMAIL_HOST_PASSWORD=your-app-password
SECRET_KEY=your-django-secret-key

πŸ”Ή Step 5: Apply Migrations & Create Superuser

python manage.py makemigrations
python manage.py migrate
python manage.py createsuperuser

(Follow the prompts to create an admin user.)

πŸ”Ή Step 6: Run the Server

python manage.py runserver

Then open http://127.0.0.1:8000/ in your browser.


πŸ“‚ Project Structure

Edu_Learn_Django_CURD_Project/
│── Course_app/
β”‚   β”œβ”€β”€ migrations/
β”‚   β”œβ”€β”€ static/
β”‚   β”œβ”€β”€ templates/Course_app/
β”‚   β”‚   β”œβ”€β”€ base.html
β”‚   β”‚   β”œβ”€β”€ course_list.html
β”‚   β”‚   β”œβ”€β”€ course_details.html
β”‚   β”‚   β”œβ”€β”€ student_list.html
β”‚   β”‚   β”œβ”€β”€ lesson_list.html
β”‚   β”‚   β”œβ”€β”€ user_profile.html
β”‚   β”‚   β”œβ”€β”€ change_password.html
β”‚   β”‚   β”œβ”€β”€ forgot_password.html
β”‚   β”‚   β”œβ”€β”€ password_change_complete.html
β”‚   β”œβ”€β”€ forms.py
β”‚   β”œβ”€β”€ models.py
β”‚   β”œβ”€β”€ views.py
β”‚   β”œβ”€β”€ urls.py
│── EduLearn/
β”‚   β”œβ”€β”€ settings.py
β”‚   β”œβ”€β”€ urls.py
β”‚   β”œβ”€β”€ wsgi.py
│── .env
│── .gitignore
│── manage.py
│── README.md
│── requirements.txt

πŸ“Œ API Endpoints & URLs

Feature URL Method
User Registration /register_user/ POST
Login /login_user/ POST
Logout /logout_user/ GET
Change Password /change_password/ POST
Forgot Password /forgot_password/ POST
Reset Password /reset_password/ POST
Courses List /course_list/ GET
Create Course /create_course/ POST
Edit Course /course_edit/<id>/ POST
Delete Course /course_delete/<id>/ POST
Create Lesson /create_lesson/ POST
Edit Lesson /lesson_edit/<id>/ POST
Delete Lesson /lesson_delete/<id>/ POST
Enroll Student /Enroll_student/ POST
View Student /student_list/ GET
Update Student /update_student/<id>/ POST
Delete Student /delete_student/<id>/ POST
User Profile /user_profile/ GET
Update Profile /update_profile/ POST

πŸ“§ Email Setup (SMTP for OTP)

  1. Enable 2-Step Verification on your Google Account.
  2. Generate an App Password from Google:
    • Go to πŸ‘‰ Google App Passwords
    • Select β€œMail” and β€œOther” (Custom name).
    • Copy the generated password.
  3. Add it to your .env file:
EMAIL_HOST_USER=your-email@gmail.com
EMAIL_HOST_PASSWORD=your-app-password

πŸ”’ Role-Based Access Control

Role -> Permissions
Admin -> Can add, edit, delete courses, lessons, and students
Student -> Can only view enrolled courses and lessons

πŸ“Έ Screenshots

πŸ”Ή Home Page

πŸ”Ή Course Management

πŸ”Ή User Registration & Login

πŸ”Ή Password Reset


πŸ“ Contributing

  1. Fork the repo.

  2. Clone it to your local machine.

  3. Create a new branch:

     git checkout -b feature-name
    
  4. Make your changes and commit:

     git commit -m "Added new feature"
    
  5. Push to your branch:

     git push origin feature-name
    
  6. Submit a Pull Request.


πŸ“„ License

This project is licensed under the MIT License.


πŸ’¬ Contact

  • πŸ‘€ Abdullah Nazmus-Sakib
  • πŸ“§ Email: your-email@example.com
  • 🌐 Website: yourwebsite.com
  • πŸ“Œ GitHub: AbdullahRFA

πŸš€ Happy Coding! πŸŽ‰

About

A **course management system** built with **Django** that allows users to manage courses, lessons, and student enrollments. The system includes user authentication, password reset functionality via email (OTP-based), and role-based access control.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published