stevebrownlee / learn-ops-client

Learning Platform client application for students and instructors. Tracks student data as they progress through their core and technical learning objectives.
1 stars 7 forks source link

Epic: Automate generation of student repositories for group projects #59

Open stevebrownlee opened 6 months ago

stevebrownlee commented 6 months ago

This effort will encompass our effort to take Github Classroom out of our process for handling student assessments and assigning learners to group project repositories. It should offer a nearly self-service UX for both the students and the instructors for the following tasks.

  1. Requesting an assessment
  2. Updating student status
  3. Generating repos
  4. Assigning collaborators to corresponding repos
  5. Messaging via Slack (to both students and instructors)

Need Grooming

Related tickets:

58

56

stevebrownlee commented 2 weeks ago

Process Overview

  1. Click Save button on weekly team builder
  2. Create teams in database
  3. Add records in nssuserteam for each assigned learner
  4. Create Slack channels and assign learners/coaches
  5. Create Github repo (or generate from template where appropriate)
  6. Assign learners & coaches as collaborators
  7. Send Slack message to each team's channel with repo url(s). Include link to Github Workflow Guides docs Process
stevebrownlee commented 2 weeks ago

New Tables

Table "LearningAPI_team" [headercolor: #c0392b] {
  "id" int [pk, not null, increment]
  "cohort_id" int4 [not null, ref: < LearningAPI_cohort.id]
  "chosen_name" varchar
  "sprint_team" bool [not null, default: False]
}

Table "LearningAPI_group_project_url" [headercolor: #c0392b] {
  "id" int [pk, not null, increment]
  "team_id" int4 [not null, ref: < LearningAPI_team.id]
  "repo_url" varchar [not null]
}

Table "LearningAPI_nssuserteam" [headercolor: #c0392b] {
  "id" int [pk, not null, increment]
  "team_id" int4 [not null, ref: < LearningAPI_team.id]
  "nss_user_id" int4 [not null, ref: < LearningAPI_nssuser.id]
}