CSC/ECE 517 Spring 2016 E1629 Performance improvement for Course & Assignment Listing: Difference between revisions

From Expertiza_Wiki
Jump to navigation Jump to search
Line 14: Line 14:


== Design of Solution ==
== Design of Solution ==
Task1: "Include others' items" checkbox is checked by default on Courses and Assignments manage contents page. At first it might seem that the design solution to improve latency is to uncheck this checkbox by default on page load. However, it's not the hard coded value of this checkbox that leads to latency of the page load. We need to further investigate what causes this latency.
On course tab, load assignment (children) nodes only when user expands the course listing.
Task 2:
List logged in user’s courses and others’ public courses in two different sections.One section for each type. Section listing others’ public courses should be displayed only when user selects the checkbox “include others’ items”.
Similarly display logged in user’s assignments and others’ public assignments in two different sections. Section listing public assignments should be displayed only when user selects the checkbox “include others’ items”.

Revision as of 02:04, 5 April 2016

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

Task1: "Include others' items" checkbox is checked by default on Courses and Assignments manage contents page. At first it might seem that the design solution to improve latency is to uncheck this checkbox by default on page load. However, it's not the hard coded value of this checkbox that leads to latency of the page load. We need to further investigate what causes this latency.

On course tab, load assignment (children) nodes only when user expands the course listing. Task 2:

List logged in user’s courses and others’ public courses in two different sections.One section for each type. Section listing others’ public courses should be displayed only when user selects the checkbox “include others’ items”.


Similarly display logged in user’s assignments and others’ public assignments in two different sections. Section listing public assignments should be displayed only when user selects the checkbox “include others’ items”.