- <% if lti_launch_enabled? && current_organization.lti_configuration %>
- <% lms_name = current_organization.lti_configuration.lms_name(default_name: "a learning management system") %>
- You are currently connected to <%= lms_name %>.
- <%= link_to "Connection Settings", lti_configuration_path(current_organization) %>
- <% elsif google_classroom_roster_import_enabled? && current_organization.google_course_id %>
- You are currently connected to Google Classroom.
- <% else lti_launch_enabled? || google_classroom_roster_import_enabled? %>
-
You are currently not connected to a learning management system. Integrating GitHub Classroom
- with your institution will unlock new capabilities and enhance your experience.
+ <% if current_organization.lti_configuration %>
+ <% lms_name = current_organization.lti_configuration.lms_name(default_name: "a learning management system") %>
+ You are currently connected to <%= lms_name %>.
+ <%= link_to "Connection Settings", lti_configuration_path(current_organization) %>
+ <% elsif current_organization.google_course_id %>
+ You are currently connected to Google Classroom.
+ <% else %>
+
You are currently not connected to a learning management system. Integrating GitHub Classroom
+ with your institution will unlock new capabilities and enhance your experience.
Connecting GitHub Classroom to <%= lms_name %> will allow you to manage your students and submissions easier!
-
What integrating Classroom with <%= lms_name %> can do for you
+
What integrating GitHub Classroom with <%= lms_name %> can do for you
-
Sync rosters from <%= lms_name %> to Classroom
+
Sync rosters from <%= lms_name %> to GitHub Classroom
-
How to link Classroom with <%= lms_name %>
+
How to link GitHub Classroom with <%= lms_name %>
You or your system administrator will need to add a new application to
your <%= lms_name %> with the following credentials generated by
GitHub Classroom.
- <% if google_classroom_roster_import_enabled? || lti_launch_enabled? %>
-
GitHub Classroom is able to automatically import your roster from your institution. If you
- would rather manage your roster manually, you can still do that, too.
+
GitHub Classroom is able to automatically import your roster from your institution. If you
+ would rather manage your roster manually, you can still do that, too.
- <%= link_to "Sync from a learning management system",
- link_lms_organization_path,
- class: "btn btn-block btn-sm"
- %>
- <% end %>
+ <%= link_to "Sync from a learning management system",
+ link_lms_organization_path,
+ class: "btn btn-block btn-sm"
+ %>
GitHub Classroom is able to automatically import your roster from your institution. If you
- would rather manage your roster manually, you can still do that, too.
GitHub Classroom is able to automatically import your roster from your institution. If you
+ would rather manage your roster manually, you can still do that, too.
- <%= link_to image_tag('other-logo.png', size: "25", class:"mr-2") + "Import from a learning management system",
- link_lms_organization_path,
- class: "btn btn-secondary d-inline-flex flex-items-center mb-3"
- %>
- <% end %>
+ <%= link_to image_tag('other-logo.png', size: "25", class:"mr-2") + "Import from a learning management system",
+ link_lms_organization_path,
+ class: "btn btn-secondary d-inline-flex flex-items-center mb-3"
+ %>
<% end %>
+ Unexpected things will happen if you don't read this!
+
+
+
+
+ This action CANNOT be undone.
+ Please note this will delete the record on GitHub Classroom and the team on GitHub, but not the repository on GitHub.
+
Please type the ID (<%= @group.id %>) of the group to confirm
+
+
+
+ <%= f.submit 'Delete this Group', class: 'btn btn-danger btn-block js-submit', disabled: true %>
+ <% end %>
+
+
+
diff --git a/config/initializers/bullet.rb b/config/initializers/bullet.rb
index 22b976427c..62dbb46bc0 100644
--- a/config/initializers/bullet.rb
+++ b/config/initializers/bullet.rb
@@ -14,6 +14,9 @@
end
Bullet.raise = true if Rails.env.test?
+
+ # Need to eager load :users which is causing it to complain about the join table
+ Bullet.add_whitelist type: :unused_eager_loading, class_name: "Organization", association: :organizations_users
end
end
end
diff --git a/config/initializers/github_client.rb b/config/initializers/github_client.rb
index 459a429859..04aef5c2c5 100644
--- a/config/initializers/github_client.rb
+++ b/config/initializers/github_client.rb
@@ -24,7 +24,7 @@ def self.enterprise?
def self.github_url
if enterprise?
- Rails.application.secrets.github_enterprise_url.present?
+ Rails.application.secrets.github_enterprise_url
else
"https://github.com"
end
diff --git a/config/initializers/timeout.rb b/config/initializers/timeout.rb
index 32bf4d4c95..a344754a22 100644
--- a/config/initializers/timeout.rb
+++ b/config/initializers/timeout.rb
@@ -6,9 +6,6 @@
unless Rails.env.test? || Rails.env.development?
require "rack-timeout"
- # Raise an error when the request time exceeds 25 seconds.
- Rack::Timeout.timeout = 25
-
# Rack::Timeout::Logger in info mode is very noisy. Setting to WARN so that
# Rack::Timeout request timing info is not logged for every request.
Rack::Timeout::Logger.logger = Rails.logger
diff --git a/config/locales/views/organizations/en.yml b/config/locales/views/organizations/en.yml
index 383f406c5b..a06acb3a9a 100644
--- a/config/locales/views/organizations/en.yml
+++ b/config/locales/views/organizations/en.yml
@@ -45,8 +45,8 @@ en:
delete_submit: 'Remove classroom'
danger_zone: 'The Danger Zone'
archived_classrooms: 'Archived classrooms'
- archive_consequences_html: "
Assignment invitations will be disabled while the classroom is archived and the classroom will be moved to the archived section.
You can unarchive your classroom at any point.
"
- archive_description: 'Mark this classroom as archived. The classroom will be moved to the archived section away from your active classrooms. Nothing will be deleted and this can be undone.'
+ archive_consequences_html: "
New assignments cannot be created and existing assignment invitations will be disabled while the classroom is archived.
You can unarchive your classroom at any point.
"
+ archive_description: 'Mark this classroom as archived. Nothing will be deleted, but you will be unable to create new assignments. Classrooms can be unarchived.'
archive_title: 'Archive this classroom'
archive_submit: 'Archive classroom'
unarchive_description: 'Mark this classroom as unarchived. It will return to your classroom dashboard.'
diff --git a/config/locales/views/pages/en.yml b/config/locales/views/pages/en.yml
index 37d2a53841..465f8bca96 100644
--- a/config/locales/views/pages/en.yml
+++ b/config/locales/views/pages/en.yml
@@ -16,12 +16,12 @@ en:
banner_subheading: 'whether you have five students or 500.'
why_classroom_html: |
Developers rarely work all by themselves, on a deadline, or ship something they’ll only use once (with no idea whether it actually works). Wouldn’t students be better served by showing versions of their work, iterating, checking in on milestones, and showing off the final product?
- With GitHub Classroom you can set up the industry-standard workflow and free up your time to focus on teaching. Classroom will automatically create student repositories, track assignments in your dashboard and integrate with third-party tools like automated testing.
- With Classroom, you can spin up your course on GitHub and move on to the good stuff.
+ With GitHub Classroom you can set up the industry-standard workflow and free up your time to focus on teaching. GitHub Classroom will automatically create student repositories, track assignments in your dashboard and integrate with third-party tools like automated testing.
+ With GitHub Classroom, you can spin up your course on GitHub and move on to the good stuff.
see_how_it_works: 'See how it works'
sign_in_to_start: 'Sign in and get started'
why_classroom_section:
- heading: 'Why try Classroom?'
+ heading: 'Why try GitHub Classroom?'
items:
- heading: 'Spend more time with students, less on setup.'
content: 'Students accept an assignment with one link, so you can get straight to the material.'
@@ -34,7 +34,7 @@ en:
- heading: 'You are in control.'
content: 'Students can work individually or in groups, in public or in private. Set permissions for teaching assistants or graders.'
- heading: 'Scales for large courses with ease.'
- content: 'If you have a small course, Classroom will make your life easier and save you time. If you have hundreds of students, we have your covered: as many repositories as you need, and webhooks to integrate automated testing tools.'
+ content: 'If you have a small course, GitHub Classroom will make your life easier and save you time. If you have hundreds of students, we have your covered: as many repositories as you need, and webhooks to integrate automated testing tools.'
- heading: 'Works with your Learning Management System (LMS).'
content: 'Students submit a link to their assignment repository to your learning management system. Give feedback through comments in GitHub, but keep grades in your LMS.'
- heading: 'Are you super-advanced?'
@@ -56,7 +56,7 @@ en:
school: 'Brown University'
classroom_in_action_section:
heading: 'See what GitHub Classroom looks like in action'
- subheading: 'Accept an assignment, and see how Classroom makes a copy of the assignment repository. Minimal setup, so you can get straight to work.'
+ subheading: 'Accept an assignment, and see how GitHub Classroom makes a copy of the assignment repository. Minimal setup, so you can get straight to work.'
accept_button: 'Accept an assignment'
get_started_section:
heading: 'Get started with your first GitHub Classroom'
@@ -66,7 +66,7 @@ en:
- heading: 'Apply for an Educator discount.'
content: 'For professors, teachers, and bootcamp instructors, we’re happy to provide a discount for free private repositories. Go ahead and apply for [an Education discount](https://education.github.com/discount_requests/new) for your organization.'
- heading: 'Use the GitHub Classroom application.'
- content: 'With your discount and organization sorted, create a [new Classroom](https://classroom.github.com/classrooms/new), make your first assignment and invite students.'
+ content: 'With your discount and organization sorted, create a [new classroom](https://classroom.github.com/classrooms/new), make your first assignment and invite students.'
create_assignments: 'Create assignments'
@@ -77,5 +77,5 @@ en:
review_progress_desc: 'Teachers and teaching assistants can browse submissions by assignment, making it easy to follow along with student progress.'
assistant:
- banner_heading: 'Download all of your Classroom assignments in one click.'
+ banner_heading: 'Download all of your GitHub Classroom assignments in one click.'
banner_subheading: 'Classroom Assistant is a desktop application to help you get student repositories for grading.'
diff --git a/config/locales/views/shared/en.yml b/config/locales/views/shared/en.yml
index 43c92da669..327f2a4675 100644
--- a/config/locales/views/shared/en.yml
+++ b/config/locales/views/shared/en.yml
@@ -15,6 +15,6 @@ en:
classroom_is_open_source: "GitHub Classroom is %{href}."
open_source_href: "open source"
with_love_by_github: "Made with %{octicon_heart} by the %{education_href} team at %{href}."
- back_to_classroom: 'Back to Classroom'
+ back_to_classroom: 'Back to GitHub Classroom'
your_classrooms: "Your classrooms"
signed_in_as: "Signed in as"
diff --git a/config/routes.rb b/config/routes.rb
index 4ab1702de7..9c0f66f445 100644
--- a/config/routes.rb
+++ b/config/routes.rb
@@ -174,8 +174,8 @@
resources :group_assignment_repos, path: "group-assignment-repos", only: %i[show destroy]
resources :group_assignments, path: "group-assignments", only: [:show]
- resources :groupings, only: [:show]
- resources :groups, only: [:show]
+ resources :groupings, only: %i[show destroy]
+ resources :groups, only: %i[show destroy]
end
namespace :api, defaults: { format: :json } do
diff --git a/db/migrate/20190911145910_add_teacher_student_flags_to_user.rb b/db/migrate/20190911145910_add_teacher_student_flags_to_user.rb
new file mode 100644
index 0000000000..e14f5dd46c
--- /dev/null
+++ b/db/migrate/20190911145910_add_teacher_student_flags_to_user.rb
@@ -0,0 +1,6 @@
+class AddTeacherStudentFlagsToUser < ActiveRecord::Migration[5.2]
+ def change
+ add_column :users, :teacher, :boolean
+ add_column :users, :student, :boolean
+ end
+end
diff --git a/db/migrate/20190916192858_remove_lms_link.rb b/db/migrate/20190916192858_remove_lms_link.rb
new file mode 100644
index 0000000000..43663d9e15
--- /dev/null
+++ b/db/migrate/20190916192858_remove_lms_link.rb
@@ -0,0 +1,5 @@
+class RemoveLmsLink < ActiveRecord::Migration[5.2]
+ def change
+ remove_column :lti_configurations, :lms_link
+ end
+end
diff --git a/db/schema.rb b/db/schema.rb
index 33d25d47b9..eed03fe818 100644
--- a/db/schema.rb
+++ b/db/schema.rb
@@ -10,7 +10,7 @@
#
# It's strongly recommended that you check this file into your version control system.
-ActiveRecord::Schema.define(version: 2019_08_05_192704) do
+ActiveRecord::Schema.define(version: 2019_09_16_192858) do
# These are extensions that must be enabled in order to support this database
enable_extension "plpgsql"
@@ -168,7 +168,6 @@
create_table "lti_configurations", force: :cascade do |t|
t.text "consumer_key", null: false
t.text "shared_secret", null: false
- t.text "lms_link"
t.datetime "created_at", null: false
t.datetime "updated_at", null: false
t.bigint "organization_id"
@@ -258,6 +257,8 @@
t.string "github_name"
t.string "github_avatar_url"
t.string "github_html_url"
+ t.boolean "teacher"
+ t.boolean "student"
t.index ["token"], name: "index_users_on_token", unique: true
t.index ["uid"], name: "index_users_on_uid", unique: true
end
diff --git a/docs/archive-a-classroom.md b/docs/archive-a-classroom.md
new file mode 100644
index 0000000000..5559785df0
--- /dev/null
+++ b/docs/archive-a-classroom.md
@@ -0,0 +1,19 @@
+## Archiving a classroom
+
+You can archive classrooms that you no longer plan on using. If a classroom is archived, you cannot create new assignments or make changes to existing ones. Students will be unable to accept invitations to assignments in archived classes as well. A classroom can be unarchived at any time.
+
+### Archiving from the classroom settings
+
+1. [Sign in to GitHub Classroom](https://classroom.github.com/login).
+2. Select the classroom you wish to archive.
+3. Navigate to _Classroom Settings_ within GitHub Classroom.
+4. Scroll down and click **Archive Classroom**.
+
+5. A modal will open with additional details. Click **Archive Classroom** on the modal to confirm.
+
+
+### Archiving from the classroom listing page
+1. [Sign in to GitHub Classroom](https://classroom.github.com/login).
+2. Open the dropdown menu for the classroom you'd like to archive by clicking on the three dots
+3. Click on **Archive Classroom**
+
\ No newline at end of file
diff --git a/docs/connect-to-lms.md b/docs/connect-to-lms.md
index 20c15b7efc..6a079e446e 100644
--- a/docs/connect-to-lms.md
+++ b/docs/connect-to-lms.md
@@ -1,15 +1,20 @@
-## Integrating with a learning management system
+## Integrating with a learning management system (LMS)
-GitHub Classroom integrates with your institution's learning management system (LMS), such as Brightspace, Canvas, Moodle, and others. Classroom supports:
+GitHub Classroom integrates with learning management systems (LMS) such as Brightspace, Canvas, Moodle, and others. GitHub Classroom supports:
- [Roster provisioning](/help/import-roster-from-lms)
- Assignment creation (Planned)
- Submission syncing (Planned)
-Classroom works with any LMS that uses the Learning Tools Interoperability (LTI) standard. Using LTI keeps your information safe and secure. LTI is an industry-standard protocol and Classroom's use of LTI is certified by the Instructional Management System Global Learning Consortium.
+GitHub Classroom works with learning management systems that use the Learning Tools Interoperability (LTI) standard. Using LTI keeps your information safe and secure. LTI is an industry-standard protocol and GitHub Classroom's use of LTI is certified by the Instructional Management System Global Learning Consortium.
-**Note**: Blackboard and GitHub Classroom course rosters don't work together yet. We are working to support Blackboard in the near future!
-{: class="warning"}
+For the GitHub Classroom and LMS integration to work, we require that your LMS supports:
+
+- LTI version 1.0 and/or 1.1
+- LTI Names and Roles Provisioning 1.X
+
+**Note**: Blackboard and Brightspace course rosters aren't compatible with GitHub Classroom yet. We are working to support Blackboard and Brightspace in the near future!
+{: class="flash"}
### Setup guide
diff --git a/docs/create-group-assignments.md b/docs/create-group-assignments.md
index 4d06a1c987..796fca446a 100644
--- a/docs/create-group-assignments.md
+++ b/docs/create-group-assignments.md
@@ -1,3 +1,5 @@
+## Creating group assignments
+
Like professional developers working together on code, students can use [GitHub Classroom](https://classroom.github.com/) to collaborate on group projects in a shared repository. In this post, we’ll walk you through how teachers can work with GitHub teams and use GitHub Classroom to create group exercises, assign teams, and reuse existing student teams.
### Before you begin
@@ -10,11 +12,11 @@ Before you create a group exercise, you’ll need the following:
- A list of students, or unique identifiers like their email addresses
### Get started
-To get started, log in to [GitHub Classroom](https://classroom.github.com/), choose one of your classrooms, then click the **New assignment** button followed by **Create group assignment**. This brings you to the “New group assignment” page where you can provide the details of an assignment. If you don’t see your classroom listed, [double check that you’ve granted that organization access to GitHub Classroom](https://help.github.com/articles/approving-oauth-apps-for-your-organization/).
+To get started, log in to [GitHub Classroom](https://classroom.github.com/), choose one of your active classrooms, then click the **New assignment** button followed by **Create group assignment**. This brings you to the “New group assignment” page where you can provide the details of an assignment. If you don’t see your classroom listed, [double check that you’ve granted that organization access to GitHub Classroom](https://help.github.com/articles/approving-oauth-apps-for-your-organization/). You cannot create or modify group assignments for classrooms that have been archived.

-Then set up your group assignment just like you’d setup an individual assignment. Pick a name for your exercise, a starter repository to share, and a deadline.
+Then set up your group assignment just like you’d set up an individual assignment. Pick a name for your exercise, a starter repository to share, and a deadline.
### Create and use groups
When creating a new exercise, you can choose whether to reuse a set of groups from a previous assignment or name a set of new groups. If you’re reusing existing groups, then select a set of teams from the “Choose an existing set of groups” drop-down list.
@@ -38,12 +40,12 @@ There are three common cases when organizing students into teams:
- There are one or more groups already formed. The student clicks on the existing group they want to join
- A student needs to create a new group. The student enters the name of a new group to create it
-### Classroom groups and GitHub teams
-When students join their group in Classroom, _[a team]_(https://help.github.com/articles/about-teams/) is created on GitHub.com in your GitHub organization. Teams have pretty nifty functionality, including threaded comments and emoji support.
+### GitHub Classroom groups and GitHub teams
+When students join their group in GitHub Classroom, _[a team]_(https://help.github.com/articles/about-teams/) is created on GitHub.com in your GitHub organization. Teams have pretty nifty functionality, including threaded comments and emoji support.
-If you create a team for your students on GitHub.com, that team will not appear in Classroom. If you’d like to use Classroom to distribute shared repositories, then use group assignments in Classroom, not teams on GitHub.com.
+If you create a team for your students on GitHub.com, that team will not appear in Classroom. If you’d like to use GitHub Classroom to distribute shared repositories, then use group assignments in GitHub Classroom, not teams on GitHub.com.
-When you use group assignments in Classroom, each team of students will get access to one shared repository for the exercise. Every student will be able to push and pull to their team’s repository. We recommend assigning one student per team to act as project manager to resolve conflicts or merge pull requests. If your students are new to resolving conflicting changes, they can [check out our documentation](https://services.github.com/on-demand/merge-conflicts/) to learn to manage merge conflicts.
+When you use group assignments in GitHub Classroom, each team of students will get access to one shared repository for the exercise. Every student will be able to push and pull to their team’s repository. We recommend assigning one student per team to act as project manager to resolve conflicts or merge pull requests. If your students are new to resolving conflicting changes, they can [check out our documentation](https://services.github.com/on-demand/merge-conflicts/) to learn to manage merge conflicts.
### Get deeper insight into group participation
Once your students are sorted into teams, they can start collaborating on the assignment like they would in any other repository: by pushing commits and branches, opening and reviewing pull requests, or using issues. Similarly, all of their commit history is available for you to review.
@@ -58,4 +60,4 @@ Once students complete their projects, there are a few ways to deliver feedback,
If you chose to use private repositories for your assignment, your feedback will be confidential, so only you and the students in the group will see it.
### Create a group exercise
-Ready to give a group assignment? [Get started right away in GitHub Classroom](https://classroom.github.com/). Or check out [this discussion in the GitHub Education Community](https://education.github.community/t/using-existing-teams-in-group-assignments/6999) on how student groups can work with GitHub teams in Classroom.
+Ready to give a group assignment? [Get started right away in GitHub Classroom](https://classroom.github.com/). Or check out [this discussion in the GitHub Education Community](https://education.github.community/t/using-existing-teams-in-group-assignments/6999) on how student groups can work with GitHub teams in GitHub Classroom.
diff --git a/docs/generate-lms-credentials.md b/docs/generate-lms-credentials.md
index a5f943fa52..fc179ad389 100644
--- a/docs/generate-lms-credentials.md
+++ b/docs/generate-lms-credentials.md
@@ -15,13 +15,8 @@ Before integrating GitHub Classroom within your learning management system (LMS)
1. Click your LMS. If your LMS is not listed,
click **Other learning management system**.
-1. Follow the prompts. At the end you'll see a screen which looks like this:
-
-
-
-
-
-
+1. Follow the prompts. At the end you'll see a screen which looks like this:
+ 
**Note**: You may access this screen at any time by clicking **Connection Settings** in your classroom profile.
1. Copy the credentials (or keep this page open in a separate window or tab) and [configure your learning management system](/help/connect-to-lms#part-2).
@@ -35,12 +30,7 @@ click **Other learning management system**.
1. Follow the prompts until you reach _Connect to a learning management system_, then click your LMS. If your LMS is not listed, click **Other learning management system**.
4. Follow the prompts. At the end you'll see a screen which looks like this:
-
-
-
-
-
-
+
**Note**: You may access this screen at any time by clicking **Connection Settings** in your classroom profile.
1. Copy the credentials (or keep this page open in a separate window or tab) and [configure your learning management system](/help/connect-to-lms#part-2).
diff --git a/docs/glossary.md b/docs/glossary.md
new file mode 100644
index 0000000000..3e95c51826
--- /dev/null
+++ b/docs/glossary.md
@@ -0,0 +1,29 @@
+## GitHub Classroom glossary
+
+GitHub Classroom is a free, open-source tool for teachers that helps to simplify their educational use of GitHub. Below are specific terms we use in the GitHub Classroom application and documentation.
+
+
+#### Classroom
+A classroom is the basic foundational unit of GitHub Classroom where teachers can organize and manage assignments, students, and teaching assistants around a single course. Classrooms require admin (owner) access to GitHub organization accounts which are managed on github.com, not classroom.github.com.
+
+
+#### Group assignment
+Within a classroom in GitHub Classroom, teachers can create either [individual assignments](/help/glossary#individual-assignment) or group assignments. Group assignments are ideal for team submissions or collaborative projects. Just like individual assignments, creating a group assignment will set up an assignment repository within your classroom's GitHub organization account which may optionally include starter code. However, unlike individual assignments, group assignments allow teachers to set up teams that students can join when they accept the group assignment invitation. You cannot create or modify group assignments in classrooms that have been archived.
+
+Related resources:
+
+ - Watch: [How to set up group assignments](/help/videos#-52quDR2QSc)
+ - Guide: [Creating group assignments](/help/create-group-assignments)
+
+
+#### Identifier
+GitHub Classroom supports any type of identifier—student names, email addresses, or school IDs. Many schools have adopted the use of unique student identifiers to identify students without exposing their real names, email addresses, or similar personally identifiable information. Just make sure you use the identifier type that complies with your school's policy.
+
+
+#### Individual assignment
+Within a classroom, teachers have two assignment options: individual or [group assignments](/help/glossary#group-assignment). When you create an individual assignment, GitHub Classroom sets up a repository within your classroom's GitHub organization account which may optionally include starter code. This generates an invitation URL that each student on your [roster](/help/glossary#roster) can accept to join. GitHub Classroom automatically creates assignment repositories for each student, and clones the starter code if applicable. It also adds a custom prefix for each student's repository that corresponds with the assignment to help you distinguish and identify submissions. You cannot create or modify individual assignments in classrooms that have been archived.
+
+Watch: [How to set up individual assignments](/help/videos#rTsfBAV7sOo)
+
+#### Roster
+Rosters are used as a way to manage students in a classroom and make it easier to track assignment submissions. Rosters can be created manually by entering a list of [student identifiers](/help/glossary#identifier). Or, they can be imported automatically from your institution’s learning management system (LMS).
diff --git a/docs/help.md b/docs/help.md
index 4de13641bf..fd26524584 100644
--- a/docs/help.md
+++ b/docs/help.md
@@ -1,10 +1,10 @@
-[Learn more about GitHub Classroom](#guides), join [the education community](#community), or [get in touch](#need-more-help) for more help.
### Getting started with GitHub Classroom
-* [Quick-start video tutorials](/videos):
+* Get up and running quickly with our [video tutorials](/videos):
* Just getting started? [Learn the basics of setting up GitHub Classroom](/videos#ChA_zph7aao)
* [Create individual assignments](/videos#rTsfBAV7sOo)
* [Create group assignments](/videos#-52quDR2QSc) for collaborative projects
+* [Check our glossary](/help/glossary) to learn more about terms and concepts used in GitHub Classroom
### Guides
* [Controlling assignment repo settings with the Probot Settings app](/help/probot-settings)
@@ -12,10 +12,11 @@
* [Upgrading your organization](/help/upgrade-your-organization)
* [Using template repositories for assignments](/help/using-template-repos-for-assignments)
* [Connecting GitHub Classroom to your learning management system](/help/connect-to-lms)
+* [Archiving a classroom](/help/archive-a-classroom)
-### Workflows, case studies, best practices, and more from the GitHub blog
+### Workflows, case studies, best practices, and more
-#### Getting the most from Classroom
+#### Getting the most from GitHub Classroom (from the GitHub Blog)
* [GitHub Classroom now supports multiple classrooms per organization](https://github.blog/2019-01-23-github-classroom-now-supports-multiple-classrooms-per-organization/)
* [Merge conflicts in the classroom](https://github.blog/2018-08-22-merge-conflicts-in-the-classroom/)
@@ -26,7 +27,7 @@
* [Real-time feedback for students using continuous integration tools ](https://github.blog/2017-03-01-real-time-feedback-for-students-using-continuous-integration-tools/)
* [Importing a course roster from your learning management system](/help/import-roster-from-lms)
-#### Educators share their experiences
+#### Educators share their experiences (from the GitHub Blog)
* [How GitHub Classroom and Travis CI improved students’ grades](https://github.blog/2019-02-12-how-github-classroom-and-travis-ci-improved-students-grades/)
* [GitHub Classroom report predicts positive student learning outcomes](https://github.blog/2018-08-15-classroom-report-predicts-positive-student-learning-outcomes/)
@@ -39,5 +40,5 @@
### Need more help?
-Not finding what you need? Want to talk to a human? [Open an issue on the Classroom repo.](https://github.com/education/classroom/issues)
-{: class="warning"}
+Not finding what you need? Want to talk to a human? [Open an issue on the GitHub Classroom repository.](https://github.com/education/classroom/issues)
+{: class="flash"}
diff --git a/docs/import-roster-from-lms.md b/docs/import-roster-from-lms.md
index e99d48e8d6..171387fb64 100644
--- a/docs/import-roster-from-lms.md
+++ b/docs/import-roster-from-lms.md
@@ -5,17 +5,14 @@ system to save you time when creating a GitHub Classroom course.
### Prerequisites
-If you haven't yet, [connect GitHub Classroom to you learning management system](/help/connect-to-lms) before proceeding.
+If you haven’t yet, [connect GitHub Classroom to you learning management system](/help/connect-to-lms) before proceeding.
Importing a course roster from your learning management system will only work if your learning management system's privacy settings allow GitHub Classroom to receive course roster information.
### Creating a new course roster
To import a new course roster from your learning management system:
-
-
-
-
+
1. [Sign in to GitHub Classroom](https://classroom.github.com/login).
@@ -23,32 +20,28 @@ To import a new course roster from your learning management system:
3. Navigate to _Classroom Settings_ within GitHub Classroom.
-4. In the sidebar, select **Roster Management**. The _Add Students_ page appears.
+4. In the sidebar, select **Roster Management**. The _Add Students_ page will be displayed.
-5. Click **Import from your Learning Management System**.
+5. Click **Import from your learning management system**.
6. Select how to identify the imported students:
- - **User ID**: The Student ID as stored in your institution's learning management system
+ - **User ID**: The Student ID as stored in your institution’s learning management system
- **Names**: Student full names
- **Emails**: Student emails
- **Note**: If you do not see the kind of identifier you want, you may have to enable GitHub Classroom to receive student name and email information in your learning management system's privacy settings. See [troubleshooting](#troubleshooting) for more advice.
- {: class="note"}
+ **Note**: If you do not see the kind of identifier you want, you may have to enable GitHub Classroom to receive student name and email information in your learning management system’s privacy settings. See [troubleshooting](#troubleshooting) for more advice.
+ {: class="flash"}
You have imported your roster into GitHub Classroom.
- **Note**: If you encounter any errors, check to ensure you have enabled the roster membership service from within your learning management system. See [troubleshooting](#troubleshooting) for more advice.
- {: class="note"}
+**Note**: If you encounter any errors, check to ensure you have enabled the roster membership service from within your learning management system. See [troubleshooting](#troubleshooting) for more advice.
### Syncing an existing course roster
After you've imported a roster, keep it up to date by syncing:
-
-
-
-
+
1. [Sign in to GitHub Classroom](https://classroom.github.com/login).
@@ -66,29 +59,17 @@ After you've imported a roster, keep it up to date by syncing:
- **Names**: Student full names
- **Emails**: Student emails
- **Note:** If you do not see the kind of identifier you want, you may have to enable GitHub Classroom to receive student name and email information per your learning management system's privacy settings. See [troubleshooting](#troubleshooting) for more advice.
- {: class="note"}
+ **Note:** If you do not see the kind of identifier you want, you may have to enable GitHub Classroom to receive student name and email information per your learning management system’s privacy settings. See [troubleshooting](#troubleshooting) for more advice.
+ {: class="flash"}
-Your roster is now up to date with your Learning Managment System.
+Your roster is now up to date with your learning management system.
- **Note:** If you encounter any errors, check to ensure you have enabled the roster membership service from within your learning management system. See [troubleshooting](#troubleshooting) for more advice.
- {: class="note"}
+**Note:** If you encounter any errors, check to ensure you have enabled the roster membership service from within your learning management system. See [troubleshooting](#troubleshooting) for more advice.
### Troubleshooting
#### Unable to import students by name or email
-If you're trying to import students by their full name or email but only
-able to import by User ID, ensure you've enabled GitHub Classroom to retrieve
-student information from your learning management system. You may be able to
-change the privacy settings for GitHub Classroom within your learning management
-system by checking the configuration
-you set when [connecting GitHub Classroom to you learning management system](/help/connect-to-lms).
+If you’re trying to import students by their full name or email but only able to import by User ID, ensure you've enabled GitHub Classroom to retrieve student information from your learning management system. You may be able to change the privacy settings for GitHub Classroom within your learning management system by checking the configuration you set when [connecting GitHub Classroom to you learning management system](/help/connect-to-lms).
#### Roster import service is not enabled
-If GitHub Classroom notifies you that it is unable to import students because
-it does not have access to the course roster on your learning management system,
-ensure you've configured GitHub to retrieve course membersip infromation from
-your learning management system. You may be able to change the privacy settings for
-GitHub Classroom within your learning management system by inspecting the
-configuration you set when [connecting GitHub Classroom to you learning management system](/help/connect-to-lms).
-
+If GitHub Classroom notifies you that it is unable to import students because it does not have access to the course roster on your learning management system, ensure you’ve configured GitHub to retrieve course membership information from your learning management system. You may be able to change the privacy settings for GitHub Classroom within your learning management system by inspecting the configuration you set when [connecting GitHub Classroom to you learning management system](/help/connect-to-lms).
diff --git a/docs/probot-settings.md b/docs/probot-settings.md
index 815e4d966f..643f206936 100644
--- a/docs/probot-settings.md
+++ b/docs/probot-settings.md
@@ -1,25 +1,24 @@
-## Controlling assignment repo settings with the Probot Settings app
+## Controlling assignment repository settings with the Probot Settings app
-You may want to provide default settings for your assignment repos. For example, you may want to turn off issues, predefine pull request labels, or protect a branch. When Classroom imports and copies your starter repo, it does not copy your repo's settings. Instead, use the Probot [Settings app](https://probot.github.io/apps/settings/).
+You may want to provide default settings for your assignment repositories. For example, you may want to turn off issues, predefine pull request labels, or protect a branch. When GitHub Classroom imports and copies your starter repository, it does not copy your repository's settings. Instead, use the Probot [Settings app](https://probot.github.io/apps/settings/).
-[Probot](https://probot.github.io/) is a a project, a framework, and a collection of free apps to automate things on GitHub. Probot apps listen to repo events, like the creation of new commits, comments, and issues, and automatically does something in response. You can use [Probot apps created by the community](https://probot.github.io/apps/), such as the Settings app or [make your own](https://probot.github.io/docs/).
+[Probot](https://probot.github.io/) is a a project, a framework, and a collection of free apps to automate things on GitHub. Probot apps listen to repository events, like the creation of new commits, comments, and issues, and automatically does something in response. You can use [Probot apps created by the community](https://probot.github.io/apps/), such as the Settings app or [make your own](https://probot.github.io/docs/).
### Add the Settings app to your organization
-Adding the Probot Settings app to your organization turns it on for any repo in the organization with a `.github/settings.yml` file, including student assignment repos created in the future. Here's how you set it up:
+Adding the Probot Settings app to your organization turns it on for any repository in the organization with a `.github/settings.yml` file, including student assignment repositories created in the future. Here's how you set it up:
-1. Add the Probot Settings app to the GitHub organization you use with Classroom. Go to [the Settings app page](https://github.com/apps/settings) and click **+ Add to GitHub**. When asked, make sure to give it access to all the repositories in the organization.
+1. Add the Probot Settings app to the GitHub organization you use with GitHub Classroom. Go to [the Settings app page](https://github.com/apps/settings) and click **+ Add to GitHub**. When asked, make sure to give it access to all the repositories in the organization.
-
-
-
+
-2. Add a `.github/settings.yml` file to your starter repo. See the [probot/settings README](https://github.com/probot/settings#github-settings) for a complete list of settings.
- **Warning:** Classroom automatically adds teachers and teaching assistants to repos. Avoid using the collaborators setting with Classroom.
+2. Add a `.github/settings.yml` file to your starter repository. See the [probot/settings README](https://github.com/probot/settings#github-settings) for a complete list of settings.
+
+ **Warning:** GitHub Classroom automatically adds teachers and teaching assistants to repositories. Avoid using the collaborators setting with GitHub Classroom.
{: class="warning"}
-3. Use a starter repo that contains a `.github/settings.yml` file when creating your assignment in GitHub Classroom.
+3. Use a starter repository that contains a `.github/settings.yml` file when creating your assignment in GitHub Classroom.
### Learn more
diff --git a/docs/setup-canvas.md b/docs/setup-canvas.md
index e3bbe559a9..013efc2fba 100644
--- a/docs/setup-canvas.md
+++ b/docs/setup-canvas.md
@@ -16,18 +16,10 @@ the configuration process)
1. Log into Canvas.
1. Select the Canvas course to integrate with GitHub Classroom.
1. In the course sidebar, navigate to _Settings_, then _Apps_.
-
-
-
-
-
+ 
1. Click **+ App** in the top right. A popup appears.
1. In _Configuration Type_ dropdown, select **By URL**.
-
-
-
-
-
+ 
1. Fill in the following options:
| Option | Set to |
@@ -38,22 +30,13 @@ the configuration process)
| Configuration URL | The _Launch URL_ generated by GitHub Classroom |
After entering that information, the form should look like:
+ 
-
-
-
-
-1. Click _Submit_ and navigate out of settings.
-
-
-
-
-
+1. Click _Submit_ and navigate out of settings.
+ 
1. Click _GitHub Classroom_ to finish linking GitHub Classroom. You should see following screen:
+ 
-
-
-
### Next steps
@@ -63,11 +46,9 @@ the configuration process)
If you don’t see a checkbox in Canvas labeled _Allow this tool to access the IMS Names and Role Provisioning Service_, then you may have to ask your institution’s Canvas administrator to enable _Membership Service Configuration_ for your account.
-
-
-
+
You may continue linking GitHub Classroom to Canvas without this capability, but you will be unable to sync your roster from Canvas to GitHub Classroom.
-Not finding what you need? Want to talk to a human? [Open an issue on the Classroom repo.](https://github.com/education/classroom/issues)
-{: class="warning"}
+Not finding what you need? Want to talk to a human? [Open an issue on the GitHub Classroom repository.](https://github.com/education/classroom/issues)
+{: class="flash"}
diff --git a/docs/setup-enterprise.md b/docs/setup-enterprise.md
index e51186d929..adc695e0dd 100644
--- a/docs/setup-enterprise.md
+++ b/docs/setup-enterprise.md
@@ -9,18 +9,15 @@ These steps will walk you through the process of configuring GitHub Classroom to
### Step by step installation guide
-1. Log into your GitHub Enterprise Instance.
-1. Next you'll want to create a local version of GitHub Classroom. Go to the organization's page, click `Settings` and then click `Oauth Apps` in the sidebar.
+1. Log into your GitHub Enterprise instance.
+1. Next you’ll want to create a local version of GitHub Classroom. Go to the organization’s page, click `Settings` and then click `Oauth Apps` in the sidebar.
-
-
-
+
#### Create the Classroom Enterprise application
1. Click **New OAuth App** in the top right
-
1. Set `Application name` to `Classroom Enterprise`
1. Set `Homepage URL` to the URL of your local GitHub Classroom installation
1. Set `Application description` to `GitHub Classroom for GitHub Enterprise`
@@ -31,10 +28,7 @@ These steps will walk you through the process of configuring GitHub Classroom to
#### Configure the GitHub Classroom `.env`
Now that you have an OAuth Application registered in your GitHub Enterprise instance you want your local GitHub Classroom instance to use it. Go to the page for your newly created application and find the `Client ID` and `Client Secret`:
-
-
-
-
+
In your `.env` set the following:
@@ -44,4 +38,4 @@ GITHUB_CLIENT_ID=
GITHUB_CLIENT_SECRET=
```
-You should be able to restrt your local GitHub Classroom instance and register.
\ No newline at end of file
+You should be able to restart your local GitHub Classroom instance and register.
diff --git a/docs/setup-generic-lms.md b/docs/setup-generic-lms.md
index 0e0fb72107..a9c4a14cb4 100644
--- a/docs/setup-generic-lms.md
+++ b/docs/setup-generic-lms.md
@@ -21,15 +21,12 @@ While learning management systems differ, the main idea is the same across all v
* Secret key
* Launch URL (sometimes called _tool URL_ or similar)
-When you have successfully linked GitHub Classroom to your LMS, you should be directed the following screen:
-
-
-
-
+When you have successfully linked GitHub Classroom to your LMS, you should be directed the following screen:
+
### Next steps
[Importing your course roster from your learning management system to GitHub Classroom](/help/import-roster-from-lms)
-Not finding what you need? Want to talk to a human? [Open an issue on the Classroom repo.](https://github.com/education/classroom/issues)
-{: class="warning"}
+Not finding what you need? Want to talk to a human? [Open an issue on the GitHub Classroom repository.](https://github.com/education/classroom/issues)
+{: class="flash"}
diff --git a/docs/setup-moodle.md b/docs/setup-moodle.md
index 5bedf1bec9..700f100ed1 100644
--- a/docs/setup-moodle.md
+++ b/docs/setup-moodle.md
@@ -10,36 +10,19 @@ the configuration process)
### Step by step installation guide
-1. Log into Moodle.
-1. Select the Moodle course to integrate with GitHub Classroom.
-1. Turn editing on.
-1. Wherever you’d like GitHub Classroom to be accessible from, click **Add an activity or resource**.
-
-
-
-
-
-1. From the dialog box that pops up, choose **External tool** and click **Add**.
-
-
-
-
-
-1. In the _Activity name_ field, enter GitHub Classroom.
-
-
-
-
-
+1. Log into Moodle.
+1. Select the Moodle course to integrate with GitHub Classroom.
+1. Turn editing on.
+1. Wherever you’d like GitHub Classroom to be accessible from, click **Add an activity or resource**.
+ 
+1. From the dialog box that pops up, choose **External tool** and click **Add**.
+ 
+1. In the _Activity name_ field, enter `GitHub Classroom`.
+ 
1. In the _Preconfigured tool_ field, click the **+** to the right of the dropdown menu. A screen appears which looks like this:
-
-
-
-
-
- **Note**: This page may look very similar to the page you were just on. Make sure this page is titled such as _External tool configuration_ to ensure you’re on the correct one.
-
-1. Fill in the following information, where applicable. You may leave everything else untouched.
+ 
+ **Note**: This page may look very similar to the page you were just on. Make sure this page is titled _External tool configuration_ to ensure you’re on the correct one.
+1. Fill in the following information, where applicable. You may leave everything else untouched.
| Option | Set to |
|-------------------------------------------------------------------------|-------------------------------------------------------------------------------|
@@ -50,63 +33,30 @@ the configuration process)
| Consumer Key | The _Consumer key_ generated by GitHub Classroom |
| Shared Secret | The _Shared secret_ generated by GitHub Classroom |
-1. Scroll to and click **Services**.
-
-
-
-
-
-1. In the _IMS LTI Names and Role Provisioning_ menu, select **Use this service**.
-
-
-
-
-
-1. Scroll to and click **Privacy**
-
-
-
-
-
-1. In the _Share launcher's name with tool_ and _Share launcher's email with tool_ menu, select **Always**.
-
-
-
-
-
-1. Scroll down to the bottom of the page and click **Save changes**. You should retun to the page that looks like this:
-
-
-
-
-
-1. In the _Preconfigure tool_ menu, select _GitHub Classroom - [Your Classroom Name]_.
-
-1. In the _Activity_ menu (under _Common module settings_), select **Hide from students**.
-
-
-
-
-
-1. Scroll to the bottom of the page and click **Save and return to course**.
-
-1. You should now see a _GitHub Classroom_ activity wherever your chose to place it.
-
-
-
-
-
-1. Click the GitHub Classroom activity.
-
-You should now be directed the following screen. You have successfully linked GitHub Classroom to your Moodle.
-
-
-
-
+1. Scroll to and click **Services**.
+ 
+1. In the _IMS LTI Names and Role Provisioning_ menu, select **Use this service**.
+ 
+1. Scroll to and click **Privacy**
+ 
+1. In the _Share launcher's name with tool_ and _Share launcher's email with tool_ menu, select **Always**.
+ 
+1. Scroll down to the bottom of the page and click **Save changes**. You should return to the page that looks like this:
+ 
+1. In the _Preconfigure tool_ menu, select _GitHub Classroom - [Your Classroom Name]_.
+1. In the _Activity_ menu (under _Common module settings_), select **Hide from students**.
+ 
+1. Scroll to the bottom of the page and click **Save and return to course**.
+1. You should now see a _GitHub Classroom_ activity wherever your chose to place it.
+ 
+1. Click the GitHub Classroom activity.
+
+You should now be directed the following screen. You have successfully linked GitHub Classroom to your Moodle.
+ 
### Next steps
[Importing your course roster from Moodle to GitHub Classroom](/help/import-roster-from-lms)
-Not finding what you need? Want to talk to a human? [Open an issue on the Classroom repo.](https://github.com/education/classroom/issues)
-{: class="warning"}
+Not finding what you need? Want to talk to a human? [Open an issue on the GitHub Classroom repository.](https://github.com/education/classroom/issues)
+{: class="flash"}
diff --git a/docs/upgrade-your-organization.md b/docs/upgrade-your-organization.md
index 6abb511612..6b6ebd0fdc 100644
--- a/docs/upgrade-your-organization.md
+++ b/docs/upgrade-your-organization.md
@@ -6,14 +6,13 @@ Verified faculty can now upgrade any GitHub organization being used for academic
Organizations you own are listed under _Upgrade your organization_.
-