-
Notifications
You must be signed in to change notification settings - Fork 167
GitHub Integration: Classrooms
Classrooms will be a lightweight replacement for the current assessments that does not require a backend to maintain. Instructors can make use of Source Academy and GitHub Classroom to post, receive and mark student assignments. This is achieved through the use of GitHub API to recognize and pull Source Academy relevant repositories and allowing the user to answer questions through the front-end.
- Instructors
- Students
- Create and edit Assessments using template repositories (instructors)
- View and answer questions from cloned assignment repositories (students)
- Create, accept and attempt assignments
- Code is pushed directly to students' repositories
- Get students' code from cloned repositories
In order to enable GitHub classroom integration, open the .env
file and set REACT_APP_ENABLE_GITHUB_ASSESSMENTS
to be true.
Thereafter, the link to the Classroom page will appear in the Navigation Bar.
RootFolder/
Q1/
Problem.md
SavedCode.js
StarterCode.js
Q2/
Problem.md
SavedCode.js
StarterCode.js
Q3/
Problem.md
SavedCode.js
StarterCode.js
LICENSE
README.md
If you need a Markdown cheatsheet, please click here!
Note that Course Repositories HAVE to be named 'course-info' to be located by Source Academy.
RootFolder/
course-info.json
{
"CourseName": "CS1101S",
"assessmentCategories":
[
{
"categoryDisplayName": "Mission",
"assessments":
[
{
"id": "M6A_v07",
"title": "Curve Introduction",
"openAt": "2020-01-01T-00:00+00",
"closeAt": "2021-12-31T-23:59+00",
"published": "yes",
"coverImage": "https://imgur.com/r/cats/MHXp1kt",
"shortSummary": "In this mission, you get introduced to visible functions, called Curves!",
"acceptLink": "https://classroom.github.com/a/PyAUhdfe",
"repoPrefix": "sa-mission-curves"
},
{
"id": "M6B",
"title": "Sorting Things Out",
"openAt": "2020-01-01T-00:00+00",
"closeAt": "2021-12-31T-23:59+00",
"published": "yes",
"coverImage": "",
"shortSummary": "Quicksort assignment description!",
"acceptLink": "",
"repoPrefix": "sa-mission-quicksort"
}
]
},
{
"categoryDisplayName": "Quest",
"assessments":
[
{
"id": "P6_v03",
"title": "Curves",
"openAt": "2020-01-01T-00:00+00",
"closeAt": "2021-12-31T-23:59+00",
"published": "yes",
"coverImage": "",
"shortSummary": "The Path P6 covers Lecture L6 of SICP1101 Unit 1.",
"acceptLink": "",
"repoPrefix": "sa-quest-curves"
}
]
},
{
"categoryDisplayName":"Paths",
"assessments":[]
},
{
"categoryDisplayName":"Contests",
"assessments":[]
},
{
"categoryDisplayName":"Others",
"assessments":[]
}
]
}
The above example will display 2 Missions and 1 Quest on the student's Source Academy frontend.
The categoryDisplayName can be changed and affects the heading names shown.
* openAt and closeAt should follow ISO 8601 standard for Date and Time.
Note that the assessment category names have been replaced due to the course-info for that course.