E2157. Fix issues related to deadlines and late policies: Difference between revisions

From Expertiza_Wiki
Jump to navigation Jump to search
No edit summary
No edit summary
Line 1: Line 1:
__TOC__
__TOC__
=== Team Members ===
* Anmol Lunavat
* Shubham Waghe
* Vishal Sharma


== Video walk through ==
==Problem Description==
A link to the video on completion of the project will be added here
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).
 
 
====Issues with the Current Implementation====
----
The current implementation of Expertiza has the following Issues:
* '''Issue 1''' - In the UI, the policy is sometimes called a “late policy” and sometimes a “penalty policy”.
 
 
 
[[File:Qissue1.png]]
 
 
 
* '''Issue 2''' - Late policies cannot be created without raising an error.
 
 
 
[[File:Qissue2.png]]
 
 
 
* '''Issue 3''' - After creating a late policy, the “back” link does not take the user back to editing the assignment.
 
 
 
[[File:Qissue31.png]]
 
 
[[File:Qissue32.png]]
 
 
 
* '''Issue 4''' - The "+" and "-" buttons for Show/Hide Date Updater do not work.
 
 
 
[[File:Issue41.png]]
 
 
[[File:Issue42.png]]
 


== Problem Statement ==
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):


[[File:Late_policy.PNG]]
* '''Issue 5''' - Neither late_policy.rb nor late_policies_controller.rb have any tests at all.


There are a few bugs in the current implementation and a few checks missing. The aim of this project is to resolve known bugs and ensure seamless functionality.
== The Plan ==
The project mainly deals with fixing known bugs in the functionality and UI. At the end of the project, the following should be resolved:
* In the UI, the policy is sometimes called a “late policy” and sometimes a “penalty policy”.
* Late policies cannot be created without raising an error.
* After creating a late policy, the “back” link does not take the user back to editing the assignment.
* The "+" and "-" buttons for Show/Hide Date Updater do not work.
* Missing test cases for late_policy.rb and late_policies_controller.rb.
=== What needs to be done ===
=== What needs to be done ===
We will resolve each of these issues in the following manner:
We will resolve each of these issues in the following manner:
Line 29: Line 56:
* Add test cases for late_policy.rb and late_policies_controller.rb. This will further be discussed in the Test Plan section of the page.
* Add test cases for late_policy.rb and late_policies_controller.rb. This will further be discussed in the Test Plan section of the page.


== Workflow Diagram ==
==Approach & Fix==
The main workflow of the mentor management for assignments without topics is outline below.
 
[[File:Mentor management.png|thumb|center|border|520px|]]
----
<h4>Issue 1: Renaming penalty policy to late policy</h4>
 
<ul>
<li>Renaming done on the UI as well as on the backend</li>
<li>Varible names refactored appropritely</li>
<li>Flash messages changed accordingly</li>
</ul>
 
<h4>Issue 2: Late policies cannot be created without raising an error</h4>
 
<p>The error which is raised is due to the following validation present in the model late_policy.rb.
<br>
    <h6>validates :max_penalty, numericality: {less_than: 50}</h6>
</p>
 
<ul>
<li>After discussing with professor we have decided to increase the max penalty limit to 100</li>
<li>Added a flash error message in the create function of late_policies_controller.rb</li>
</ul>
    if params[:late_policy][:max_penalty].to_i>=100
      flash[:error] = "Maximum penalty cannot be greater than or equal to 100"
      invalid_max_penalty = true;
    end
 
<h4>Issue 3: After creating a late policy, the “back” link does not take the user back to editing the assignment.</h4>
 
<ul>
<li>Added a back link in which redirects the user to edit assignment page.</li>
<li>Saved the assignment object in a session variable when the user clicks on the the edit asignment icon</li>
<li>We also added a back button on index page since there was no direct way of going back to edit assignment page once a late policy was created.</li>
<li>We also added padding between the edit and delete links on index page</li>
</ul>
    <%= link_to 'Back', :controller=> 'assignments', :action => 'edit', :id => session[:assignment] %>


