Main Page: Difference between revisions

From Expertiza_Wiki
Jump to navigation Jump to search
No edit summary
 
(65 intermediate revisions by 38 users not shown)
Line 1: Line 1:
== '''E1746. [Test First Development] Refactor user.rb''' ==
==Expertiza==
==Expertiza==
* [[Expertiza documentation]]
* [[Expertiza documentation]]
Expertiza is an open source project based on 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.


* [[CSC/ECE 517 Summer 2008]]
* [[CSC/ECE 517 Fall 2010]]
* [[CSC/ECE 517 Fall 2011]]
* [[CSC/ECE 517 Fall 2012]]
* [[CSC/ECE 517 Fall 2013]]
* [[CSC/ECE 517 Fall 2014]]
* [[CSC/ECE 517 Fall 2015]]
* [[CSC/ECE 517 Fall 2016]]
* [[CSC/ECE 517 Spring 2014]]
* [[CSC/ECE 517 Spring 2015]]
* [[CSC/ECE 517 Spring 2016]]
* [[CSC/ECE 517 Spring 2017]]
* [[CSC/ECE 517 Fall 2017]]
* [[CSC/Independent Study Spring 2018]]
* [[CSC/ECE 517 Spring 2018]]
* [[CSC/ECE 517 Fall 2018]]
* [[CSC/ECE 517 Spring 2019]]
* [[CSC/ECE 517 Fall 2019]]
* [[CSC/ECE 517 Spring 2020]]
* [[CSC/ECE 517 Summer 2020]]
* [[CSC/ECE 517 Fall 2020]]
* [[CSC/ECE 517 Spring 2021]]
* [[CSC/ECE 517 Fall 2021]]
* [[CSC/ECE 517 Spring 2022]]
* [[CSC/ECE 517 Fall 2022]]
* [[CSC/ECE 517 Spring 2023]]
* [[CSC/ECE 517 Fall 2023]]
* [[CSC/ECE 517 Spring 2024]]
* [[CSC/ECE 517 Fall 2024]]
* [[CSC 630 Summer 2024]]
* [[CSC 456 Spring 2011|CSC 456 Spring 2012]]
* [[ECE 633]]
* [[KCU]]
* [[Progress reports]]
* [[ReactJs Frontend]]
* [[Front-End/Back-End]]


==Application Behavior==
* [[Grading]]


==problem Statement==
==Metaprogramming==
The following tasks were accomplished in this project: 
* [[CSC/ECE_517_Spring_2013/ch1b_1k_hf|Lecture on Metaprogramming]]
*1.Complete the pending tests in user_spec.rb
*2.Refactor get_user_list method.Move if conditions to corresponding subclasses (eg. ta.rb, instructor.rb) with same method name,replace the conditional with the relevant method calls.
*3.Refactor self.search_users method,Extract duplicated code to a new method.
*4.Rename following method and change all other places it is used.
  is_recursively_parent_of → recursively_parent_of?
  is_creator_of? →  creator_of?
  is_teaching_assistant_for? →  teaching_assistant_for?
  is_teaching_assistant? →  teaching_assistant?
*5.Use find_by instead of dynamic method.
 
== Drawbacks and solutions==
 
*1.finish the pending test.
*There are many pending tests needed to be completed.The file is the following and all the pending tests has passed.
https://github.com/AnranZhou/expertiza/blob/master/spec/models/user_spec.rb
 
== new implementation==
*sends email when particpant is added in assignment.
*sends email when suggestion is given by student.
 


== code improvement==
==Development==
*1
*2


''Expertiza now has a Java dependency, so the machine you are using to develop Expertiza on should have the JVM installed.''


* [[Setting Up a Development Machine]]
* [[Creating a Linux Development Environment for Expertiza - Installation Guide]]
* [[Using git and github for projects]]
* [[Using heroku to deploy your projects]]
* [[How to Begin a Project from the Current Expertiza Repository]]
* [[Git]]
* [[How to Change a User's Password on a Development Machine]]
* [[Debugging Rails]]
* [http://rajanalwan.com/ui_guidelines/ Design Template]


==Application Behavior==
==Production==
* [[Grading]]
* [[Deploying to Production]]
 
* [[Downloading Production Data]]
==Metaprogramming==
* [[Accessing the Production Server]]
* [[CSC/ECE_517_Spring_2013/ch1b_1k_hf|Lecture on Metaprogramming]]


==Testing==
* [[Using Cucumber with Expertiza]]
* [[Rails Testing Overview]]
* [[Expertiza Continuous Integration]]


==References==
* [[Object-Oriented Design and Programming]]
* [[Object-Oriented Design and Programming]]

Latest revision as of 19:50, 27 October 2024

Expertiza

Application Behavior

Metaprogramming

Development

Expertiza now has a Java dependency, so the machine you are using to develop Expertiza on should have the JVM installed.

Production

Testing

References