{"id":21916,"date":"2013-02-12T04:11:18","date_gmt":"2013-02-12T04:11:18","guid":{"rendered":"https:\/\/wordpress.org\/plugins-wp\/an-gradebook\/"},"modified":"2026-03-05T19:06:57","modified_gmt":"2026-03-05T19:06:57","slug":"an-gradebook","status":"publish","type":"plugin","link":"https:\/\/kea.wordpress.org\/plugins\/an-gradebook\/","author":9590880,"comment_status":"closed","ping_status":"closed","template":"","meta":{"_crdt_document":"","version":"6.5.3","stable_tag":"6.5.3","tested":"6.9.4","requires":"6.0","requires_php":"7.4","requires_plugins":null,"header_name":"GradeBook","header_author":"Aori Nevo","header_description":"","assets_banners_color":"d1d4d6","last_updated":"2026-03-05 19:06:57","external_support_url":"","external_repository_url":"","donate_link":"","header_plugin_uri":"https:\/\/wordpress.org\/plugins\/an-gradebook\/","header_author_uri":"http:\/\/www.aorinevo.com","rating":5,"author_block_rating":0,"active_installs":10,"downloads":9970,"num_ratings":0,"support_threads":0,"support_threads_resolved":0,"author_block_count":0,"sections":["description","installation","faq","changelog"],"tags":{"3.5":{"tag":"3.5","author":"anevo","date":"2015-03-05 16:35:35"},"3.5.1":{"tag":"3.5.1","author":"anevo","date":"2015-03-05 17:18:11"},"3.5.2":{"tag":"3.5.2","author":"anevo","date":"2015-03-07 01:26:09"},"3.5.3":{"tag":"3.5.3","author":"anevo","date":"2015-03-10 21:22:05"},"3.5.4":{"tag":"3.5.4","author":"anevo","date":"2015-03-11 23:29:22"},"3.5.5":{"tag":"3.5.5","author":"anevo","date":"2015-03-13 18:20:55"},"3.5.6":{"tag":"3.5.6","author":"anevo","date":"2015-03-24 01:35:26"},"3.5.7":{"tag":"3.5.7","author":"anevo","date":"2015-03-25 15:25:20"},"4.0":{"tag":"4.0","author":"anevo","date":"2015-10-28 02:20:35"},"4.0.1":{"tag":"4.0.1","author":"anevo","date":"2015-10-31 00:44:30"},"4.0.10":{"tag":"4.0.10","author":"anevo","date":"2016-05-20 13:02:19"},"4.0.11":{"tag":"4.0.11","author":"anevo","date":"2016-08-14 21:16:21"},"4.0.2":{"tag":"4.0.2","author":"anevo","date":"2015-11-07 17:15:52"},"4.0.3":{"tag":"4.0.3","author":"anevo","date":"2015-11-08 20:01:59"},"4.0.4":{"tag":"4.0.4","author":"anevo","date":"2015-11-09 00:04:31"},"4.0.5":{"tag":"4.0.5","author":"anevo","date":"2015-11-22 02:36:22"},"4.0.6":{"tag":"4.0.6","author":"anevo","date":"2015-11-29 06:28:55"},"4.0.7":{"tag":"4.0.7","author":"anevo","date":"2015-12-02 05:30:57"},"4.0.8":{"tag":"4.0.8","author":"anevo","date":"2016-05-20 03:57:02"},"4.0.9":{"tag":"4.0.9","author":"anevo","date":"2016-05-20 04:32:51"},"5.0.1":{"tag":"5.0.1","author":"anevo","date":"2020-08-04 04:02:26"},"6.0.0":{"tag":"6.0.0","author":"anevo","date":"2026-02-22 18:45:27"},"6.0.2":{"tag":"6.0.2","author":"anevo","date":"2026-02-22 19:32:28"},"6.2.0":{"tag":"6.2.0","author":"anevo","date":"2026-02-22 20:11:19"},"6.3.0":{"tag":"6.3.0","author":"anevo","date":"2026-02-22 21:08:42"},"6.4.0":{"tag":"6.4.0","author":"anevo","date":"2026-02-23 01:30:00"},"6.4.1":{"tag":"6.4.1","author":"anevo","date":"2026-02-23 03:42:36"},"6.5.0":{"tag":"6.5.0","author":"anevo","date":"2026-02-23 23:17:41"},"6.5.1":{"tag":"6.5.1","author":"anevo","date":"2026-02-27 21:25:15"},"6.5.3":{"tag":"6.5.3","author":"anevo","date":"2026-03-05 19:06:57"}},"upgrade_notice":{"6.0.0":"<p>Breaking change: Legacy database migrations have been removed. If upgrading from a version older than 4.0.0, deactivate the plugin, delete the <code>an_gradebook_db_version<\/code> row from <code>wp_options<\/code>, then reactivate. This performs a fresh database setup. Existing data in pre-4.0 unprefixed tables will not be migrated automatically.<\/p>","4.0.0":"<p>Major compatibility update. Database tables now use WordPress table prefixes. All AJAX endpoints are secured with nonces. Requires WordPress 6.0+ and PHP 7.4+.<\/p>"},"ratings":{"1":0,"2":0,"3":0,"4":0,"5":9},"assets_icons":{"icon-128x128.png":{"filename":"icon-128x128.png","revision":3467047,"resolution":"128x128","location":"assets","locale":""},"icon-256x256.png":{"filename":"icon-256x256.png","revision":3467047,"resolution":"256x256","location":"assets","locale":""},"icon.svg":{"filename":"icon.svg","revision":3467047,"resolution":false,"location":"assets","locale":false}},"assets_banners":{"banner-772x250.png":{"filename":"banner-772x250.png","revision":3467047,"resolution":"772x250","location":"assets","locale":""}},"assets_blueprints":{},"all_blocks":[],"tagged_versions":["3.5","3.5.1","3.5.2","3.5.3","3.5.4","3.5.5","3.5.6","3.5.7","4.0","4.0.1","4.0.10","4.0.11","4.0.2","4.0.3","4.0.4","4.0.5","4.0.6","4.0.7","4.0.8","4.0.9","5.0.1","6.0.0","6.0.2","6.2.0","6.3.0","6.4.0","6.4.1","6.5.0","6.5.1","6.5.3"],"block_files":[],"assets_screenshots":{"screenshot-1.png":{"filename":"screenshot-1.png","revision":3467047,"resolution":"1","location":"assets","locale":""},"screenshot-2.png":{"filename":"screenshot-2.png","revision":3467047,"resolution":"2","location":"assets","locale":""},"screenshot-3.png":{"filename":"screenshot-3.png","revision":3467047,"resolution":"3","location":"assets","locale":""},"screenshot-4.png":{"filename":"screenshot-4.png","revision":3467047,"resolution":"4","location":"assets","locale":""}},"screenshots":{"1":"GradeBook with a few courses.","2":"GradeBook with a course selected and corresponding students displayed.","3":"Line chart for a particular student.","4":"Pie chart for a particular assignment.","5":"Add course modal.","6":"Student view of GradeBook.","7":"Student view of assignment details."},"jetpack_post_was_ever_published":false},"plugin_section":[],"plugin_tags":[7152,5298,7151,4047,17659],"plugin_category":[47],"plugin_contributors":[90349],"plugin_business_model":[],"class_list":["post-21916","plugin","type-plugin","status-publish","hentry","plugin_tags-course-management","plugin_tags-education","plugin_tags-gradebook","plugin_tags-grades","plugin_tags-students","plugin_category-education-and-support","plugin_contributors-anevo","plugin_committers-anevo"],"banners":{"banner":"https:\/\/ps.w.org\/an-gradebook\/assets\/banner-772x250.png?rev=3467047","banner_2x":false,"banner_rtl":false,"banner_2x_rtl":false},"icons":{"svg":"https:\/\/ps.w.org\/an-gradebook\/assets\/icon.svg?rev=3467047","icon":"https:\/\/ps.w.org\/an-gradebook\/assets\/icon.svg?rev=3467047","icon_2x":false,"generated":false},"screenshots":[{"src":"https:\/\/ps.w.org\/an-gradebook\/assets\/screenshot-1.png?rev=3467047","caption":"GradeBook with a few courses."},{"src":"https:\/\/ps.w.org\/an-gradebook\/assets\/screenshot-2.png?rev=3467047","caption":"GradeBook with a course selected and corresponding students displayed."},{"src":"https:\/\/ps.w.org\/an-gradebook\/assets\/screenshot-3.png?rev=3467047","caption":"Line chart for a particular student."},{"src":"https:\/\/ps.w.org\/an-gradebook\/assets\/screenshot-4.png?rev=3467047","caption":"Pie chart for a particular assignment."}],"raw_content":"<!--section=description-->\n<p>GradeBook allows educators to manage courses, students, assignments, and grades directly from the WordPress dashboard.<\/p>\n\n<p><strong>Instructor Features:<\/strong><\/p>\n\n<ul>\n<li>Create, edit, and delete courses<\/li>\n<li>Add, edit, and remove students (new users or existing WordPress users)<\/li>\n<li>Create, edit, delete, and reorder assignments<\/li>\n<li>Edit grade cells inline<\/li>\n<li>Filter assignments by category and toggle visibility<\/li>\n<li>Sort by assignment columns<\/li>\n<li>Export gradebook data to CSV<\/li>\n<li>View student and assignment statistics with interactive charts<\/li>\n<\/ul>\n\n<p><strong>Student Features:<\/strong><\/p>\n\n<ul>\n<li>View enrolled courses and grades<\/li>\n<li>View assignment details including due dates<\/li>\n<li>View performance statistics with pie charts and line graphs<\/li>\n<\/ul>\n\n<h3>Credits<\/h3>\n\n<ul>\n<li>Plugin icon: <a href=\"https:\/\/www.iconfinder.com\/icons\/175285\/edit_property_icon#size=256\">IconFinder<\/a><\/li>\n<\/ul>\n\n<!--section=installation-->\n<ol>\n<li>Upload the <code>an-gradebook<\/code> folder to the <code>\/wp-content\/plugins\/<\/code> directory, or install directly through the WordPress plugin screen.<\/li>\n<li>Activate the plugin through the 'Plugins' screen in WordPress.<\/li>\n<li>A new menu item labeled \"GradeBook\" will appear in the admin dashboard.<\/li>\n<\/ol>\n\n<!--section=faq-->\n<dl>\n<dt id=\"how%20are%20student%20accounts%20created%3F\"><h3>How are student accounts created?<\/h3><\/dt>\n<dd><p>When adding a student who is not already a WordPress user, a new user account is created automatically. The username is set to the first initial of their first name concatenated with their last name and a string of digits (all lowercase). A random password is generated.<\/p><\/dd>\n<dt id=\"can%20i%20add%20existing%20wordpress%20users%20as%20students%3F\"><h3>Can I add existing WordPress users as students?<\/h3><\/dt>\n<dd><p>Yes. Enter the user's existing username (user_login) when adding a student. If the username exists in the database, the user is added to the gradebook without changing their credentials.<\/p><\/dd>\n<dt id=\"how%20do%20students%20view%20their%20grades%3F\"><h3>How do students view their grades?<\/h3><\/dt>\n<dd><p>Students log in to WordPress and navigate to the GradeBook menu item. They will see only their own grades for courses they are enrolled in.<\/p><\/dd>\n\n<\/dl>\n\n<!--section=changelog-->\n<h4>6.5.3<\/h4>\n\n<ul>\n<li>version input on deploy workflow<\/li>\n<\/ul>\n\n<h4>6.5.2<\/h4>\n\n<ul>\n<li>address early esc output<\/li>\n<\/ul>\n\n<h4>6.5.1<\/h4>\n\n<ul>\n<li>apply late escaping at REST API output points<\/li>\n<\/ul>\n\n<h4>6.5.0<\/h4>\n\n<ul>\n<li>add typescript, linting, kebab-case<\/li>\n<\/ul>\n\n<h4>6.4.1<\/h4>\n\n<ul>\n<li>address security vuls<\/li>\n<\/ul>\n\n<h4>6.4.0<\/h4>\n\n<ul>\n<li>replace backbonejs with react<\/li>\n<\/ul>\n\n<h4>6.3.0<\/h4>\n\n<ul>\n<li>move assets to git version control<\/li>\n<\/ul>\n\n<h4>6.2.0<\/h4>\n\n<ul>\n<li>manual deploy<\/li>\n<\/ul>\n\n<h4>6.1.0<\/h4>\n\n<ul>\n<li>escape perl capture group refs in bump-version.sh<\/li>\n<li>replace sed with perl in update-readme-changelog.sh<\/li>\n<li>sed command json parsing issue<\/li>\n<li>sed command json parsing issue<\/li>\n<li>add semantic-release<\/li>\n<\/ul>\n\n<h4>4.0.0<\/h4>\n\n<ul>\n<li>Compatibility update for WordPress 6.0+ and PHP 7.4\u20138.3.<\/li>\n<li>Security: Added nonce verification to all AJAX endpoints.<\/li>\n<li>Security: All database queries now use prepared statements.<\/li>\n<li>Security: All user inputs are sanitized and outputs are escaped.<\/li>\n<li>Security: Added capability checks to all admin endpoints.<\/li>\n<li>Database tables now use the WordPress table prefix for multisite compatibility.<\/li>\n<li>Replaced RequireJS module loading with WordPress script enqueue system.<\/li>\n<li>Uses WordPress-bundled jQuery, Backbone, and Underscore instead of bundled copies.<\/li>\n<li>Updated Google Charts integration to modern API.<\/li>\n<li>Added internationalization (i18n) support.<\/li>\n<li>Removed hardcoded default password for new student accounts; random passwords are now generated.<\/li>\n<li>Fixed PHP 8.x deprecation warnings and potential errors.<\/li>\n<li>Fixed undefined variable bugs in course and student creation.<\/li>\n<li>Meets WordPress.org plugin directory coding standards.<\/li>\n<\/ul>\n\n<h4>3.5.7<\/h4>\n\n<ul>\n<li>Bug Fix: On course delete, gradebook would empty its views. Reclicking the course rerendered the gradebook correctly.<\/li>\n<li>Minified the app into two essential files.<\/li>\n<li>Added a debugging toggle in GradeBook.php.<\/li>\n<li>Slight change to views. Rounded corners are now sharp.<\/li>\n<\/ul>\n\n<h4>3.5.6<\/h4>\n\n<ul>\n<li>Database upgrade: Users no longer in the database are removed from gradebooks.<\/li>\n<li>Use RequireJS to manage file loading for the app.<\/li>\n<li>Bug Fix: Adding a student already in the database using their user_login would show an empty user_login cell until page refresh.<\/li>\n<\/ul>\n\n<h4>3.5.5<\/h4>\n\n<ul>\n<li>Bug fix: Sort on first assignment column broken.<\/li>\n<li>General file management.<\/li>\n<\/ul>\n\n<h4>3.5.4<\/h4>\n\n<ul>\n<li>New Feature: Choose which assignments are visible to students via the edit assignment modal.<\/li>\n<\/ul>\n\n<h4>3.5.3<\/h4>\n\n<ul>\n<li>Update and clean forms.<\/li>\n<li>Bug fix: Adding a student to a filtered gradebook caused hidden assignment cells to appear.<\/li>\n<li>CSV filename is derived from the course name and id.<\/li>\n<\/ul>\n\n<h4>3.5.2<\/h4>\n\n<ul>\n<li>Added details view on student side. Students can now view due dates.<\/li>\n<\/ul>\n\n<h4>3.5.1<\/h4>\n\n<ul>\n<li>Fixed bug on student view where the gradebook would not display.<\/li>\n<\/ul>\n\n<h4>3.5<\/h4>\n\n<ul>\n<li>Updated delete student modal styling.<\/li>\n<li>Added dropdown tools menu for courses.<\/li>\n<li>Fixed styling conflict with WordPress #adminmenuback.<\/li>\n<li>New Feature: Export GradeBook to CSV.<\/li>\n<\/ul>\n\n<h4>3.4<\/h4>\n\n<ul>\n<li>Added support for server requests of type x-http-method-override.<\/li>\n<li>Restyled using Bootstrap.<\/li>\n<\/ul>\n\n<h4>3.3<\/h4>\n\n<ul>\n<li>Instructors can add existing WordPress users by entering their user_login.<\/li>\n<\/ul>\n\n<h4>3.2<\/h4>\n\n<ul>\n<li>Student view improvements.<\/li>\n<li>Code maintenance: Split up Gradebook_student.js into models and views.<\/li>\n<\/ul>\n\n<h4>3.1<\/h4>\n\n<ul>\n<li>Code maintenance: Split up GradeBook.php into classes.<\/li>\n<li>Bug Fix: user_login was incorrectly generated.<\/li>\n<li>Replaced ID column with Login column in the gradebook.<\/li>\n<li>Added student menu button for edit, delete, and statistics views.<\/li>\n<\/ul>\n\n<h4>3.0<\/h4>\n\n<ul>\n<li>Feature: Added assignment ordering with shift left\/right options.<\/li>\n<li>Fixed assignment header bugs in Firefox.<\/li>\n<li>Cleaned up views to properly remove unused views and free memory.<\/li>\n<li>Database upgrade to handle assignment ordering.<\/li>\n<\/ul>","raw_excerpt":"A gradebook plugin for educators to create, maintain, and share grades quickly and efficiently.","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/kea.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin\/21916","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/kea.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin"}],"about":[{"href":"https:\/\/kea.wordpress.org\/plugins\/wp-json\/wp\/v2\/types\/plugin"}],"replies":[{"embeddable":true,"href":"https:\/\/kea.wordpress.org\/plugins\/wp-json\/wp\/v2\/comments?post=21916"}],"author":[{"embeddable":true,"href":"https:\/\/kea.wordpress.org\/plugins\/wp-json\/wporg\/v1\/users\/anevo"}],"wp:attachment":[{"href":"https:\/\/kea.wordpress.org\/plugins\/wp-json\/wp\/v2\/media?parent=21916"}],"wp:term":[{"taxonomy":"plugin_section","embeddable":true,"href":"https:\/\/kea.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_section?post=21916"},{"taxonomy":"plugin_tags","embeddable":true,"href":"https:\/\/kea.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_tags?post=21916"},{"taxonomy":"plugin_category","embeddable":true,"href":"https:\/\/kea.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_category?post=21916"},{"taxonomy":"plugin_contributors","embeddable":true,"href":"https:\/\/kea.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_contributors?post=21916"},{"taxonomy":"plugin_business_model","embeddable":true,"href":"https:\/\/kea.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_business_model?post=21916"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}