CSC/ECE 517 Spring 2016 E1629 Performance improvement for Course & Assignment Listing

From Expertiza_Wiki
Jump to navigation Jump to search

Purpose

The purpose of this project is to improve the performance of the Course and Assignment listing page. When an instructor or TA logs in to the system they are redirected to the course/assignment/questionnaire list page. This page lists all the courses that are created by the logged in user and the public courses that are created by other users. In the current implementation the page takes a long time to load. The purpose of this project is to improve the performance of this functionality so that it takes lesser time to display the relevant data.

Problem Statement

On the course/assignment listing page there exists a check-box which allows the user to select whether or not to display public projects. By default this option is selected and as a result all public and private courses created by the logged in user are displayed. Similarly for the assignments page all the public as well as private assignments created by the user are loaded. As a result the page takes a long time to load. The project is concerned with coming up with solutions so that the page is loaded in a quicker manner. The individual work items identified are as follows:

  • Include others' items check-box should be unchecked by default for both courses and assignments page.
  • Current implementation of the courses tab loads all the assignments pertaining to all the courses(both private and public courses). This implementation needs to be modified such that the assignments for a course are loaded only when a particular course is clicked.
  • List the courses in two different sections. One section should be to list all the courses that are created by the user. The other section should be to display all the public courses. This section should be displayed only if the check-box is selected.
  • Similarly the assignments tab should be divided into two sections. The first section should list all the assignments that are created by the user and the next should list all the public assignments.

Overview of Approach

The page loads the details of the courses and assignments related to all the courses during the page load. But the assignment details are hidden are not shown for each course. They are shown only when a user clicks on a assignment. We can improve the speed of the page load by postponing the loading of assignments till the user clicks on a course. This will involve making an asynchronous call to the server and fetching the assignment details when a clicks on the course. We will also not load the public courses by default and give an option to load them in case a user needs to. The list of courses will be divided into two sections for user courses and private courses. Same will be applicable for assignments also.

Design of Solution