== Logic Design ==
<h4>Issue 4: The "+" and "-" buttons for Show/Hide Date Updater do not work.</h4>
The following main logic components are described below. Each block of logic is to be independent from one another, in order to avoid DRY and de-couple code responsibility.
===='''selectMentor()'''====
In order to assign a mentor to a group, we must first choose a mentor wisely in the system. The requirements document suggests "Mentors should be evenly assigned to teams, so a good strategy is to assign the mentor who has the fewest teams to mentor so far." This can be implemented using a min-heap-based priority queue, where a mentor's priority is the count of the number of teams to which they're assigned.


===='''updateMentorStates()'''====
<p>While testing this issue we noticed that the functionality was working perfectly fine, however, it was not user friendly.</p>
The responsibility of this function will be to check if the team satisfy the conditions for the auto assign of mentor. This method will utilize the selectMentor() if the conditions are met. It will use the existing methods in the Team.rb that coded by expertiza team to add the mentor.
<ul>
===='''notifyTeam()'''====
<li>We decided to add a tooltip icon explaining how this functionality works</li>
This is going to be a simple function that takes care of sending an email to a) the mentor, and b) the project teammates to:
<li>We also inproved its UI by adding the alignment and padding.</li>
# Notify the team they have been assigned a mentor and pass along their contact information
</ul>
# Pass along the contact information for the team members to the mentor


== UI Design ==
<h4>Issue 5: 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.</h4>
A simplistic UI design approach is to be implemented. Below is a mock rendering of the new information that will appear on the <code>student_teams/view?student_id=</code> expertiza page. The value will be only present if the mentor has been automatically assigned.
<ul>
[[File:Team student view.png|thumb|center|520px|]]
<li>Added test file late_policies_controller_spec.rb with appropriate test cases</li>
<li>Added test file late_policies_spec.rb with appropriate test cases
</ul>


The instructor view will also need to have visibility of what mentors the teams have. Below is a mock rendering of the new information that will appear on the <code>/teams/list?type=Course&id=</code> expertiza page. The role column will be added.
<br>
[[File:Team admin view.png|thumb|center|520px|]]


