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 8 forks source link

Additional projects after self-assessment #81

Open stevebrownlee opened 3 months ago

stevebrownlee commented 3 months ago
  1. Student clicks Assessment Complete
  2. Instructor reviews assessment
  3. Instructor marks assesment complete on LP
  4. Student gets Slack message with 1-3 optional projects to work on before group project starts
  5. Student clicks on a button in the message
  6. LP creates repo, assigns student to repo
  7. Student is redirected to repo

Models

Add a ProjectInfo table with foreign key to Project

In Project model add is_advanced_project boolean which defaults to False

View logic

  1. In the assess method for the student_view, find the code if latest_assessment.status.status == 'Reviewed and Complete':
  2. In that if block, query all ProjectInfo where project__book={current book} and is_advanced_project=True
  3. Construct Slack message telling student he/she can work on these advanced projects until group project starts. See Slack Block Kit docs for more info.
    Title - Description
    {button to choose}
    1. When students clicks on one of the buttons, it will open the following URL https://learning.nss.team/pickproject/{project id}
    2. That component would extract project ID param and make request to API to create repo for student and assign them to repo as collaborator. Put fun loading animation in browser until this completes.
    3. Once complete, use <Redirect/> from RRD to send directly to Github repo
    4. Send Slack message to instructors informing them that student has start X project.
stevebrownlee commented 3 months ago

Creating project

Update the project creation logic to check if is_advanced_project is not None. If not, validate that description and template_url were provided in the request body. Respond with 400 if not.

If it all validates, create project and then create related project info.

DaveBerzack-NSS commented 3 months ago

Today we added the data to the model and updated the admin form to select advanced type, and provide description and template_url in that case.

Still to do:

send additional slack message on approve assessment -- add buttons to message (each will link to LMS placeholder page)

placeholder page to update student status, create repo, then redirect to that repo

stevebrownlee commented 3 months ago

TODO: Update radio buttons as Radix controls

https://radix-website-a4l61k3zl-workos.vercel.app/themes/docs/components/radio-group