fs-vwade / capstone-group-2

0 stars 1 forks source link

minutes for tomorrow #5

Open vwade opened 2 weeks ago

vwade commented 2 weeks ago

notes for Friday

Whiteboard session

-- team progress, obstacles, and team-based solutions

Session progress

Project Items

  1. Discuss design and layout, CSS styling
  2. Discuss API endpoints, GET, POST, and PUT requests -- grades should be permanent
  3. Grading system
  4. Propose a leveling algorithm. (example, +10% EXP needed per level)

Projects System

  1. requires auth
  2. when a user visits /projects a list of all available projects will be presented
  3. when a user visits /projects/:id the Student will be able to either Enroll in or Submit a project
  4. on the FRONT -> GET /projects/:id will retrieve the current project from the API and return an JSON object containing the following:
    {
    "name": "Project name",
    "grade": "0 or greater value of last attempt",
    "enrolled": "boolean of true or false",
    "project": {
        "exp": "Integer value of EXP award",
        "team": "Individual or Group",
        "description": "An introductory paragraph to the project, or Lorem Ipsum",
        "links": [
            "an array of resource URLs for the project",
            "this may include PDF and TXT files"
        ]
    }
    }
  5. Project information will be included in the API response. Please use this to populate frontend values.

Enrollment System

  1. requires auth
  2. when a user is on the Project page (eg. /project/:id)
  3. if a user is not enrolled in a Project, and Enroll button is visible on the project page
  4. send a POST request to /project/:id
  5. if an Assignment already exists that contains the Student ID and Project ID, do not create a new Assignment -- this option should not be available
  6. in the API -> create a new Assignment that links the Student to the current Project
  7. initialize the Assignment with a grade of 0, and connect it to the Student and Project
  8. return a status code 201 Created upon successful creation

Grading System

  1. requires authorization
  2. when a user clicks Submit on the project page
  3. send a PUT request to /submissions
  4. the request body should contain the Student ID, Project ID, and Grade
  5. in the API call -> retrieve the Assignment that contains the Student's ID and Project's ID
  6. if the Assignment cannot be found, then the student is not enrolled in the given project (need: Enroll button, Error page) -- send status 404 Not Found
  7. update the values in the Assignment with the values provided from the request body
  8. the grade should be the maximum of the current Assignment grade and requested grade
  9. return status code 200 OK
model Assignment {
    id               Int     @id @default(autoincrement())
    grade            Int
    student          Student @relation(fields: [studentId], references: [id])
    studentId        Int
    currentProject   Project @relation(fields: [currentProjectId], references: [id])
    currentProjectId Int
}

Thursday


Wednesday

time management

MVP requirements

questions


Tuesday

reminder to talk about

pitch to Lester & Esteban

new modalities