A Django-based web application for managing online courses with user authentication, course enrollment, and an interactive exam/assessment system. Users can register, enroll in courses, take exams, and view their results with detailed feedback.
- User Authentication: Register, login, and logout functionality
- Course Management: Browse and enroll in available courses
- Lesson Content: View course lessons with detailed content
- Exam System: Take course exams with multiple-choice questions
- Results & Feedback: View exam scores with correct/incorrect answer breakdown
- Responsive Design: Bootstrap-based UI for desktop and mobile
- Backend: Python, Django
- Frontend: HTML, CSS, JavaScript, Bootstrap
- Database: SQLite3 (default), PostgreSQL, or MySQL
- Deployment: Render
tfjzl-final-cloud-app-with-database/
├── myproject/
│ ├── settings.py # Django project settings
│ ├── urls.py # URL routing
│ └── wsgi.py # WSGI configuration
├── onlinecourse/
│ ├── models.py # Database models (Course, Lesson, Question, Choice, etc.)
│ ├── views.py # View logic for all pages
│ ├── urls.py # App-specific URL routing
│ ├── admin.py # Admin panel configuration
│ └── templates/ # HTML templates
├── static/ # Static files (CSS, JS, images)
├── manage.py # Django management script
├── requirements.txt # Python dependencies
├── Procfile # Deployment configuration
├── manifest.yml # IBM Cloud Foundry manifest
├── runtime.txt # Python runtime version
└── README.md
The application uses the following entity relationships:
| Entity | Description |
|---|---|
| Course | Online course with name, description, and image |
| Lesson | Individual lessons belonging to a course |
| Instructor | Course instructors with user association |
| Learner | Students enrolled in courses |
| Question | Exam questions linked to a course |
| Choice | Answer choices for each question (with correct flag) |
| Submission | Student exam submissions tracking selected choices |
-
Clone the repository
git clone https://github.com/ajitagupta/tfjzl-final-cloud-app-with-database.git cd tfjzl-final-cloud-app-with-database -
Create and activate a virtual environment
python -m venv venv source venv/bin/activate # On Windows: venv\Scripts\activate
-
Install dependencies
pip install -r requirements.txt
-
Run database migrations
python manage.py makemigrations python manage.py migrate
-
Create a superuser (for admin access)
python manage.py createsuperuser
-
Run the development server
python manage.py runserver
The application will be available at http://localhost:8000.
- Register a new account or login
- Browse available courses on the home page
- Enroll in a course
- View course lessons and content
- Take the course exam
- View your results with detailed feedback
- Access the admin panel at
/admin - Add/edit courses, lessons, and instructors
- Create exam questions with multiple choices
- Mark correct answers for each question
- View student enrollments and submissions
This project was developed as the final project for the IBM Full Stack Software Developer Professional Certificate on Coursera, specifically for the course on Django Application Development with SQL and Databases.
This project is licensed under the Apache License 2.0 - see the LICENSE file for details.
Ajita Gupta
- GitHub: @ajitagupta
- Website: ajitagupta.com
- IBM Developer Skills Network for the course template and guidance
- Django Software Foundation for the web framework
