uid / caesar-web Goto Github PK
View Code? Open in Web Editor NEWCaesar is a research project designed to facilitate crowd-sourced collaborative code review in software engineering classes.
Home Page: http://caesar.csail.mit.edu/
Caesar is a research project designed to facilitate crowd-sourced collaborative code review in software engineering classes.
Home Page: http://caesar.csail.mit.edu/
A user's activity stream should show, for each comment or reply the user made, whether it got upvotes or downvotes and how many. Need to be careful to distinguish this visually from the user's own upvotes and downvotes, which are also shown in the same stream. Highly-voted comments should stand out by a squint test, and downvoted comments should also be visible.
Need a form that takes a list of usernames (in a textbox, separated by spaces or commas [handle either]), and a reputation score change amount (positive or negative), and adjust their scores accordingly.
Make available only to staff.
Staff needs to see stats and details on a reviewing process for an assignment:
It isn't clear what the last two columns are (reputation and student/teaching staff status)... column headings would help.
about 5 users got 16+ reviewers while everyone else had only 4 or fewer
The chunk-store code is written to only create a new assignment and submission for each student. That won't work for future assignments since students may have chosen to use slack days and we can just throw away submissions.
Give user a button to collape just the checkstyle comments would be useful, since they're often verbose.
From feedback spreadsheet:
"When I don't have anything to say, I want to comment on the entire method."
"It might be nice to have a way to make a comment that's not about any particular line... stuff like "the method looks good to me" is hard to localize."
assignments in activity stream should show the latest assignment first
"The only thing that I was curious about is that one of the methods that I got to review was an auxiliary function that someone made to help with one of the methods. I think that it would make more sense to have given me the auxiliary function along with the method that the student used the function in."
"One of the methods I had to review came from code that the students didn't write, so there was nothing to say."
Users in the all-users list should be displayed the same way as in the rest of the system:
[S] Robert C. Miller (55)
Clicking on a comment (or its speech bubble) should not only scroll it into alignment with its code, but should also highlight the comment in yellow and the corresponding code in yellow. The effect should be the same as entering the chunk through a comment-specific URL:
http://caesar.csail.mit.edu/chunks/view/4859#comment-12463
It should also be possible to "click away", clearing the highlighted comment and code and leaving nothing in yellow. That should also "unscroll" the page, moving the comments back up to the top. (This addresses a user comment: "when you start, the comments just sit at the top, then if you click a specific comment icon, it falls down to that, but then it never goes back to the top, unless you create a comment than cancel it.")
The click-to-select highlight should be a stronger color (of the same hue) than the highlight shown when the user merely mouses over a comment.
suppress checkstyle's magic number complaint entirely for @test methods
When a comment is highlighted by clicking on it (or on its bubble), the URL in the address bar should change to show its URL:
http://caesar.csail.mit.edu/chunks/view/4859#comment-12463
so that it can be copied and pasted.
See for example https://caesar.csail.mit.edu/chunks/view/4603
I'm guessing the click handler for the whole comment is grabbing the click event?
Need an easier way to look at psets and not be overwhelmed by the amount of tasks in the completed or to do category.
If a student has an extended deadline for psN that hasn't passed yet, then any attempt by that student to pull up a code chunk from psN should display a warning dialog telling them that their deadline will elapse if they look at the code. If they click OK, then set their deadline to right now (meaning whatever's in their SVN right now will be graded) and let them proceed to code reviewing.
" Is there a way to create a profile/bio for my username? You talked about being able to meet the students virtually, but as far as I can tell, I'd just some random person going by "coreymcc" to them"
"I found CheckStyle's comments cryptic. Especially the ones complaining about } placement. There was a "} should be on a new line" and "} should be on the same line" both referring to the same line of code."
"the CheckStyle comments worked well, but I think it would be useful to modify the comments so that they explain why something is wrong, not just that it is wrong."
the "magic number" comments were also cryptic, as were the one-line if statement complaints.
Perhaps checkstyle should include clickable hashtags in its messages (like #onelineif and #magicnumber). The hashtags could link to a page (editable by anybody with a Caesar account) that describes the meaning, pros and cons of the criticism, along with links out to the wider web. We have the start of some of these in Piazza posts; they should be captured for posterity.
should be in reverse chronological order
The all-users list needs to be sorted alphabetically by default, and by reputation as an option.
What happens if an alum registers with a username Foo that belongs to a current MIT student, and that student subsequently visits Caesar with their Foo cert?
But we also want to handle the case where we create a user account for student Bar before they log into the system.
What happens when an alum who has been using Caesar with certs graduates and loses their certs? Can they get a password for their account?
Small changes (particularly staff-provided bug fixes) in Midi.wait() [ps2] and extendDeadlineTest [ps0] caused these chunks to be selected for review. Take another look at the thresholds we're using to decide whether to rule out a chunk; consider using a threshold based on small fingerprint differences as well, not just exact matches.
From the feedback spreadsheet:
"I wish I could edit my comment for typos after it was submitted."
"It would be nice to be able to edit comments we have made. "
The system will currently try to assign all assignments if the user doesn't have enough.
The Code to Review section of the Dashboard needs a "give me more" link at the end, that assigns another round of chunks to review. Some reviewers want to review more than others; power law of participation.
User profile (e.g. http://caesar.csail.mit.edu/review/user/rcm) and all-users (http://caesar.csail.mit.edu/review/allusers/) need to display the user's full name as the title, and their username as a smaller field.
In the view-all-code mode, go to the 2nd or later file and click on a comment bubble icon. It doesn't scroll the right comment down to align with it.
Need ability to upload a photo to your profile.
Either need "student" and "teaching staff" tooltips everywhere this appears, or need to spell it out: [student], [teaching staff].
change the [all] view to allow chunk author to comment on their own code and display that as [written by code author].
Look at checkstyle's comments and find the ones that are heavily downvoted and turn them off.
Going to a comment URL (like http://cookie.csail.mit.edu/chunks/view/16#comment-7984) should not only highlight the comment and align it with its corresponding code lines [this works correctly] but should also scroll the whole browser so that the comment and its code are completely visible.
checkstyle should produce only one comment of any given type per chunk. So "magic number", "magic number", "magic number", ... should only produce the first, and the rest should be surpressed (or the end of the comment should say "and N more like this in this piece of code"). That might help the clutter.
Stats view needs to show us better info, per problem set:
Slack days: # students requesting each number of slack days (0, 1, 2, 3)
expand for detail: the actual student usernames in the 1, 2, 3 category
Submissions:
expand for detail: list of all submissions, as they would appear on code author's dashboard
Chunks: # chunks total, # with reviewers assigned, # with human comments
expand for detail: list of all chunks, as they would appear on a dashboard
Reviewers: for each user class (student, staff, other):
# reviewers total, # who have logged in and gotten assignment, # who have made progress in reviewing, # who have completed reviewing
expand each class for detail: list of reviewers with progress made
After creating a new account, the user remains on the "create account" page, and does not receive confirmation that the action succeeded. They should probably be automatically logged in and redirected to the dashboard.
Deleted comments do not disappear, they should simply say [deleted]. And the text should be kept in the database where admins can find it.
if your comment gets a reply, you should get an email
Comments & replies should be more salient than upvotes and downvotes in the activity stream on a user's profile page. Maybe user color, or font size, or show the text of upvote/downvotes in light gray. I like the last idea, actually, because it means the normal text in the activity stream represent text that the user themselves wrote, while the less-salient light text was written by someone else.
Staff needs to be able to see each student's dashboard, so that they can get to the student's reviewed submissions and see what the student sees (for helping them with technical problems).
Need a special registration URL for issuing alum invitations, that directs to a page offering either Login with MIT Certificates or a registration form. Creating an account using this URL should start the user off with 100 reputation points. The URL should have a random token in it, and that token should expire after N weeks (let's say 2 weeks).
It would also be great to ensure that only the invited alums use it, and that they don't create bogus accounts with it. How about a list of usernames and full names associated with the invitation? When the reg form is used to create an account with username, first name, and last name, we require at least one of those three fields to appear somewhere on the list. It's easy to exploit, but that's ok -- we want to prevent errors, not block people.
Code should be displayed with line-by-line attribution: vs. . Comment from Piazza:
"I got some guy lambasting me for "outsmarting the compiler" or something, and the code he was commenting on was what the program started with."
Don't need Stats view anymore; remove it.
A declarative, efficient, and flexible JavaScript library for building user interfaces.
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. ๐๐๐
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google โค๏ธ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.