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.
- 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).
- 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.
- Add new students & manage existing ones.
- View individual student details.
- Delete or update student information.
- Bootstrap-based responsive UI.
- Django Messages Framework for alerts.
- Custom forms with validation.
- Admin Panel Access for superusers.
- 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
git clone https://github.com/yourusername/Edu_Learn_Django_CURD_Project.git
cd Edu_Learn_Django_CURD_Projectsource .venv/bin/activate # Mac/Linux
(For Windows, use: venv\Scripts\activate)pip install -r requirements.txt
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-keypython manage.py makemigrations
python manage.py migrate
python manage.py createsuperuser
(Follow the prompts to create an admin user.)
python manage.py runserver
Then open http://127.0.0.1:8000/ in your browser.
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
| 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 |
- Enable 2-Step Verification on your Google Account.
- Generate an App Password from Google:
- Go to π Google App Passwords
- Select βMailβ and βOtherβ (Custom name).
- Copy the generated password.
- Add it to your .env file:
EMAIL_HOST_USER=your-email@gmail.com
EMAIL_HOST_PASSWORD=your-app-passwordRole -> Permissions
Admin -> Can add, edit, delete courses, lessons, and students
Student -> Can only view enrolled courses and lessonsπΉ Home Page
πΉ Course Management
πΉ User Registration & Login
πΉ Password Reset
-
Fork the repo.
-
Clone it to your local machine.
-
Create a new branch:
git checkout -b feature-name -
Make your changes and commit:
git commit -m "Added new feature" -
Push to your branch:
git push origin feature-name -
Submit a Pull Request.
This project is licensed under the MIT License.
- π€ Abdullah Nazmus-Sakib
- π§ Email: your-email@example.com
- π Website: yourwebsite.com
- π GitHub: AbdullahRFA