CSC/ECE 517 Fall 2016/E1662. UI issues/fixes: Difference between revisions

From Expertiza_Wiki
Jump to navigation Jump to search
No edit summary
Line 27: Line 27:
* Ensure that relationship exists between Course and Institution model classes.
* Ensure that relationship exists between Course and Institution model classes.
<pre>
<pre>
# Establishing relationship between Course and Institution
class Institution < ActiveRecord::Base
  has_many :courses, dependent: :destroy
end
class Course < ActiveRecord::Base
  belongs_to :institution, class_name: 'Institution', foreign_key: 'instituition_id'
end
</pre>
* Add a dropdown list in Course creation form so that user can select institution from the available options.
<pre>
<!--Adding a field so that user can select institution from the list-->
<p><label for="course_institutions_id">Institution Name</label><br/>
<p><label for="course_institutions_id">Institution Name</label><br/>
   <%= select_tag :'institutions_id', options_from_collection_for_select(Institution.where.not(:name=>nil), 'id', 'name'), :include_blank => "Please select...",:required=>true %>
   <%= select_tag :'institutions_id', options_from_collection_for_select(Institution.where.not(:name=>nil), 'id', 'name'), :include_blank => "Please select...",:required=>true %>
Line 32: Line 46:
</pre>
</pre>


* Add a dropdown list in Course creation form so that user can select institution from the available options.
* Ensure that the id for the selected institution is sent as a parameter along with other parameters back to controller.
* Ensure that the id for the selected institution is sent as a parameter along with other parameters back to controller.
* Once we receive all the data in controller Institution id should be saved in course table.
* Once we receive all the data in controller Institution id should be saved in course table.
   
<pre>
  @course = Course.new(name: params[:course][:name], directory_path: params[:course][:directory_path], info: params[:course][:info], institutions_id: params[:institutions_id], private: params[:course][:private])
</pre>
 
=== Functional Tests Implementation ===
=== Functional Tests Implementation ===



Revision as of 00:54, 29 October 2016

UI Issues/Fixes

Background

Expertiza is an open source web application developed by students and faculty members of North Carolina State University. This portal is being used by both faculty members and students in order to carry out assignments. Typically following is the workflow of the system:

  • Faculty member adds students to a particular course. He also adds an assignment for the class.
  • Assignment has a specific deadline, review period and final submission.
  • Faculty members upload list of topics for the assignment.
  • Students have to bid for the topic or they can suggest their own topic.
  • At the end of the bidding process, students get a specific topic for the assignment.
  • Students can form the teams by sending out invitations to other students.
  • Students start working on the assignment and submit the assignment work before the initial submission date.
  • Every student then gets to review work submitted by at least one team. Student submit their feedback in the review.
  • Students then make the necessary changes as suggested by reviewer and submit the assignment before the final submission date.
  • Students are graded on the basis of their work and reviews.

Objective

The main objective this project is to fix the issues in the current system. The current system has following issues:

  • Historically courses were created without providing Institution ID. However now since data warehousing is storing Institution Id for a particular course hence even this application should do that.
  • If an assignment is completed, no one can sign up for topics or drop topics. Yet a completely blank "Actions" column on the signup sheet still appears. It would be better if the column did not appear.
  • Currently when admin/instructor tries to delete an assignment, there is no alert/confirmation shown. This is risky. We need to add a confirmation step to avoid losing data.

Issue#702

Capturing Institution ID

Institution and Course has One-to-Many relationship wherein one institution may have many courses associated with it. In current system while creating new course user does not have any provision of selecting Institution. Hence we need to fix this issue. Following basic changes are required in order to fix this issue.

  • Ensure that relationship exists between Course and Institution model classes.
# Establishing relationship between Course and Institution
class Institution < ActiveRecord::Base
  has_many :courses, dependent: :destroy
end

class Course < ActiveRecord::Base
  belongs_to :institution, class_name: 'Institution', foreign_key: 'instituition_id'
end
  • Add a dropdown list in Course creation form so that user can select institution from the available options.
<!--Adding a field so that user can select institution from the list-->
<p><label for="course_institutions_id">Institution Name</label><br/>
  <%= select_tag :'institutions_id', options_from_collection_for_select(Institution.where.not(:name=>nil), 'id', 'name'), :include_blank => "Please select...",:required=>true %>
</p>
  • Ensure that the id for the selected institution is sent as a parameter along with other parameters back to controller.
  • Once we receive all the data in controller Institution id should be saved in course table.
 @course = Course.new(name: params[:course][:name], directory_path: params[:course][:directory_path], info: params[:course][:info], institutions_id: params[:institutions_id], private: params[:course][:private])

Functional Tests Implementation

Running the tests

The tests can be run on the terminal using the command:

 rspec specfile.rb

Whether the test fails or succeeds, allows us to determine which parts of the system are functioning properly.

External Links

  1. link for forked repository
  2. Github link for original repository
  3. Github link for Capybara