CSC/ECE 517 Spring 2017/Convert Assignment Creation Form to ReactJS

From Expertiza_Wiki
Revision as of 02:14, 7 April 2017 by Vhegde (talk | contribs) (Problem statement updated)
Jump to navigation Jump to search

Introduction

This page is a part of CSC/ECE 517 Final Project for Spring 2017 to describe the changes made by us to the open source software project Expertiza. We are converting the assignment creation form to ReactJS. Following contains a brief introduction to Expertiza, ReactJS followed by the problems we are tackling, our strategy for the implementation and the test plan.

Expertiza

Expertiza is a Ruby on Rails based web application where students can submit and peer review learning objects such as codes, articles, websites etc., It is an open source software project funded by National Science Foundation(NSF). The instructor has the capability to create assignments with varied specifications such as topics, courses, team size, level of reviews etc., later review the submitted work and provide feedback. Students can enter their submissions and also review others' work.

ReactJS

ReactJS is the javascript framework developed by Facebook to solve the specific problem, UI rendering. It is developed to solve the problem with complex binding in MVC framework using only one-way data binding. It is used for dynamic reloading of the page. It helps in reloading only the particular component required using Virtual DOM, which makes it fast by temporarily storing DOM

Reasons for using ReactJS

  • It has every functionality that an user interface required
  • Easy data binding.
  • Only single component changes are stored/changed without reloading the complete page.
  • Fast and efficient
  • Easy to scale

Pros

Problem Statement

The Assignment Create and Edit Form are multi level forms. It consists of multiple inputs and user interactions. Many input types have dependency on interactions by the user. For example, on check for a particular checkbox, remaining form is displayed. The task is to convert this form into ReactJS component.

Tasks to be done

  • Organize the form layout, create several mockups and validate them to your users
  • Make the table in topics tab sortable by its header
  • Allow users to edit / add topics in the table instead of loading a new page
  • Implement the new layout and convert the javascript to a ReactJS component
  • Validate user entries
  • Fix tooltips that don’t work

Current Implementation

Proposed Solution

Test Plan

Future Work

References