CSC/ECE 517 Spring 2018- Project E1810: Show sample submissions and reviews: Difference between revisions

From Expertiza_Wiki
Jump to navigation Jump to search
Line 123: Line 123:
5. Make changes to  page student_task/view which would have link to sample submissions for each project.
5. Make changes to  page student_task/view which would have link to sample submissions for each project.
<pre>
<pre>
<li>
  <%= link_to "Sample Submissions", controller: 'sample_submissions', :action => 'index', :id => @assignment.id %>
    (View sample work submitted by other participants/teams)
</li>
</pre>
</pre>
6. Add drop down in assignments/edit/_general view.
6. Add drop down in assignments/edit/_general view.

Revision as of 01:01, 3 April 2018

Introduction

Expertiza is a web based open source peer reviewing tool developed and maintained by current and past students of North Carolina State University. Peer review is a great way for a student to learn how to approach a project and get ideas for their own projects. Currently, there is no way for a student to view another student's work, unless they are reviewing the other student's work.

Problem Statement

The objective of this project is to:

  1. Add a feature to allow teams to publish their work for other students to see.
  2. Add a feature for a student to view sample submissions for a given assignment:
    1. Made available by other students in the same assignment, available after deadline.
    2. Made available by instructor from sample submissions made in an old assignment.
  3. Add a feature for instructor to select a previous assignment to show sample submissions for a new assignment.

Proposed Design

The proposed features will involve two kinds of users : Students and Instructors. Students will use the application to make their submissions public and view published reviews.

Instructors will use the application to make submissions from a previous assignment available as sample submissions for a current assignment. Only those submissions will be visible which were previously made public by the students.

Project Tasks

The tasks that need to be completed as part of this project can be listed as follows:

  1. Add checkbox against each assignment in student_tasks/list view to allow student to publish their work
  2. Add column make_public to table teams for storing user permission (published or not) for each project.
  3. Add controller for Sample submissions and implement corresponding methods.
  4. Add views for sample submissions
  5. Make changes to page student_task/view which would have link to sample submissions for each project.
  6. Add drop down in assignments/edit/_general view.
  7. Add controller code for the drop down.
  8. Add column sample_assignment_id to table assignment.
  9. Add test scripts for all the functionality.

Current status of Development

All tasks mentioned in Project tasks are implemented.

Development so far

1. Add checkbox against each assignment in student_tasks/list view to allow student to publish their work

<% if !participant.team.nil? %>
    <td align=center>
        <input id="makeSubPublic" teamid="<%= participant.team.id %>" type="checkbox" onclick="publishConfirmation(this)" <% if participant.team.make_public %>checked<% end %>>
    </td>
<% end %>

2. Add column make_public to table teams for storing user permission (published or not) for each project.

class AddSampleAssignmentToAssignments < ActiveRecord::Migration
  def change
    add_column :assignments, :sample_assignment_id, :integer, index: true
    add_foreign_key :assignments, :assignments, column: :sample_assignment_id
  end
end

3. Add controller for Sample submissions and implement corresponding methods.

# To give permission for making a submission available to others
  def make_public
    @team = Team.find(params[:id])
    @team.make_public = params[:status]
    @team.save
    respond_to do |format|
      format.html { head :no_content }
    end
  end

4. Add views for sample submissions

<!-- View to display sample submissions to the student -->
<h2>Sample Submissions for <%= @assignment.name%>:</h2>
<br>
<!-- Displaying sample submissions by students of the current course -->
<h3>Submissions made public by peers:</h3>
<% if @assignment_due_date==nil or @assignment_due_date>Time.new() %>
    <br><i>Will be available once the assignment submission is completed</i>
<% elsif @assignment_teams==[] %>
    <br><i>No sample submissions from current assignment made public yet</i>
<% else %>
    <ul>
      <% @assignment_teams.each do |assignment_team| %>
          <% if assignment_team.hyperlinks != [] %>
              <li>
                <ul>
                  <h4>Team name : <%=assignment_team.name%></h4>
                  <% assignment_team.hyperlinks.each do |assignment_link| %>
                      <li><a href="<%=assignment_link%>"><%=assignment_link%></a></li>
                  <%end%>
                </ul>
              </li>
          <%end%>
      <% end%>
    </ul>
<% end %>
<br>
<hr/>
<br>

<!-- Displaying sample submissions from a previous assignment chosen by the instructor -->
<h3>Submissions made public by instructor:</h3>
<% if @assignment_teams_professor == [] %>
    <br><i>No sample submissions from previous assignments made available yet</i>
<% else %>
    <ul>
      <% @assignment_teams_professor.each do |assignment_team| %>
          <% if assignment_team.hyperlinks != [] %>
              <ul>
                <li>
                  <h4>Team name : <%=assignment_team.name%></h4>
                  <% assignment_team.hyperlinks.each do |assignment_link| %>
                    <li><a href="<%=assignment_link%>"><%=assignment_link%></a></li>
                <%end%>
                </li>
              </ul>
          <%end%>
      <% end%>
    </ul>
<% end %>
<br><br>

<a href="javascript:window.history.back()">Back</a>

5. Make changes to page student_task/view which would have link to sample submissions for each project.

<li>
  <%= link_to "Sample Submissions", controller: 'sample_submissions', :action => 'index', :id => @assignment.id %>
    (View sample work submitted by other participants/teams)
</li>

6. Add drop down in assignments/edit/_general view.


7. Add controller code for the drop down.


8. Add column sample_assignment_id to table assignment.


9. Add test scripts for all the functionality.


Tests

External Links

  1. link to forked repository [1]

References