<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>https://wiki.expertiza.ncsu.edu/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Vsharma7</id>
	<title>Expertiza_Wiki - User contributions [en]</title>
	<link rel="self" type="application/atom+xml" href="https://wiki.expertiza.ncsu.edu/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Vsharma7"/>
	<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=Special:Contributions/Vsharma7"/>
	<updated>2026-07-18T03:52:47Z</updated>
	<subtitle>User contributions</subtitle>
	<generator>MediaWiki 1.41.0</generator>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=E2157._Fix_issues_related_to_deadlines_and_late_policies&amp;diff=140474</id>
		<title>E2157. Fix issues related to deadlines and late policies</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=E2157._Fix_issues_related_to_deadlines_and_late_policies&amp;diff=140474"/>
		<updated>2021-11-02T21:59:47Z</updated>

		<summary type="html">&lt;p&gt;Vsharma7: Updating test plan&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;__TOC__&lt;br /&gt;
&lt;br /&gt;
==Problem Description==&lt;br /&gt;
Expertiza can automatically deduct points if a student is late in performing some action (e.g., submitting or reviewing). This is implemented by defining a new “late policy” and applying it to the assignment. Late policies are managed on the Due dates tab of assignment creation (or editing). The team found some issues in the current implementation which either cause errors are completely not functional. The goal of this project is to eliminate these issues by making necessary changes and adding new test cases which cover all scenarios. &lt;br /&gt;
&lt;br /&gt;
====Issues with the Current Implementation====&lt;br /&gt;
&lt;br /&gt;
This Project will be continuation on the previous work done at #[https://expertiza.csc.ncsu.edu/index.php/CSC/ECE_517_Fall_2019_-_E1978._Fix_issues_related_to_deadlines_and_late_policies E1978]&lt;br /&gt;
&lt;br /&gt;
* '''Issue 1''' - Code is missing comments.&lt;br /&gt;
&lt;br /&gt;
* '''Issue 2''' - Two flash messages were removed which were conveying what went wrong.&lt;br /&gt;
&lt;br /&gt;
* '''Issue 3''' - late_policy.rb and late_policies_controller.rb doesn't have any tests.&lt;br /&gt;
&lt;br /&gt;
* '''Issue 4''' - have a test to check the min penalty as well rather than just the cap.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Approach &amp;amp; Fix==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;h4&amp;gt; Issue 1: Code is missing comments.&amp;lt;/h4&amp;gt;&lt;br /&gt;
Adding comments to the late policy code flow for better readability. &lt;br /&gt;
&lt;br /&gt;
&amp;lt;h4&amp;gt; Issue 2: Two flash messages were removed which were conveying what went wrong. &amp;lt;/h4&amp;gt;&lt;br /&gt;
Ensure that all correct error messages are flashed to the user.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;h4&amp;gt; Issue 3: Neither late_policy.rb nor late_policies_controller.rb have any tests at all. Define a test plan, and write appropriate tests for these classes.&amp;lt;/h4&amp;gt;&lt;br /&gt;
Add test file for late_policies_controller_spec.rb with appropriate test cases&lt;br /&gt;
Add test file for late_policies_spec.rb with appropriate test cases&lt;br /&gt;
&lt;br /&gt;
&amp;lt;h4&amp;gt; Issue 4: have a test to check the min penalty as well rather than just the cap and make sure all checks pass &amp;lt;/h4&amp;gt;&lt;br /&gt;
Add new test cases wherever required in the code and increase the test coverage and also ensure all existing test cases are passing and functionality&lt;br /&gt;
is working as expected.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Expected Results==&lt;br /&gt;
We expect the new code changes should not break existing functionality and the following results upon completion:&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
* '''Issue 1''' - Once this issue is fixed, the Due Dates tab while editing an assignment will have no ambiguity between &amp;quot;late policy&amp;quot; and &amp;quot;penalty policy&amp;quot;, as &amp;quot;late policy&amp;quot; will be used exclusively. &lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
[[File:Hitissue11.png|650px]]&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
* '''Issue 2''' - Once this issue is fixed, late policies can be created and saved successfully without raising the &amp;quot;The following error occurred while saving the penalty policy:&amp;quot; error.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
[[File:Hitissue2.png|650px]]&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
* '''Issue 3''' - Once this issue is fixed, the back link after creating a late policy will rightly take the user to the General tab on the Edit Assignment page.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
[[File:Hitissue3.png|650px]]&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
* '''Issue 4''' - Once this issue is fixed, &amp;quot;+&amp;quot; and &amp;quot;-&amp;quot; buttons for Show/Hide Date Updater will work and update all the dates relative to the first date keeping the days gap between all the dates the same as before.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
[[File:Hitissue4.png|650px]]&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
* '''Issue 5''' - The code coverage will increase once tests for late_policy.rb and late_policies_controller.rb are written.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
[[File:Hitissue5.png|650px]]&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Test Plan===&lt;br /&gt;
----&lt;br /&gt;
'''''Before fix'''''&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
'''Manual Testing ()'''&lt;br /&gt;
&lt;br /&gt;
Log in to Expertiza as an Instructor by entering the credentials: Username: instructor6, Password: password&lt;br /&gt;
&lt;br /&gt;
The following route is common to testing all the issues:&lt;br /&gt;
&lt;br /&gt;
  Welcome page -&amp;gt; Manage Assignments -&amp;gt; Select a Course -&amp;gt; Select Edit option for any assignment -&amp;gt; Edit Assignment (General) -&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''Issue 1''' - &amp;lt;pre&amp;gt; Due Dates -&amp;gt; No 'penalty policy' on the page. &amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''Issue 2''' - &amp;lt;pre&amp;gt; Due Dates -&amp;gt; New late policy -&amp;gt; Enter information and Create -&amp;gt; Late policy is successfully created and saved. &amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''Issue 3''' - &amp;lt;pre&amp;gt; Due Dates -&amp;gt; New late policy -&amp;gt; Enter information and Create -&amp;gt; Back -&amp;gt; Edit Assignment (General) &amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''Issue 4''' - &amp;lt;pre&amp;gt; Due Dates -&amp;gt; Show/Hide Date Updater -&amp;gt; Enter number of days -&amp;gt; Hit + / - &amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Automated Testing Using RSpec'''&lt;br /&gt;
&lt;br /&gt;
We plan to create two new files, late_policy_spec.rb and late_policies_controller_spec.rb to write tests for late_policy.rb and late_policies_controller.rb repesctively.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Automated Testing Using Capybara'''&lt;br /&gt;
&lt;br /&gt;
We plan to create UI test framework using Capybara with Cucumber that automates the manual testing path and saves time and repetitive effort. These tests will be written prior to code and define the expected behavior of policy controller.&lt;br /&gt;
&lt;br /&gt;
'''Coverage'''&lt;br /&gt;
&lt;br /&gt;
To make sure we are covering all of our code with test cases we will use the Ruby Code Coverage plugin of RubyMine and SimpleCov gem. After manually running the test file, the SimpleCov gem will highlight the lines of code which are being covered by our test cases in green color, and for those which are not being covered in red.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
'''''Afterfix'''''&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
To test the controller 'late_policies_controller.rb' and model 'late_policy.rb' we created 2 test files late_policy_spec.rb and late_policies_controller_spec.rb. To write test cases we used rspec functions and tested the functions on the basis of :&lt;br /&gt;
&amp;lt;ul&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;What they returned&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Which page got rendered&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Which flash error got produced&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Which method got called&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ul&amp;gt;&lt;br /&gt;
We also used stubbing and mocking functions to carry out our tests. After executing our tests we got an increase in the overall code coverage of over 0.5% for each file.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Here are the results of SimpleCov gem highlighting the code coverage of our tests.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
[[File:Testplanyess.png]]&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Milestones==&lt;br /&gt;
'''10/25''' – Project Selection&lt;br /&gt;
&lt;br /&gt;
'''10/26''' – Develop Project Design Document&lt;br /&gt;
&lt;br /&gt;
==Project Mentors==&lt;br /&gt;
*Tirth Patel&lt;br /&gt;
&lt;br /&gt;
==Team Members==&lt;br /&gt;
* Anmol Lunavat&lt;br /&gt;
&lt;br /&gt;
* Shubham Waghe&lt;br /&gt;
&lt;br /&gt;
* Vishal Sharma&lt;br /&gt;
&lt;br /&gt;
==Useful Links==&lt;br /&gt;
===E2157===&lt;br /&gt;
#[https://github.com/Natansh21/expertiza/tree/beta GitHub forked repository]&lt;br /&gt;
#[https://github.com/expertiza/expertiza/compare/beta...Natansh21:beta?expand=1 Pull Request]&lt;br /&gt;
&lt;br /&gt;
===Expertiza===&lt;br /&gt;
#[https://github.com/expertiza/expertiza Expertiza on GitHub]&lt;br /&gt;
#[http://expertiza.ncsu.edu/ Live Expertiza website]&lt;/div&gt;</summary>
		<author><name>Vsharma7</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=E2145._OSS_Project_Beige&amp;diff=139037</id>
		<title>E2145. OSS Project Beige</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=E2145._OSS_Project_Beige&amp;diff=139037"/>
		<updated>2021-10-16T20:47:46Z</updated>

		<summary type="html">&lt;p&gt;Vsharma7: second draft. updated wip feilds.&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This wiki page provides description of changes made under E2145 OSS assignment for Fall 2021, CSC/ECE 517.&lt;br /&gt;
