nbgrader

A system for assigning and grading notebooks

https://github.com/jupyter/nbgrader

Science Score: 49.0%

This score indicates how likely this project is to be science-related based on various indicators:

  • CITATION.cff file
  • codemeta.json file
    Found codemeta.json file
  • .zenodo.json file
    Found .zenodo.json file
  • DOI references
    Found 3 DOI reference(s) in README
  • Academic publication links
  • Committers with academic emails
    24 of 107 committers (22.4%) from academic institutions
  • Institutional organization owner
  • JOSS paper metadata
  • Scientific vocabulary similarity
    Low similarity (13.1%) to scientific vocabulary

Keywords

grading jupyter jupyter-notebook jupyterhub nbgrader teaching

Keywords from Contributors

alignment computer-algebra qt flexible numerical mesh wx tk gtk mpi
Last synced: 6 months ago · JSON representation

Repository

A system for assigning and grading notebooks

Basic Info
Statistics
  • Stars: 1,343
  • Watchers: 39
  • Forks: 327
  • Open Issues: 281
  • Releases: 38
Topics
grading jupyter jupyter-notebook jupyterhub nbgrader teaching
Created over 11 years ago · Last pushed 10 months ago
Metadata Files
Readme Changelog Contributing License Codemeta

README.md

nbgrader

Build: Build Forum: Google Group Cite: DOI

A system for assigning and grading Jupyter notebooks.

Documentation can be found on Read the Docs.

Highlights of nbgrader

Instructor toolbar extension for Jupyter notebooks

The nbgrader toolbar extension for Jupyter notebooks guides the instructor through assignment and grading tasks using the familiar Jupyter notebook interface.

Creating assignment

Instructor "formgrader" extension for Jupyter notebooks

The formgrader extension for the Jupyter notebook allows instructors to use the core functionality of nbgrader---generating the student version of an assignment, releasing assignments to students, collecting assignments, autograding submissions, and manually grading submissions.

Formgrader extension

Student assignment list extension for Jupyter notebooks

Using the assignment list extension, students may conveniently view, fetch, submit, and validate their assignments.

nbgrader assignment list

The command line tools of nbgrader

Command line tools offer an efficient way for the instructor to generate, assign, release, collect, and grade notebooks.

SciPy 2017 overview talk (click to view on YouTube)

nbgrader: A Tool for Creating and Grading Assignments in the Jupyter Notebook | SciPy 2017

Installation

For detailed instructions on installing nbgrader and the nbgrader extensions for Jupyter notebook, please see Installation section in the User Guide.

Contributing

Please see the contributing guidelines and documentation.

If you want to develop features for nbgrader, please follow the development installation instructions.

Owner

  • Name: Project Jupyter
  • Login: jupyter
  • Kind: organization
  • Email: jupyter@googlegroups.com
  • Location: The Future

Interactive Computing

CodeMeta (codemeta.json)

