Homework 6 (JavaScript)
Due Apr 16, total of 100 points
Description
In this assignment, you will enhance the interactivity and user experience of your grading application by implementing client-side JavaScript features:
- Create asynchronous forms for seamless data submission
- Develop a grade projection widget for students to estimate their final grade
- Use modern JavaScript practices including ES6+ syntax and Promises/async-await
Your tasks include:
- Asynchronous Forms:
- Convert existing forms (e.g., assignment submission, grading) to use AJAX
- Implement real-time form validation
- Display loading indicators and success/error messages without page reloads
- Use the Fetch API for making HTTP requests
- Grade Projection Widget:
- Create an interactive widget allowing students to input hypothetical grades for future assignments
- Calculate a projected final grade based on current grades and user input
- General JavaScript Enhancements:
- Implement dynamic sorting and filtering of assignment lists
Requirements:
- Use the jQuery library for DOM manipulation and AJAX requests
- Implement error handling for all asynchronous operations
- Ensure your JavaScript works across modern browsers (Chrome, Firefox, Safari, Edge)
Note: Remember to update your Django views to handle AJAX requests and return appropriate JSON responses.