CSC/ECE 517 Fall 2015/oss E1565 AAJ: Difference between revisions

From Expertiza_Wiki
Jump to navigation Jump to search
No edit summary
Line 9: Line 9:




==Project Description==
==Problem Statement==
===Part A===
<p>'''Files involved'''</p>
<p>'''Files Involved: '''admin_controller and views in app/views/admin folder</p>
<pre>
<p>'''What it does: ''' Defines the changes that can be done on other types of user by super-admin and provides the view accordingly. Those functionalities can be found from UI when super-admin logs in and clicks on "Administration -> Show". Then they can see a list of super-admin, admin and instructors based on the selection. At the bottom of the list there is a feature to add new administrators, but it is broken.</p>
admin_controller.rb
<p>'''What is wrong with it: '''The adding new admin functionality is broken and has to be fixed in a clean way. It should have the same view as that of user creation page.</p>
views in app/views/admin folder
<p>'''What needs to be done: '''</p>
user_controller</pre>
* Remove the text filed for adding new super-admin/admin/instructor and leave only the button on the UI
* When the button is clicked, redirect it to the new user creation view, and make the role (super-admin/admin/instructor) selected as default.
* Make sure that new user creation works for super-admin/admin/instructor. Write a test case to test it.


===Part B===
<p>'''What they do: '''</p>
'''Files involved:''' users_controller.
The admin controller defines the changes that can be done on other types of users by super-admin and provides the view accordingly.  


'''What’s wrong with it:''' In expertiza there is an institution table. But it does not associate the users with institutions.
<p>'''What needs to be done: ''' </p>
* The text field for adding a new admin/instructor has to be removed, leaving only the button.
* When the button is clicked, it should be redirected to new user creation view making the role (super-admin, admin or instructor) selected as default.
* Make sure that user creation works for super-admin/admin/instructor.
* Associate the users with the institution table
* Add a drop down to the view of creating users so that new account creator can select the institute and save it.  


'''What needs to be done: '''
* Do a db migration, create a “institution_id” column in users table.
* Add a drop down to the view for creating users. The new account creator can select the institution from that drop down.
* Write test cases and make sure that the institutions can be selected and saved.


==Changes Made==
==Changes Made==

Revision as of 00:19, 1 November 2015

E1565: Refactoring Admin Controller and Course Controller

This page provides a description of the Expertiza based OSS project aimed at refactoring Admin Controller and Course Controller.

In order to run our code visit the link 152.46.16.123:3000 and use the following credentials - username: admin, password: admin.

Introduction to Expertiza

Expertiza is a web application where students can submit and peer-review learning objects (articles, code, web sites, etc). It is used in select courses at NC State and by professors at several other colleges and universities.


Problem Statement

Files involved

admin_controller.rb
views in app/views/admin folder
user_controller

What they do:

The admin controller defines the changes that can be done on other types of users by super-admin and provides the view accordingly.

What needs to be done:

  • The text field for adding a new admin/instructor has to be removed, leaving only the button.
  • When the button is clicked, it should be redirected to new user creation view making the role (super-admin, admin or instructor) selected as default.
  • Make sure that user creation works for super-admin/admin/instructor.
  • Associate the users with the institution table
  • Add a drop down to the view of creating users so that new account creator can select the institute and save it.


Changes Made

Part A

admin_controller.rb

Modified the methods add_administrator and create_administrator

Before Refactoring After Refactoring
  def add_administrator
    @user = User.new
  end
  def create_administrator
    save_administrator
  end
  def add_administrator
    @user = User.new
    redirect_to 'users#new'
  end
  def create_administrator
    save_administrator
    redirect_to "users#new"
  end