Skip to content

Latest commit

 

History

History
276 lines (203 loc) · 12.5 KB

Home.rst

File metadata and controls

276 lines (203 loc) · 12.5 KB

Welcome to MarkUs

MarkUs (pronounced "mark us") is an open-source tool which recreates the ease and flexibility of grading assignments with pen on paper, within a web application. It also allows students and instructors to form groups, and collaborate on assignments. It's predecessor OLM (Online Marking) was [[originally written|https://stanley.cdf.toronto.edu/drproject/csc49x/olm]] in Python on top of the TurboGears framework.

The MarkUs project is a re-implementation of the Online Marking system using Ruby on Rails. The goal of this project is to take what we learned from OLM and our forays into [[Web-CAT|http://web-cat.cs.vt.edu/]], and build a web-based marking tool that includes an early submission and testing system in support of test driven development.

Project Resources

Screencasts

MarkUs Developer Installation Guides

GNU/Linux

  • [[Setting up a development environment on GNU/Linux|InstallationGnuLinux]]

Mac OS X

  • [[Setting up a development environment on Mac OS X 10.6 (Snow Leopard) | InstallationMacOsX]]

Windows

(Note: GNU/Linux and Mac OS X development environments generally caused less problems)

  • [[Setting up a development environment on Windows using InstantRails | InstallationWindows]]

Databases

  • [[Setting up the Database (SQLite)|SettingUpSQLite]]
  • [[Setting up the Database (MySQL)|SettingUpMySQL]]
  • [[Setting up the Database (PostgreSQL)|SettingUpPostgreSQL]]

MarkUs Developer Documentation

Project Vitals

Repository: Create a Github account and fork MarkUsProject/MarkUs (see Github help for more info).

Mailing list address: [email protected]

Mailing [[list archive at marc.info|http://marc.info/?l=markus-dev&r=1&w=2]]

Project Contributors

Adam Goucher, Alexandre Lissy, Amanda Manarin, Andrew Louis, Anthony Le Jallé, Anton Braverman, Benjamin Thorent, Benjamin Vialle, Bertan Guven, Brian Xu, Bryan Shen, Catherine Fawcett, Christian Jacques, Clément Delafargue, Clément Schiano, Danesh Dadachanji, Diane Tam, Dina Sabie, Evan Browning, Farah Juma, Fernando Garces, Gabriel Roy-Lortie, Geoffrey Flores, Horatiu Halmaghi, Ibrahim Shahin, Jérôme Gazel, Jiahui Xu, Joseph Mate, Joseph Maté, Justin Foong, Karel Kahula, Kurtis Schmidt, Mélanie Gaudet, Michael Lumbroso, Mike Conley, Mike Gunderloy, Misa Sakamoto, Neha Kumar, Nelle Varoquaux, Nicolas Carougeau, Noé Bedetti, Oloruntobi Ogunbiyi, Robert Burke, Samuel Gougeon, Severin Gehwolf, Shion Kashimura, Simon Lavigne-Giroux, Tara Clark, Valentin Roger, Veronica Wong, Victoria Mui, Victor Ivri, Vivien Suen, Yansong Zang

Supervisors: Morgan Magnin, Karen Reid

Term Work

Everything a Developer Needs to Know about Ruby, Ruby on Rails and MarkUs

  • Getting Started with Ruby, Ruby on Rails and MarkUs
  • MarkUs Coding Style/Coding Practices/Rails Gotchas
    • [[Basic Guidelines for MarkUs Development | DeveloperGuidelines]] (IMPORTANT!)
    • [[How to use Review Board | HowToReviewBoard]]
    • [[Rails erb quirks | RailsERbStyle]]
    • [[Use h (alias for html_escape) and sanitize in views | RailsViewsConventions]]
    • Please document your code according to the RDoc specification (see [[how to use RDOC | http://rdoc.sourceforge.net/doc/]])
    • Ruby compatibility: Please check ticket: #206. Also check out the [[difference between COUNT, LENGTH, and SIZE | http://blog.hasmanythrough.com/2008/2/27/count-length-size]
    • [[Our Ruby/Rails testing guidelinesi | TestingGuidelines]]
    • [[Security testing guidelines | SecurityTesting]]
    • [[Internationalization | Internationalization]]
  • MarkUs API/Test Coverage
  • MarkUs Releases
    • [[Preparing a Release and Patch | PreparingReleaseAndPatch]]
  • User Roles and Stories for MarkUs
    • General / Constraints
      • [[MarkUs is internationalized|GeneralUseCase_Internationalized]]
      • [[MarkUs is configurable|GeneralUseCase_Configurable]]
      • [[Rubrics are not allowed to change once Submissions have been collected|GeneralUseCase_NoRubricChangesAfterCollection]]
      • [[Instructor|Role_Instructor]]
        • [[Instructors can create / edit assignments|Instructor_CreateEditAssignments]]
        • [[Instructors can download/export files|Instructor_DownloadExportFiles]]
        • [[Instructors can hide students|Instructor_HideStudents]]
        • [[Instructors can do everything that Graders can do|Instructor_CanDoWhatGradersDo]]
        • [[Instructors can release/unrelease completed marking results|Instructor_ReleaseMarkingResults]]
        • [[Instructors can map particular students/groups to Grader_(s) for marking|Instructor_MapGradersToGroupings]]
        • [[Instructors can download / export a file that describes the Student /Grouping mapping to Graders|Instructor_DownloadMapGradersToGroupings]]
        • [[Instructors can upload a file that will do the Student /Grouping mapping to Graders|Instructor_UploadMapGradersToGroupings]]
        • [[Instructors can manage groups without restrictions|Instructor_ManageGroupsWithoutRestrictions]]
      • [[Grader|Role_Grader]]
        • [[Graders can easily tell which submissions are assigned to them to mark|Grader_EasyToSeeWhatToMark]]
        • [[Graders can view a Submission from a Student / Grouping|Grader_ViewSubmissions]]
        • [[Graders can view/annotate/mark a particular file from a Submission|Grader_ViewAnnotateMarkParticularFile]]
        • [[Graders can add annotations to particular lines of code within a Submission File|Grader_AnnotateLinesOfCode]]
        • [[Graders can create reusable Annotations|Grader_CreateReusableAnnotations]]
        • [[Graders can create short, formatted overall comments on a Submission|Grader_CreateOverallComment]]
        • [[Graders can view and use a Rubric for marking a Submission for an Assignment|Grader_ViewUseRubric]]
        • [[Graders can view a summary of marked submissions|Grader_ViewSummaryOfMarkedSubmissions]]
        • [[Graders can add bonuses / penalties to submissions|Grader_AddBonusesPenalties]]
        • [[Graders can modify the marking state of a submission result|Grader_CanModifyMarkingStatus]]
        • [[Graders can easily switch to the next / previous Submission for marking|Grader_CanSwitchToNextSubmission]]
      • [[Student|Role_Student]]
        • [[Students can view marks of submissions|Student_ViewMarks]]
        • [[Students can view annotations of marked submissions/assignments|Student_ViewAnnotations]]
        • [[Students can submit files for their assignments|Student_SubmitFiles]]
        • [[Students can view/edit submission files for assignments|Student_ViewEditFiles]]
  • Database Schema
    • AutoGenerate Database Schema
      • [[View Schema Diagram|images/database_20101001.png]]
    • [[Questions and Answers (Old Document) | SchemaQuestions]]
  • MarkUs Component Descriptions
    • [[Group / Grouping Behaviours | GroupsGrouping]]
    • [[Groupings and Repositories | GroupsGroupingsRepositories]]
    • [[Authentication and Authorization | Authentication]]
    • [[Annotations | Annotations]]
    • [[How Student Work is Graded | HowGradingWorks]]
    • [[Submission Rules | SubmissionRules]]
    • [[The FilterTable Class | FilterTable]]
    • [[Simple Grade Entry | SimpleGradeEntry]]
    • [[Notes System | NotesSystem]]
  • Feedback Notes
    • [[2009-05-22: Phyliss | PhylissFeedback]]
    • [[2009-06-22: Ryan | RyanFeedback]]
  • Tips and Trick
    • [[Dropping/Rebuilding Database Quickly and Easily | DropAndRebuildDb]]
  • IDE/Editor Notes
    • [[jEdit | JEdit]]
    • [[NetBeans | NetBeans]]
    • [[Aptana RadRails / Eclipse | AptanaRadRails]]

MarkUs Deployment Documents (Installation Instructions for MarkUs using RAILS_ENV=production)

  • [[Setup Instructions for MarkUs Stable (MarkUs 0.10.0)|InstallProdStable]]
  • [[Hosting several MarkUs applications on one machine (for Production)|MultipleHosting]]
  • [[How to use LDAP with MarkUs|LDAP]]
  • [[How to use Phusion Passenger instead of Mongrel|ApachePassenger]]
  • [[Old Setup Instructions for MarkUs Stable (MarkUs 0.5, 0.6, 0.7 and 0.8 branches)|InstallProdOld]]

For a complete list of local wiki pages, see [[TitleIndex|http://github.com/MarkUsProject/Markus/wiki/_pages]].