&lt;br /&gt;
==About Expertiza==&lt;br /&gt;
[http://expertiza.ncsu.edu/ Expertiza] is an open source project based on [http://rubyonrails.org/ Ruby on Rails] framework. Expertiza allows the instructor to create new assignments and customize new or existing assignments. It also allows the instructor to create a list of topics the students can sign up for. Students can form teams in Expertiza to work on various projects and assignments. Students can also peer review other students' submissions. Expertiza supports submission across various document types, including the URLs and wiki pages.&lt;br /&gt;
&lt;br /&gt;
==Problem Statement==&lt;br /&gt;
When a participant updates the submission after the reading the review comments, the reviewer will have to review it again when the second review cycle starts. However, since the reviewer may have multiple submissions to review, some of which are updated, and some that are not, it becomes difficult for the reviewer to identify the updated submissions that need attention. Currently there is no way of identifying the difference between updated and stale submissions.&lt;br /&gt;
&lt;br /&gt;
==Proposed Solution==&lt;br /&gt;
For identifying the submission status of the project in next review cycle, the reviewer should be able to quickly identify the submissions that need attention. This can be done in the UI of the reviewer’s page. The submissions can be color-coded using a scheme like the one used in the “Review Report” page.&lt;br /&gt;
* &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Red&amp;lt;/span&amp;gt; – If the review has not been started&lt;br /&gt;
* &amp;lt;span style=&amp;quot;color:orange&amp;quot;&amp;gt;Orange&amp;lt;/span&amp;gt; – If the review was started, but not completed &lt;br /&gt;
* &amp;lt;span style=&amp;quot;color:brown&amp;quot;&amp;gt;Brown&amp;lt;/span&amp;gt; – Submission has been reviewed &lt;br /&gt;
&lt;br /&gt;
This solution will allows reviewers to identify and prioritize their work without having to dig deep into individual submissions.&lt;br /&gt;
&lt;br /&gt;
==Tasks==&lt;br /&gt;
The following would be the key tasks:&lt;br /&gt;
* Add a new model to track the status of a review&lt;br /&gt;
* Upon change of review stage, update the data in the database.&lt;br /&gt;
* Change color in the UI based on the status of the review.&lt;br /&gt;
&lt;br /&gt;
==Implementation==&lt;br /&gt;
===List of Changes===&lt;br /&gt;
WIP&lt;br /&gt;
&lt;br /&gt;
==Testing==&lt;br /&gt;
===Rspec===&lt;br /&gt;
WIP&lt;br /&gt;
&lt;br /&gt;
===UI Testing===&lt;br /&gt;
WIP&lt;br /&gt;
&lt;br /&gt;
==References==&lt;br /&gt;
#[https://github.com/expertiza/expertiza Expertiza on GitHub]&lt;br /&gt;
#[https://github.com/WintersLt/expertiza GitHub Project Repository Fork]&lt;br /&gt;
#[http://expertiza.ncsu.edu/ The live Expertiza website]&lt;br /&gt;
#[http://wikis.lib.ncsu.edu/index.php/Expertiza Expertiza project documentation wiki]&lt;br /&gt;
#[https://relishapp.com/rspec Rspec Documentation]&lt;/div&gt;</summary>
		<author><name>Vsharma7</name></author>
	</entry>
</feed>