CSC/ECE 517 Fall 2015/oss E1567 APT: Difference between revisions
Line 26: | Line 26: | ||
==About rspec== | ==About rspec== | ||
{{wide image|HScreen Shot 2015-10-31 at 15.37.18.png|1892px|alt=Panorama of city with mixture of five- to ten-story buildings|[[Helsinki]] has many buildings.}} | |||
==Test Cases== | ==Test Cases== | ||
===Test Case 1=== | ===Test Case 1=== | ||
===Test Case 2=== | ===Test Case 2=== | ||
===Test Case 3=== | ===Test Case 3=== |
Revision as of 20:02, 31 October 2015
Introduction to Expertiza
The Expertiza project is a web application to create reusable learning objects through peer review. It supports various features such as team projects, and the submission of various documents including URLs and wiki pages. It is being extensively used across various universities for select courses. The page describes the various changes and modifications done to improve the source code of the application. The changes were accompanied by unit/functional test cases written in RSPEC to affirm no breakage in code.
Project Description
Users Controller is one of the controllers in the Expertiza Rails Application. It is used for the basic CRUD operations - creating new users, updating the details for an existing users or deleting an existing user in the system. It is also used to determine the role of particular user in the system. The role could be one of the following - Administrator, Instructor, Student, Teaching Assistant, Super-Administrator or Unregistered User. The associated model class for interacting with the user table is the User model. It is also used for to verify the various access privileges for each user, import or export users.
Classes Involved
- users_controller.rb
- user.rb
- user_spec.rb
Modifications/Refactoring
Users_controller
The User_controller file was subject to code modifications and refactoring. The objective was to implement DRY code principles and reducing code complexity. The following were the suggested changes according to the Design document.
- 1. Initially, various functions were calling the same redirect method to redirect to the same controller. This was inimical to the code reusage principle. Following the DRY code principle, instead of calling the same link, with the action and controller as arguments, a method(redirect_to_home) was created and called from the 3 different methods namely show, index and key.