{
  "@context": "https://raw.githubusercontent.com/codemeta/codemeta/master/codemeta.jsonld",
  "@type": "Code",
  "author": [
    {
      "@type": "Organization",
      "name": "Project Jupyter"
    },
    {
      "@id": "https://orcid.org/0000-0003-3538-8829",
      "@type": "Person",
      "email": "dblank@brynmawr.edu",
      "name": "Douglas Blank",
      "affiliation": "Bryn Mawr College"
    },
    {
      "@id": "https://orcid.org/0000-0003-1039-6195",
      "@type": "Person",
      "email": "ddbourgin@berkeley.edu",
      "name": "David Bourgin",
      "affiliation": "University of California, Berkeley"
    },
    {
      "@id": "https://orcid.org/0000-0002-3945-7337",
      "@type": "Person",
      "email": "brownaa@lafayette.edu",
      "name": "Alexander Brown",
      "affiliation": "Lafayette College"
    },
    {
      "@id": "https://orcid.org/0000-0002-7636-8632",
      "@type": "Person",
      "email": "bussonniermatthias@gmail.com",
      "name": "Matthias Bussonnier",
      "affiliation": "University of California, Berkeley"
    },
    {
      "@id": "https://orcid.org/0000-0003-4805-2216",
      "@type": "Person",
      "email": "jfrederic@google.com",
      "name": "Jonathan Frederic",
      "affiliation": "Google Inc."
    },
    {
      "@id": "https://orcid.org/0000-0002-5223-6168",
      "@type": "Person",
      "email": "bgranger@calpoly.edu",
      "name": "Brian E. Granger",
      "affiliation": "Cal Poly, San Luis Obispo"
    },
    {
      "@id": "https://orcid.org/0000-0002-5138-7255",
      "@type": "Person",
      "email": "tom_griffiths@berkeley.edu",
      "name": "Thomas L. Griffiths",
      "affiliation": "University of California, Berkeley"
    },
    {
      "@id": "https://orcid.org/0000-0002-3860-0429",
      "@type": "Person",
      "email": "jessica.b.hamrick@gmail.com",
      "name": "Jessica B. Hamrick",
      "affiliation": "DeepMind"
    },
    {
      "@id": "https://orcid.org/0000-0002-4281-9351",
      "@type": "Person",
      "email": "rgbkrk@gmail.com",
      "name": "Kyle Kelley",
      "affiliation": "Netflix, Inc."
    },
    {
      "@id": "https://orcid.org/0000-0002-6680-2941",
      "@type": "Person",
      "email": "mpacer.phd@gmail.com",
      "name": "M Pacer",
      "affiliation": "Netflix, Inc."
    },
    {
      "@id": "https://orcid.org/0000-0002-5799-8524",
      "@type": "Person",
      "email": "page.lg@gmail.com",
      "name": "Logan Page",
      "affiliation": "University of Pretoria"
    },
    {
      "@id": "http://orcid.org/0000-0002-1725-9815",
      "@type": "Person",
      "email": "Fernando.Perez@berkeley.edu",
      "name": "Fernando Prez",
      "affiliation": "University of California, Berkeley"
    },
    {
      "@id": "https://orcid.org/0000-0002-1023-7082",
      "@type": "Person",
      "email": "benjaminrk@gmail.com",
      "name": "Benjamin Ragan-Kelley",
      "affiliation": "Simula Research Laboratory"
    },
    {
      "@id": "https://orcid.org/0000-0001-9848-4872",
      "@type": "Person",
      "email": "suchow@berkeley.edu",
      "name": "Jordan W. Suchow",
      "affiliation": "University of California, Berkeley"
    },
    {
      "@id": "https://orcid.org/0000-0002-9817-8485",
      "@type": "Person",
      "email": "willingc@gmail.com",
      "name": "Carol Willing",
      "affiliation": "Cal Poly, San Luis Obispo"
    }
  ],
  "identifier": "",
  "codeRepository": "https://github.com/jupyter/nbgrader",
  "datePublished": "2018-06-02",
  "dateModified": "2018-06-02",
  "dateCreated": "2014-09-13",
  "description": "A system for assigning and grading Jupyter notebooks",
  "keywords": "jupyter, jupyterhub, grading, autograding",
  "license": "Modified BSD",
  "title": "nbgrader",
  "version": "v0.6.0-dev"
}

GitHub Events

Total
  • Create event: 8
  • Release event: 2
  • Issues event: 23
  • Watch event: 53
  • Delete event: 8
  • Issue comment event: 87
  • Push event: 19
  • Pull request event: 31
  • Pull request review event: 13
  • Pull request review comment event: 9
  • Fork event: 10
Last Year
  • Create event: 8
  • Release event: 2
  • Issues event: 23
  • Watch event: 53
  • Delete event: 8
  • Issue comment event: 87
  • Push event: 19
  • Pull request event: 31
  • Pull request review event: 13
  • Pull request review comment event: 9
  • Fork event: 10