== Code Modifications ==
==Expected Results==
=== Controllers ===
----
==== Files ====
Each Issue is described with the predicted fix and a screenshot showing the issue fixed.
# [https://github.com/expertiza/expertiza/pull/1957/files?file-filters%5B%5D=#diff-88d9bf9a58c1b9896848beeb69f9eb362428ad6f8f5999ca3dd78e2b2f7bb28e app/controllers/teams_users_controller.rb]
<br>
==== Code Snippets ====
<br>
[[File:teams_user_controller.png|thumb|center|520px|]]
* '''Issue 1''' - Once this issue is fixed, the Due Dates tab while editing an assignment will have no ambiguity between "late policy" and "penalty policy", as "late policy" will be used exclusively.
==== Explanation ====
<br>
This code will Kick off the Mentor Management workflow from the perspective of the instructor when adding members. This is not supported for CourseTeams which is why the other half of this if block does not include the same code. This code can be further enhanced by consolidating where members get added to a single place.
[[File:Hitissue11.png]]
<br>
* '''Issue 2''' - Once this issue is fixed, late policies can be created and saved successfully without raising the "The following error occurred while saving the penalty policy:" error.
<br>
[[File:Hitissue2.png]]
<br>
* '''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.
<br>
[[File:Hitissue3.png]]
<br>
* '''Issue 4''' - Once this issue is fixed, "+" and "-" 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.
<br>
[[File:Hitissue4.png]]
<br>
* '''Issue 5''' - The code coverage will definitely increase once tests for late_policy.rb and late_policies_controller.rb are written.
<br>
[[File:Hitissue5.png]]
<br>




=== Models ===
==== Files and Code Snippets ====
# [https://github.com/expertiza/expertiza/pull/1957/files?file-filters%5B%5D=#diff-45779566bc2430be219713f18b2aad5dfea8b24708eeab7d8436787ec2e422a8 app/models/participant.rb] [[File:participate.png|thumb|center|520px|]]
# [https://github.com/expertiza/expertiza/pull/1957/files?file-filters%5B%5D=#diff-f75b174cbda975a5b5b98509b36d2ee7619ce19ea5b9b2f439f4ef159cc46c1a app/models/mentor_management.rb] [[File:part1.png|thumb|center|520px|]] [[File:part2.png|thumb|center|520px|]]
# [https://github.com/expertiza/expertiza/pull/1957/files?file-filters%5B%5D=#diff-dfe026d6f5d01abbea59eaf5f3935355410368e3522f27ca9092ad626675d04b app/models/assignment_form.rb] [[File:assignment_form.png|thumb|center|520px|]]
# [https://github.com/expertiza/expertiza/pull/1957/files?file-filters%5B%5D=#diff-c899291de1875b0c2483c0f132ed4503e6c33be63148d6e5d1f4235bfeb1c331 app/models/invitation.rb] [[File:invitation.png|thumb|center|520px|]]


==== Explanation ====
<br>
===== participant.rb =====
A string constant called DUTY_MENTOR was added to the Participant model, since the duty column of the participants table was used to hold this title. The constant name is prefixed with DUTY_ in the event that other duty titles are added in the future.


===== mentor_management.rb =====
===Test Plan===
Lastly the mentor management class is the main logic for the feature. This class essentially implements the Singleton pattern, but rather than using the <code>Singleton</code> module it is just a set of class methods.
----
'''''Before fix'''''
<br>
<br>
'''Manual Testing ()'''


====== #select_mentor ======
Log in to Expertiza as an Instructor by entering the credentials: Username: instructor6, Password: password
The select mentor method selects a mentor using the following algorithm:
# Find all assignment participants for the assignment with id [assignment_id] whose duty is the same as [Particpant#DUTY_MENTOR].
# Count the number of teams those participants are a part of, acting as a proxy for the number of teams they mentor.
# Return the mentor with the fewest number of teams they're currently mentoring.,This method's runtime is O(n lg n) due to the call to, Hash sort_by. This assertion assumes that the database management system is capable of fetching the required rows at least as quickly.


====== #assign_mentor ======
The following route is common to testing all the issues:
The auto_assign_mentor method is the main entrypoint in to the mentor management workflow.


In Expertiza, team members can be added in two ways:
                                Welcome page -> Manage Assignments -> Select a Course -> Select Edit option for any assignment -> Edit Assignment (General) ->
# A user accepts an invitation to join a team
# A user with high enough privileges (e.g. an instructor) manually adds a user to a team


These two events happen in two different places in the code: invitation.rb and teams_controller.rb respectively. In both cases, assign_mentor is called.
'''Issue 1''' - <pre> Due Dates -> No 'penalty policy' on the page. </pre>


The following preconditions must be met for a mentor to be added to a team:
'''Issue 2''' - <pre> Due Dates -> New late policy -> Enter information and Create -> Late policy is successfully created and saved. </pre>
* The assignment must have the auto_assign_mentor flag enabled (i.e. set to <code>true</code>)
* Neither the assignment nor the team can have topics assigned to them
* The newly added team member must increase the team size to strictly greater than 50% of the maximum team capacity for the assignment
* The team cannot already have a mentor assigned to the team


If these conditions are met, assign_mentor calls #select_mentor to choose a mentor from the pool of mentors, and then assigns them to the team. If this is successful then a notification email is sent out to all current team members, and the new mentor at the same time so everyone knows how to contact everyone else.
'''Issue 3''' - <pre> Due Dates -> New late policy -> Enter information and Create -> Back -> Edit Assignment (General) </pre>


===== assignment_form.rb =====
'''Issue 4''' - <pre> Due Dates -> Show/Hide Date Updater -> Enter number of days -> Hit + / - </pre>
The assignment form needed a new :auto_assign_mentor flag added to its model. This will allow for the auto assign mentor feature to be disabled if the instructor does not want the work flow executed for the assignment.


===== invitation.rb =====
One trigger had to be added to invitation.rb so when users accept invitations to join a team the mentor management logic can execute.


=== Views ===
'''Automated Testing Using RSpec'''
==== Files and Code Snippets ====
# [https://github.com/expertiza/expertiza/pull/1957/files?file-filters%5B%5D=#diff-25229b4f0807107f2f4289bcbfff7bfe4028fb0aada5896dd147e9f703f52758 app/views/assignments/edit/_general.html.erb] [[File:general.png|thumb|center|520px|]]
# [https://github.com/expertiza/expertiza/pull/1957/files?file-filters%5B%5D=#diff-4ba1a3986521a5504ac067e8200851895115a0b30f4d8a31514d2221d4c0d8b2 app/views/student_teams/view.html.erb] [[File:view_html.png|thumb|center|520px|]]
# [https://github.com/expertiza/expertiza/pull/1957/files?file-filters%5B%5D=#diff-03c8e92504f472a4b2e3775e571fb395a4cebf408f130d21a619a83b7183d873 app/models/teams_user.rb] [[File:team_user.png|thumb|center|520px|]]


==== Explanation ====
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.
Two views were updated in the Expertiza application to allow the user to see who the mentor is on their team. The Expertiza application makes use of plenty of view partials to compose the UI. We tried to find the least intrusive place among the pile of view partials where we could add a new column for displaying the duty title for mentors. This also had to be done in two places, since the instructor view of a team is different than the student's view of the same team. For the former, teams_user.rb was updated to append <code>(Mentor)</code> to a user's name in the view.


=== Database ===
'''Coverage'''
==== Files ====
# [https://github.com/expertiza/expertiza/pull/1957/files?file-filters%5B%5D=#diff-20561383413b93d6001df218448415d212cb5161253bbfc8f172da6bbf12d4b8 db/migrate/20210422185445_add_auto_assign_mentor_column.rb]
# [https://github.com/expertiza/expertiza/pull/1957/files?file-filters%5B%5D=#diff-cbf8b25d6d853acf58fa9057841f407d29ffe90649c75cf9e3f51b2d6e3aa1d3 db/schema.rb]
==== Code Snippets ====
[[File:add_auto_assign_mentor.png|thumb|center|520px|]]
==== Explanation ====
Our team tried to avoid any database changes, but in order to add a flag for disabling the mentor management functionality we added a new boolean column to the assignments table called auto_assign_mentor.


=== Test Files ===
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.
==== Files ====
* [https://github.com/expertiza/expertiza/pull/1957/files?file-filters%5B%5D= spec/factories/factories.rb]
: Update the assignment factory to include a default value for the new auto_assign_mentor flag for testing.
* [https://github.com/expertiza/expertiza/pull/1957/files?file-filters%5B%5D= spec/models/invitation_spec.rb]
: Update invitation_spec.rb to resolve failing tests after the addition of code to trigger mentor management in invitation.rb.
* [https://github.com/expertiza/expertiza/pull/1957/files?file-filters%5B%5D= spec/models/mentor_management_spec.rb]
: Implement tests for the <code>MentorManagement</code> class.


== Manual Testing instruction ==
<br>
# Login as instructor6, using 'password' as password and find the '''Rock on Assignment'''
'''''Afterfix'''''
# Check the paticipants for this assignment, make sure there are some students attempting this assignment.
<br>
#* You can add your own students to the assignment if you want.
 
# Impersonate the student account you found.If there is no team, create one by inviting other student to your team, or create a team using the admin control.
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 :
# By toggling the '''Auto assign mentors when team hits > 50% capacity?''' in the assignment configuration page you will be able to:
<ul>
#* Enable the functionarities and logics that our team implemented.
<li>What they returned</li>
#* Disable the functionarities and logics that our team implemented to allow an admin to assign mentor manully.
<li>Which page got rendered</li>
<li>Which flash error got produced</li>
<li>Which method got called</li>
</ul>
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.
<br>
<br>
Here are the results of SimpleCov gem highlighting the code coverage of our tests.
<br>
[[File:Testplanyess.png]]
<br>
==Milestones==
'''11/01''' – Project Selection
 
'''11/11''' – Create Design Doc
 
'''11/15''' – setting up project environment and updating Design Doc
 
'''11/25''' – Fix Issues 1,2 and 3 with well-defined test cases
 
'''11/30''' – Fix issues 4 and 5 with well-defined test cases
 
'''12/04''' – Update design doc and create & upload video
 
'''12/06''' – Write tests for edge cases.
 
<br>
 
==Project Mentors==
 
 
<br>
 
==Team Members==
----
* Anmol Lunavat
 
* Shubham Waghe
 
* Vishal Sharma


==== Two Observations (Trigger Enabled) ====
# Add team members to any team under the '''Rock on Assignment''' using any following way:
#* Invitate/Accept the team invitation using impersonated student accounts.
#* Add student to team by using the admin control.
# Observe that when the member size passing the capacity (3 for this Rock on assignment), a mentor called '''Student6801''' will be added to the assignment team.
# Remove the mentor and the added students of the assignment team using the admin control.
# Observe that when the member size below the capacity (e.g. the second team member added), a mentor will not be added to the assignment team.
# You should also be able to see that mentor is showing on the team list.


==== Two Observations (Trigger Disabled) ====
# By doing similar step as we mentioned above, you should not see any of the following:
#* A mentor is added to the team after the team size changed.
#* A mentor is displaying on the team list unless this mentor account: '''Student6801''' is manually added or invited.


== Test Plan ==
==Useful Links==
Based on the the workflow diagram we propose, we should be including a minimum of 5 tests: 1 for <code>addMentor</code>, 1 for <code>removeMentor</code>, 1 for <code>selectMentor</code>, and 2 more to exercise the paths through our workflow diagram.
----
===E1978===
#[https://github.com/Natansh21/expertiza/tree/beta GitHub forked repository]
#[https://github.com/expertiza/expertiza/compare/beta...Natansh21:beta?expand=1 Pull Request]
#[http://152.46.16.30:8080 Deployed Expertiza Environment]
#[https://youtu.be/HLK_XaW_6dA Screencast video on YouTube]


# A team will have a mentor after <code>addMentor</code> is called.
===Expertiza===
# A team will have a mentor removed after <code>removeMentor</code> is called.
#[https://github.com/expertiza/expertiza Expertiza on GitHub]
# The mentor with lowest number of team assigned will be return after <code>selectMentor</code> is called.
#[http://expertiza.ncsu.edu/ Live Expertiza website]
# The <code>selectMentor</code> except not to receive any message if a team already has a mentor.
# The <code>selectMentor</code> except not to receive any message if a team has size < 50% of the maximum size.

Revision as of 15:50, 31 October 2021

Problem Description

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).


Issues with the Current Implementation


The current implementation of Expertiza has the following Issues:

  • Issue 1 - In the UI, the policy is sometimes called a “late policy” and sometimes a “penalty policy”.



  • Issue 2 - Late policies cannot be created without raising an error.



  • Issue 3 - After creating a late policy, the “back” link does not take the user back to editing the assignment.




  • Issue 4 - The "+" and "-" buttons for Show/Hide Date Updater do not work.




  • Issue 5 - Neither late_policy.rb nor late_policies_controller.rb have any tests at all.

What needs to be done

We will resolve each of these issues in the following manner:

  • To avoid confusion, use “late policy” exclusively.
  • Ensure that all errors being raised are fixed. This will be achieved by modifying existing code and bringing new checks as and when required.
  • Ensure that on click of the back button, the user is taken back to the assignment page.
  • Expertiza has a way to adjust the dates on assignments. This is especially helpful when an assignment is copied from another and the dates get copied too. We need to ensure the "+" and "-" buttons update the dates accordingly.
  • Add test cases for late_policy.rb and late_policies_controller.rb. This will further be discussed in the Test Plan section of the page.

Approach & Fix


Issue 1: Renaming penalty policy to late policy

  • Renaming done on the UI as well as on the backend
  • Varible names refactored appropritely
  • Flash messages changed accordingly

Issue 2: Late policies cannot be created without raising an error

The error which is raised is due to the following validation present in the model late_policy.rb.

validates :max_penalty, numericality: {less_than: 50}

  • After discussing with professor we have decided to increase the max penalty limit to 100
  • Added a flash error message in the create function of late_policies_controller.rb
   if params[:late_policy][:max_penalty].to_i>=100
     flash[:error] = "Maximum penalty cannot be greater than or equal to 100"
     invalid_max_penalty = true;
   end

Issue 3: After creating a late policy, the “back” link does not take the user back to editing the assignment.

  • Added a back link in which redirects the user to edit assignment page.
  • Saved the assignment object in a session variable when the user clicks on the the edit asignment icon
  • We also added a back button on index page since there was no direct way of going back to edit assignment page once a late policy was created.
  • We also added padding between the edit and delete links on index page
   <%= link_to 'Back', :controller=> 'assignments', :action => 'edit', :id => session[:assignment] %>

Issue 4: The "+" and "-" buttons for Show/Hide Date Updater do not work.

While testing this issue we noticed that the functionality was working perfectly fine, however, it was not user friendly.

  • We decided to add a tooltip icon explaining how this functionality works
  • We also inproved its UI by adding the alignment and padding.

Issue 5: 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.

  • Added test file late_policies_controller_spec.rb with appropriate test cases
  • Added test file late_policies_spec.rb with appropriate test cases


Expected Results


Each Issue is described with the predicted fix and a screenshot showing the issue fixed.

  • Issue 1 - Once this issue is fixed, the Due Dates tab while editing an assignment will have no ambiguity between "late policy" and "penalty policy", as "late policy" will be used exclusively.



  • Issue 2 - Once this issue is fixed, late policies can be created and saved successfully without raising the "The following error occurred while saving the penalty policy:" error.



  • 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.



  • Issue 4 - Once this issue is fixed, "+" and "-" 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.



  • Issue 5 - The code coverage will definitely increase once tests for late_policy.rb and late_policies_controller.rb are written.





Test Plan


Before fix

Manual Testing ()

Log in to Expertiza as an Instructor by entering the credentials: Username: instructor6, Password: password

The following route is common to testing all the issues:

                               Welcome page -> Manage Assignments -> Select a Course -> Select Edit option for any assignment -> Edit Assignment (General) ->

Issue 1 -

 Due Dates -> No 'penalty policy' on the page. 

Issue 2 -

 Due Dates -> New late policy -> Enter information and Create -> Late policy is successfully created and saved. 

Issue 3 -

 Due Dates -> New late policy -> Enter information and Create -> Back -> Edit Assignment (General) 

Issue 4 -

 Due Dates -> Show/Hide Date Updater -> Enter number of days -> Hit + / - 


Automated Testing Using RSpec

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.

Coverage

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.


Afterfix

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 :

  • What they returned
  • Which page got rendered
  • Which flash error got produced
  • Which method got called

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.

Here are the results of SimpleCov gem highlighting the code coverage of our tests.

Milestones

11/01 – Project Selection

11/11 – Create Design Doc

11/15 – setting up project environment and updating Design Doc

11/25 – Fix Issues 1,2 and 3 with well-defined test cases

11/30 – Fix issues 4 and 5 with well-defined test cases

12/04 – Update design doc and create & upload video

12/06 – Write tests for edge cases.


Project Mentors


Team Members


  • Anmol Lunavat
  • Shubham Waghe
  • Vishal Sharma


Useful Links


E1978

  1. GitHub forked repository
  2. Pull Request
  3. Deployed Expertiza Environment
  4. Screencast video on YouTube

Expertiza

  1. Expertiza on GitHub
  2. Live Expertiza website