Sorry, JavaScript is required for most features of this site.
Code Contribution Guidelines
  1. All code, Java and JavaScript, must be cleaned up, indented and formatted using Eclipse defaults.
    1. This is not because it is the best style, but because it is easy for contributers to be consistent.
    2. JavaScript must not have any JSHint warnings using the CrushPaper JSHint configuration.
  2. All code requires heavy commenting.
    1. Every class and method must be commented with Javadoc.
    2. Each complex code section of code must be commented.
    3. Comments must focus on what is being done, why it is being done, why it is being done the way that it is, and in what circumstances it should be done.
  3. All changes require significant Unit Test coverage, with both positive and negative tests.
    1. Currently UI and HTTP interface code is exempt from this because it changes frequently.
  4. If any manual tests are required the Testing Strategy documentation must be updated to include them.
  5. If the change is visible or meaningful to users the documentation must be updated.
  6. Copyright of all code additions to the code base must be assigned to
    1. The GNU FSF also encourages this.
    2. Of course, anyone is free to maintain their own fork of the code with changes for which they do not assign the copyright to CrushPaper.
    3. One reason why contributors are asked to assign the copyright of their contribution is that copyright can be enforced only by the copyright holder.
    4. Another is so that potentially in the future can make money from the software similar to how companies such as Neo4j dual license their software under both the GPL and an enterprise license. Hopefully it would benefit all CrushPaper users if CrushPaper contributors are able to make money from CrushPaper.
    5. Contributors are responsible for ensuring that their employer or school has disclaimed copyright to the contributor's contribution.

Try CrushPaper for free without creating an account!

Or watch the Demo Movie