Committers

Last synced: 9 months ago

All Time
  • Total Commits: 2,714
  • Total Committers: 107
  • Avg Commits per committer: 25.364
  • Development Distribution Score (DDS): 0.436
Past Year
  • Commits: 29
  • Committers: 9
  • Avg Commits per committer: 3.222
  • Development Distribution Score (DDS): 0.552
Top Committers
Name Email Commits
Jessica B. Hamrick j****k@b****u 1,530
Logan Page p****g@g****m 153
Nicolas Brichet n****t@i****r 106
Nicolas Brichet n****t@q****t 77
Daniel Maitre d****e@d****k 77
Richard Darst r****d@z****t 56
dependabot[bot] 4****] 45
Sigurdur s****4@g****m 40
Lawrence Lee b****e@u****u 39
Carol Willing c****e@w****m 38
Matthias Bussonnier b****s@g****m 32
Bert Robberechts b****s@e****k 30
Jonathan Frederic j****r@c****u 26
Brian E. Granger e****g@g****m 24
Doug Blank d****k@g****m 23
Andrea Zonca c****e@a****m 20
M Pacer m****r@b****u 19
Steven Silvester s****r@i****g 17
aalmanza1998 a****a@u****u 17
Logan Page L****e@u****a 16
Nicolas M. Thiéry n****y@u****t 15
Local Administrator l****n@c****u 13
tuncbkose 4****e 13
Tim Metzler t****r@h****e 13
Ludvig Kihlman l****n@e****k 12
ruin i****2@g****m 12
李宵逸 1****0@1****m 11
alope107 a****z@g****m 11
Karen Cranston k****n@g****m 11
GitHub Action 4****] 10
and 77 more...

Issues and Pull Requests

Last synced: 6 months ago

All Time
  • Total issues: 147
  • Total pull requests: 149
  • Average time to close issues: 9 months
  • Average time to close pull requests: about 2 months
  • Total issue authors: 89
  • Total pull request authors: 21
  • Average comments per issue: 3.3
  • Average comments per pull request: 3.04
  • Merged pull requests: 94
  • Bot issues: 0
  • Bot pull requests: 44
Past Year
  • Issues: 19
  • Pull requests: 33
  • Average time to close issues: about 1 month
  • Average time to close pull requests: 13 days
  • Issue authors: 19
  • Pull request authors: 5
  • Average comments per issue: 0.89
  • Average comments per pull request: 2.12
  • Merged pull requests: 23
  • Bot issues: 0
  • Bot pull requests: 12
Top Authors
Issue Authors
  • perllaghu (11)
  • lahwaacz (6)
  • major-project-1921 (5)
  • trevorcampbell (5)
  • Adamtaranto (5)
  • bpfrd (5)
  • ykazakov (4)
  • brichet (4)
  • christina-seegers (3)
  • whositwhatnow (3)
  • jeflem (3)
  • clhedrick (3)
  • szazs89 (2)
  • adarshverma19 (2)
  • goekce (2)
Pull Request Authors
  • brichet (52)
  • dependabot[bot] (49)
  • tuncbkose (16)
  • shreve (14)
  • meeseeksmachine (6)
  • KrKOo (5)
  • AlirezaT99 (5)
  • lahwaacz (4)
  • trevorcampbell (4)
  • perllaghu (3)
  • jeflem (3)
  • Alireza-Iranpour (2)
  • sydfromm (2)
  • franswel (2)
  • ZiadAmerr (2)
Top Labels
Issue Labels
bug (27) enhancement (14) question (14) documentation (6) needs info (6) maintenance (5) important (4) good first issue (2) duplicate (1) UX/UI (1) dependencies (1)
Pull Request Labels
maintenance (91) dependencies (62) bug (35) javascript (34) bugfix (34) enhancement (26) documentation (7) needs review (3) needs work (2) important (2) Still Needs Manual Backport (1) needs info (1)

