https://github.com/infectedduck/edumanage
Django-based web app for managing online courses, user registrations, and exam submissions. Features include course management, user authentication, enrollment tracking, and dynamic exam handling. Part of the IBM Backend course
https://github.com/infectedduck/edumanage
Last synced: 2 months ago
JSON representation
Django-based web app for managing online courses, user registrations, and exam submissions. Features include course management, user authentication, enrollment tracking, and dynamic exam handling. Part of the IBM Backend course
- Host: GitHub
- URL: https://github.com/infectedduck/edumanage
- Owner: InfectedDuck
- License: apache-2.0
- Created: 2024-09-01T03:37:59.000Z (almost 2 years ago)
- Default Branch: main
- Last Pushed: 2024-09-14T00:06:07.000Z (almost 2 years ago)
- Last Synced: 2025-01-16T00:37:29.319Z (over 1 year ago)
- Language: JavaScript
- Homepage:
- Size: 1.03 MB
- Stars: 0
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# Online Course Management System
A Django-based web application designed for managing online courses, user registrations, and exam submissions. This project showcases robust backend development, user authentication, and dynamic content handling using Django.
## Features
- **User Authentication**: Register, log in, and log out users with session management.
- **Course Management**: Browse courses, view detailed information, and enroll in courses.
- **Enrollment Tracking**: Track user enrollments and manage course participation.
- **Exam Submissions**: Submit exam answers and view results with grading.
- **Dynamic Content**: Manage course content, questions, and user data using Django's ORM.
## Key Features
- **Full CRUD Operations**: Create, Read, Update, and Delete operations for courses, lessons, and enrollments.
- **User Roles**: Differentiates between instructors and learners with specific attributes and roles.
- **Course Enrollment**: Manage enrollments with support for various course modes (Audit, Honor, Beta).
- **Automated Testing**: Ensure robust functionality with Django's built-in testing framework.
- **Dynamic Exam Handling**: Submit answers and get results based on user submissions.
## Tech Stack
- **Django**: Web framework for developing the application.
- **SQLite**: Default database for storing course and user data.
- **Bootstrap**: Frontend framework for responsive design.
- **Logging**: Integrated logging for tracking errors and application events.
## Models
- **Instructor**: Represents course instructors with attributes such as user, full-time status, and total learners.
- **Learner**: Represents course learners with attributes like occupation and social link.
- **Course**: Represents courses with attributes like name, description, image, and instructors.
- **Lesson**: Represents lessons within a course.
- **Enrollment**: Tracks user enrollments in courses with attributes like enrollment date, mode, and rating.
- **Question**: Represents exam questions with associated grades.
- **Choice**: Represents choices for questions with correct/incorrect status.
- **Submission**: Tracks user submissions with chosen answers.
## Views
- **CourseListView**: Displays a list of courses with enrollment status.
- **CourseDetailView**: Shows detailed information about a specific course.
- **Enroll**: Handles course enrollment for authenticated users.
- **Submit**: Manages exam submissions and redirects to result view.
- **Show Exam Result**: Displays the results of an exam submission.
## URLs
- `/`: Home page with a list of courses.
- `/registration/`: User registration page.
- `/login/`: User login page.
- `/logout/`: User logout.
- `/course//`: Course detail page.
- `/course//enroll/`: Enroll in a course.
- `/course//submit/`: Submit exam answers.
- `/course//submission//result/`: View exam results.
# **General Notes**
An `onlinecourse` app has already been provided in this repo upon which you will be adding a new assesement feature.
- If you want to develop the final project on Theia hosted by [IBM Developer Skills Network](https://labs.cognitiveclass.ai/), you will need to create the same project structure on Theia workspace and save it everytime you close the browser
- Or you could develop the final project locally by setting up your own Python runtime and IDE
- Hints for the final project are left on source code files
- You may choose any cloud platform for deployment (default is IBM Cloud Foundry)
- Depends on your deployment, you may choose any SQL database Django supported such as SQLite3, PostgreSQL, and MySQL (default is SQLite3)
**ER Diagram**
For your reference, we have prepared the ER diagram design for the new assesement feature.

## License
This project is licensed under the Apache License 2.0. See the [LICENSE](LICENSE) file for details.
This project is made as a part of IBM Course.