abc-classroom Overview

General Workflow

Here is the general workflow for each new course and for each new assignment. Not all of the steps can be completed using abc-classroom - some steps require that you use the GitHub classroom web interface (due to lack of API for GitHub classroom).

For each course:

For each assignment:

abc-classroom scripts

abc-classroom is implemented as a set of command-line scripts. A summary of each script, with links to more documentation:

Directory structure

Each abc-classroom course is a separate directory, with a specific structure:

course_directory/ (created by quickstart)
|-- config.yml
|-- roster.csv (student list)
|-- course_materials (where you develop / mark your course files)
|    |--- release (materials to be given to students)
|        |--- assignment1
|        |--- assignment2
|    |--- submitted (collected from students)
|        |--- student1
|        |--- student2
|    |--- feedback (reports to be given to students)
|-- template_repos (location of GitHub Classroom template repositories)
|-- clone_dir (destination for cloned student repositories)

Running abc-quickstart sets up the basics, and other abc-classroom scripts create directories as needed. The only directory you need to create and manage yourself is the course_materials, and there are more details about that in Organize Assignments. The names of directories are configurable in config.yml - see Configuration.