Packages

  • Total packages: 6
  • Total downloads:
    • pypi 10,714 last-month
    • npm 14 last-month
  • Total docker downloads: 4,707
  • Total dependent packages: 7
    (may contain duplicates)
  • Total dependent repositories: 113
    (may contain duplicates)
  • Total versions: 103
  • Total maintainers: 16
  • Total advisories: 1
pypi.org: nbgrader

A system for assigning and grading notebooks

  • Homepage: https://github.com/jupyter/nbgrader
  • Documentation: https://nbgrader.readthedocs.io/
  • License: Copyright (c) 2014 Project Jupyter Contributors All rights reserved. Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met: 1. Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer. 2. Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution. 3. Neither the name of the copyright holder nor the names of its contributors may be used to endorse or promote products derived from this software without specific prior written permission. THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
  • Latest release: 0.9.5
    published about 1 year ago
  • Versions: 43
  • Dependent Packages: 5
  • Dependent Repositories: 91
  • Downloads: 10,714 Last month
  • Docker Downloads: 1,239
Rankings
Dependent repos count: 1.5%
Dependent packages count: 1.6%
Stargazers count: 1.9%
Docker downloads count: 2.0%
Average: 2.1%
Forks count: 2.9%
Downloads: 2.9%
Last synced: 7 months ago
proxy.golang.org: github.com/jupyter/nbgrader
  • Versions: 33
  • Dependent Packages: 0
  • Dependent Repositories: 0
Rankings
Dependent packages count: 6.5%
Average: 6.7%
Dependent repos count: 7.0%
Last synced: 7 months ago
npmjs.org: nbgrader

nbgrader nodejs dependencies

  • Versions: 14
  • Dependent Packages: 1
  • Dependent Repositories: 1
  • Downloads: 4 Last month
  • Docker Downloads: 3,468
Rankings
Docker downloads count: 1.1%
Forks count: 2.0%
Stargazers count: 2.3%
Average: 7.5%
Downloads: 7.7%
Dependent repos count: 10.8%
Dependent packages count: 21.3%
Maintainers (2)
Last synced: 7 months ago
conda-forge.org: nbgrader
  • Versions: 8
  • Dependent Packages: 1
  • Dependent Repositories: 10
Rankings
Forks count: 9.6%
Dependent repos count: 11.0%
Stargazers count: 11.6%
Average: 15.3%
Dependent packages count: 28.9%
Last synced: 7 months ago
npmjs.org: @jupyter/nbgrader

nbgrader nodejs dependencies

  • Versions: 3
  • Dependent Packages: 0
  • Dependent Repositories: 0
  • Downloads: 10 Last month
Rankings
Downloads: 12.7%
Average: 27.0%
Dependent repos count: 27.8%
Dependent packages count: 40.4%
Last synced: 7 months ago
anaconda.org: nbgrader

nbgrader is a tool that facilitates creating and grading assignments in the Jupyter notebook. It allows instructors to easily create notebook-based assignments that include both coding exercises and written free-responses. nbgrader then also provides a streamlined interface for quickly grading completed assignments.

  • Versions: 2
  • Dependent Packages: 0
  • Dependent Repositories: 11
Rankings
Forks count: 18.8%
Stargazers count: 21.3%
Average: 32.2%
Dependent repos count: 37.5%
Dependent packages count: 51.2%
Last synced: 7 months ago

Dependencies

.github/workflows/binder.yaml actions
  • jupyterlab/maintainer-tools/.github/actions/binder-link v1 composite
.github/workflows/check-release.yml actions
  • actions/checkout v2 composite
  • actions/upload-artifact v2 composite
  • jupyter-server/jupyter_releaser/.github/actions/check-links v1 composite
  • jupyter-server/jupyter_releaser/.github/actions/check-release v1 composite
  • jupyterlab/maintainer-tools/.github/actions/base-setup v1 composite
.github/workflows/enforce-label.yml actions
  • jupyterlab/maintainer-tools/.github/actions/enforce-label v1 composite
.github/workflows/test-docs-python-nbextensions.yml actions
  • actions/checkout v2 composite
  • actions/setup-node v1 composite
  • actions/setup-python v2 composite
  • jupyterlab/maintainer-tools/.github/actions/base-setup v1 composite
  • jupyterlab/maintainer-tools/.github/actions/make-sdist v1 composite
  • jupyterlab/maintainer-tools/.github/actions/test-sdist v1 composite
.github/workflows/test-labextensions.yml actions
  • actions/checkout v2 composite
  • actions/setup-node v1 composite
  • actions/setup-python v2 composite
  • actions/upload-artifact v2 composite
bower.json bower
  • autosize jackmoore/autosize#~3.0.8
  • backbone components/backbone#~1.1.2
  • bootstrap components/bootstrap#~3.3
  • datatables.net ~2.1.1
  • datatables.net-bs ~2.1.1
  • jquery components/jquery#~2.1.1
  • jquery-color jquery/jquery-color#~2.1.2
  • underscore components/underscore#~1.7
nbgrader/server_extensions/formgrader/static/components/backbone/bower.json bower
  • jquery ~2.0.3
  • underscore ~1.5.0
nbgrader/server_extensions/formgrader/static/components/bootstrap/bower.json bower
  • jquery >=1.9.1
nbgrader/server_extensions/formgrader/static/components/datatables.net/bower.json bower
  • jquery >=1.7
nbgrader/server_extensions/formgrader/static/components/datatables.net-bs/bower.json bower
  • datatables.net >=1.10.9
  • jquery >=1.7
demos/Dockerfile docker
  • ubuntu 22.04 build
nbgrader/server_extensions/formgrader/static/components/autosize/package.json npm
  • babel ^5.4.3 development
  • gaze ^0.5.1 development
  • jshint ^2.5.6 development
  • uglify-js ^2.4.22 development
nbgrader/server_extensions/formgrader/static/components/backbone/package.json npm
  • underscore >=1.4.3
nbgrader/server_extensions/formgrader/static/components/jquery-color/package.json npm
  • grunt ~0.3.17 development
  • grunt-compare-size >=0.1.4 development
  • grunt-git-authors 1.0.0 development
  • testswarm 0.2.2 development
package.json npm
  • @jupyterlab/builder ^3.3.3 development
  • @jupyterlab/galata ^4.2.4 development
  • @playwright/test ^1.21.1 development
  • @typescript-eslint/eslint-plugin ^4.8.1 development
  • @typescript-eslint/parser ^4.8.1 development
  • bower * development
  • eslint ^7.14.0 development
  • eslint-config-prettier ^6.15.0 development
  • eslint-plugin-prettier ^3.1.4 development
  • mkdirp ^1.0.3 development
  • npm-run-all ^4.1.5 development
  • prettier ^2.1.1 development
  • rimraf ^3.0.2 development
  • stylelint ^14.3.0 development
  • stylelint-config-prettier ^9.0.3 development
  • stylelint-config-recommended ^6.0.0 development
  • stylelint-config-standard ~24.0.0 development
  • stylelint-prettier ^2.0.0 development
  • typescript ~4.1.3 development
  • @jupyterlab/application ^3.1.0
  • @jupyterlab/apputils ^3.1.0
  • @jupyterlab/cells ^3.3.3
  • @jupyterlab/coreutils ^5.1.0
  • @jupyterlab/launcher ^3.4.2
  • @jupyterlab/notebook ^3.3.3
  • @jupyterlab/services ^6.1.0
  • @jupyterlab/settingregistry ^3.1.0
yarn.lock npm
  • 1029 dependencies
nbgrader/server_extensions/formgrader/static/components/backbone/composer.json packagist
  • components/underscore >=1.4.3