-
Notifications
You must be signed in to change notification settings - Fork 5
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Assignments Grading Application #208
Comments
Hey, @susham. This is a cool idea. Let's talk about the workflow that will be enabled by this tool:
Does that sound right? I want to make sure that we've identified all of the work required to make this solution work. |
Yes, looks like most of the work is identified. Till now, I thought this application should have a thick client, since we are connecting to the PSU linux machine with SSH where the .out files will be available. I was thinking to utilize most of the scripts that are currently used and yes we definitely need to modify the .out file, so that it could be read by the application(Possible XML format) and create the reports and send it to the students via email. We could also discuss on the workflow of the web application. The main reason, I was going with the thick client was due to the number of people using it. |
Yeah. I'd worry about the security of a web-based system. If there's a web server running on one of the CS Department's machines, it will be easily for an industrious student to find it and gain access to it. For the initial revision of the tool, we might be able to parse the output of the current scripts. They're pretty uniform. Then again, running the main method with Java isn't a big deal, either. Let's think some more on this... |
Yeah, I was thinking if the .out files are created in an xml format. That would be easier to parse for the thick client application, rather than parsing the current .out file. Probably, we could create the reports in an excel sheet or the format you need to send it to the students |
Hi Dave, Below is the xml format, I was thinking to have as the output file from the script you are running to get the .out files. Please let me know your thoughts on this, would it be better to have a xml format or a different format? Thanks, |
Hey, @susham. That looks pretty good. I've been thinking about how to approach this tool. I actually think that the easiest way to get to something that you guys can use would be to convert the existing @susham, would you like to contribute to authoring the tool? Do you have time to do that and still get the project/quiz grading done? I've got some time this weekend to dedicate to this. I'm not sure if we'll have something that will help with Project 2, but we might have something to help with the Project 3 grading. |
@DavidWhitlock Thanks, |
I started capturing a bunch of thoughts on this https://github.com/DavidWhitlock/PortlandStateJava/wiki/GUI-for-grading-projects-POA But now I'm falling asleep. Please review it and let me know what you think. |
I have gone through the wiki and its awesome. All of the points that we need to work on is covered, including the workflow. I was thinking about the version control feature. I understand, there is a concern of security when we make the project over http. But, we have the private repositories in github, assuming public can not view this repository and most of the graders use github in one way or the other. If we could get the files downloaded from the PSU Linux machine, graders could commit and push the changes to the private repository by running the git commands from the thick client. We could have another screen to configure the repository info. I am not good on linux. I am not sure, if we can make an FTP Server or SFTP on PSU Linux which will be accessible by the graders only via SSH, so that we can use the Apache commons net api to download the files from the ftp server or sftp server, https://commons.apache.org/proper/commons-net/apidocs/org/apache/commons/net/ftp/FTPClient.html I have never worked on CVS, if that is easy to implement then we can carry on with that. Please let me know your thoughts on this. I have |
Based on my experience, using CVS is fundamentally the same as GitHub. After installing the executable, you check out a repository using the command line, and you commit and update using the command line. I use CVS for storing the grade book for the class because it contains private information I don't know if I feel comfortable having it reside in locations that I don't have access to (such as GitHub, even in a private repository). CVS is admittedly very old, but I believe that it will work for us. I'll create a new CVS repository and make sure that I can get it working for me. If so, I'll ask you to set it up in your local environment. |
Okay. I think I got the CVS repository set up. After you install the executable, you should be able to do the following to check out the repository.
Right now, the repository only contains a However, it will require that you have ssh installed on your local machine. If you're on windows, you may want to consider installing cygwin to provide these UNIX tools on Windows. Let me know how you find this process. |
I have used the below command to install the CVS on my local machine and then I have run the cvs command you have provided. Looks like, I was able to setup the cvs and get the README file. Is there any way, we could run these commands from our project and install all the required softwares? |
Good question, @susham. We might be able to bundle all of the software required in a Docker container or something. I don't have a lot of experience doing that. From your point of view, how important is ease of installation for the environment? |
Okay. I've started developing the basic domain classes and the user interface for the project submission scorer application. The code is off on a branch of my source code repository: https://github.com/DavidWhitlock/PortlandStateJava/tree/issue-208-project-submissions-scoring-ui When you have a chance, please verify that you can check out this code, build it, and run the application on your local machine.
You should see a UI pop up that contains a list of "student/Project" submissions. At the moment, clicking on the submissions doesn't do anything. |
In my view, if the dependency software can be installed via the command line then it would be better to have the dependency software be a part of the project. I wanted to avoid, graders or future application users doesn't bug you on the softwares they are installing or not able to configure the dependency softwares. If the number of dependency softwares are minimum and doesn't have to configure them, then letting the users do the dependency softwares installation should be fine. |
I completely agree. Let's see if we can get it working first, then we can
optimize how it's installed.
…On Sat, Jul 22, 2017 at 3:01 PM, susham kumar ***@***.***> wrote:
@DavidWhitlock <https://github.com/davidwhitlock>
In my view, if the dependency software can be installed via the command
line then it would be better to have the dependency software be a part of
the project. I wanted to avoid, graders or future application users doesn't
bug you on the softwares they are installing or not able to configure the
dependency softwares.
If the number of dependency softwares are minimum and doesn't have to
configure them, then letting the users do the dependency softwares
installation should be fine.
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
<#208 (comment)>,
or mute the thread
<https://github.com/notifications/unsubscribe-auth/ACzMaNrOPejCfbeWtAPSAKMWpPpVqWF_ks5sQnEjgaJpZM4OcUHx>
.
--
David Whitlock
Adjunct Lecturer
Portland State University
|
I was able to run the project and it lists the students and the project |
Sweet! I'm making progress on building out functionality. Slow and
steady. :)
…On Sat, Jul 22, 2017 at 3:30 PM, susham kumar ***@***.***> wrote:
@DavidWhitlock <https://github.com/davidwhitlock>
[image: screen shot 2017-07-22 at 3 26 57 pm]
<https://user-images.githubusercontent.com/5677583/28494937-8aeaf40a-6ef2-11e7-8f94-5bfdc280060f.png>
I was able to run the project and it lists the students and the project
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
<#208 (comment)>,
or mute the thread
<https://github.com/notifications/unsubscribe-auth/ACzMaOHE3W5Epzkj7-tqkiGhm2pvLByEks5sQnftgaJpZM4OcUHx>
.
--
David Whitlock
Adjunct Lecturer
Portland State University
|
Well, I had fun today developing the application. Update your checkout and see if it works for you. I still have a ways to go, but I made good progress. |
I have updated the repository and which command should i use to run the GUI? Thanks, |
Oh. Same command as before:
```
$ java -jar target/grader-Summer2017.jar scoreProjectSubmissions
```
…On Sun, Jul 23, 2017 at 10:18 AM, susham kumar ***@***.***> wrote:
@DavidWhitlock <https://github.com/davidwhitlock>
I have updated the repository and which command should i use to run the
GUI?
Thanks,
Susham
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
<#208 (comment)>,
or mute the thread
<https://github.com/notifications/unsubscribe-auth/ACzMaEoEXvDnr_Z8zESWdLiuQxqAwKkvks5sQ4BhgaJpZM4OcUHx>
.
--
David Whitlock
Adjunct Lecturer
Portland State University
|
Okay. I added some more functionality today. You can now save the score for the submission. When you do so, you are automatically advanced to the next submissions. Similarly, for the test cases: after you deduct points from a test case, the UI advanced to the next test case. Hopefully, this should make grading faster. If you have a chance, please build the latest changes and let me know what you think. The next thing to do is to parse the |
@susham, there isn't a "mvn build" command. Use "mvn clean package" instead. That will rebuild the jar file. Also, it will be much faster, if you "cd grader" and just build the grader project. |
I will start working on the .out file parser this weekend and update you on the status Thanks, |
I was just looking at the code you have written for this project and there lot of files. I am not sure, where to start writing the code for the parsing .out file. Whenever you are free, can we have a hangout session, so that we could discuss the workflow and the structure I need to follow to implement the .out file parsing. Thanks, |
Yeah. There's a lot there. I think the best way to proceed would be for me to write some unit tests and for you to make them pass. Let's catch up on this on Saturday. What does your schedule look like? |
I am free this weekend. Let me know your availability. |
How about 9:30 on Saturday morning? That will give us time later in the day to work on it. |
Looks good to me! |
Great. I'll put something on the calendar. |
Hey, I threw together some unit tests for a class that parses the output of the grading script: Have a look. Hopefully, that will help you get started. Thanks, Dave |
Unit Test Cases helps a lot.
We could discuss these points tomorrow. Thanks, |
I'm glad you found the unit tests to be helpful, @susham. We can talk more later this morning, but I recommend that you implement functionality in the |
I have few questions on the output parser.
Thanks, |
Hey, @susham.
Thanks! Dave |
Thanks, |
👍 |
I am trying to parse the submission time and below is the code that I am using Still the parseable exception occurs. I am not sure, where I am doing wrong. |
Hmm. That SimpleDateFormat might not recognize the "Jul". It might expect a two-digit month. I recommend that you write a unit test that creates the SimpleDateFormat, formats a new If I had to guess, I would bet that your date format needs a third |
Yayy! Using a third 'M' as part of the date format, did work. Thanks a lot!! |
I have added few implementations and pushed the changes to my repository. Can you please review the code and let me know, if there are any modifications required. |
Hey, @susham. The most effective way for me to provide you with feedback would be for you to put up a pull request for your changes. We can decided whether or not you want me to merge them or not. But a Pull Request would let us have a conversation. Thanks! Dave |
I have raised the pull request. Thanks, |
Sorry about the confusion. I have raised another request, from issue 208 branch. |
No problem. Thank you for creating that other pull request. |
Application which helps to grade the assignments easily and gives the ability to provide comments to each test case. Below is the mockup of this application
The text was updated successfully, but these errors were encountered: